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 226c7f2..5b81ef3 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),