Btrfs: add fsid to some tracepoints
authorJosef Bacik <jbacik@fb.com>
Fri, 25 Mar 2016 17:25:57 +0000 (13:25 -0400)
committerDavid Sterba <dsterba@suse.com>
Thu, 7 Jul 2016 16:45:53 +0000 (18:45 +0200)
When tracing enospc problems on a box with multiple file systems mounted I need
to be able to differentiate between the two file systems.  Most of the important
trace points I'm looking at already have an fsid, but the reserved extent trace
points do not, so add that to make it possible to figure out which trace point
belongs to which file system.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
include/trace/events/btrfs.h

index 226c7f283247d28b69219b6d600df88f90b367ce..5b81ef304388ed537033e7c4b67850e1385f5e0e 100644 (file)
@@ -873,18 +873,21 @@ DECLARE_EVENT_CLASS(btrfs__reserved_extent,
        TP_ARGS(root, start, len),
 
        TP_STRUCT__entry(
-               __field(        u64,  root_objectid             )
-               __field(        u64,  start                     )
-               __field(        u64,  len                       )
+               __array(        u8,     fsid,   BTRFS_UUID_SIZE )
+               __field(        u64,    root_objectid           )
+               __field(        u64,    start                   )
+               __field(        u64,    len                     )
        ),
 
        TP_fast_assign(
+               memcpy(__entry->fsid, root->fs_info->fsid, BTRFS_UUID_SIZE);
                __entry->root_objectid  = root->root_key.objectid;
                __entry->start          = start;
                __entry->len            = len;
        ),
 
-       TP_printk("root = %llu(%s), start = %llu, len = %llu",
+       TP_printk("%pU: root = %llu(%s), start = %llu, len = %llu",
+                 __entry->fsid,
                  show_root_type(__entry->root_objectid),
                  (unsigned long long)__entry->start,
                  (unsigned long long)__entry->len)
@@ -941,6 +944,7 @@ DECLARE_EVENT_CLASS(btrfs__reserve_extent,
        TP_ARGS(root, block_group, start, len),
 
        TP_STRUCT__entry(
+               __array(        u8,     fsid,   BTRFS_UUID_SIZE )
                __field(        u64,    root_objectid           )
                __field(        u64,    bg_objectid             )
                __field(        u64,    flags                   )
@@ -949,6 +953,7 @@ DECLARE_EVENT_CLASS(btrfs__reserve_extent,
        ),
 
        TP_fast_assign(
+               memcpy(__entry->fsid, root->fs_info->fsid, BTRFS_UUID_SIZE);
                __entry->root_objectid  = root->root_key.objectid;
                __entry->bg_objectid    = block_group->key.objectid;
                __entry->flags          = block_group->flags;
@@ -956,8 +961,8 @@ DECLARE_EVENT_CLASS(btrfs__reserve_extent,
                __entry->len            = len;
        ),
 
-       TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), "
-                 "start = %Lu, len = %Lu",
+       TP_printk("%pU: root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), "
+                 "start = %Lu, len = %Lu", __entry->fsid,
                  show_root_type(__entry->root_objectid), __entry->bg_objectid,
                  __entry->flags, __print_flags((unsigned long)__entry->flags,
                                                "|", BTRFS_GROUP_FLAGS),