btrfs: tracepoints: fix qgroup reservation type printing
authorNikolay Borisov <nborisov@suse.com>
Fri, 19 Jun 2020 12:24:49 +0000 (15:24 +0300)
committerDavid Sterba <dsterba@suse.com>
Mon, 27 Jul 2020 10:55:29 +0000 (12:55 +0200)
Since qgroup's reservation types are define in a macro they must be
exported to user space in order for user space tools to convert raw
binary data to symbolic names. Currently trace-cmd report produces
the following output:

kworker/u8:2-459   [003]  1208.543587: qgroup_update_reserve:
2b742cae-e0e5-4def-9ef7-28a9b34a951e: qgid=5 type=0x2 cur_reserved=54870016 diff=-32768

With this fix the output is:

kworker/u8:2-459   [003]  1208.543587: qgroup_update_reserve:
2b742cae-e0e5-4def-9ef7-28a9b34a951e: qgid=5 type=BTRFS_QGROUP_RSV_META_PREALLOC cur_reserved=54870016 diff=-32768

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
include/trace/events/btrfs.h

index c214622..f0e95e3 100644 (file)
@@ -78,6 +78,11 @@ TRACE_DEFINE_ENUM(COMMIT_TRANS);
        EM( BTRFS_FILE_EXTENT_REG,              "REG")                  \
        EMe(BTRFS_FILE_EXTENT_PREALLOC,         "PREALLOC")
 
+#define QGROUP_RSV_TYPES                                               \
+       EM( BTRFS_QGROUP_RSV_DATA,              "DATA")                 \
+       EM( BTRFS_QGROUP_RSV_META_PERTRANS,     "META_PERTRANS")        \
+       EMe(BTRFS_QGROUP_RSV_META_PREALLOC,     "META_PREALLOC")
+
 /*
  * First define the enums in the above macros to be exported to userspace via
  * TRACE_DEFINE_ENUM().
@@ -90,6 +95,7 @@ TRACE_DEFINE_ENUM(COMMIT_TRANS);
 
 FLUSH_ACTIONS
 FI_TYPES
+QGROUP_RSV_TYPES
 
 /*
  * Now redefine the EM and EMe macros to map the enums to the strings that will
@@ -101,12 +107,6 @@ FI_TYPES
 #define EM(a, b)        {a, b},
 #define EMe(a, b)       {a, b}
 
-#define show_qgroup_rsv_type(type)                                     \
-       __print_symbolic(type,                                          \
-               { BTRFS_QGROUP_RSV_DATA,          "DATA"        },      \
-               { BTRFS_QGROUP_RSV_META_PERTRANS, "META_PERTRANS" },    \
-               { BTRFS_QGROUP_RSV_META_PREALLOC, "META_PREALLOC" })
-
 #define show_extent_io_tree_owner(owner)                                      \
        __print_symbolic(owner,                                                \
                { IO_TREE_FS_PINNED_EXTENTS,      "PINNED_EXTENTS" },          \
@@ -1712,7 +1712,7 @@ TRACE_EVENT(qgroup_update_reserve,
        ),
 
        TP_printk_btrfs("qgid=%llu type=%s cur_reserved=%llu diff=%lld",
-               __entry->qgid, show_qgroup_rsv_type(__entry->type),
+               __entry->qgid, __print_symbolic(__entry->type, QGROUP_RSV_TYPES),
                __entry->cur_reserved, __entry->diff)
 );
 
@@ -1736,7 +1736,7 @@ TRACE_EVENT(qgroup_meta_reserve,
 
        TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld",
                show_root_type(__entry->refroot),
-               show_qgroup_rsv_type(__entry->type), __entry->diff)
+               __print_symbolic(__entry->type, QGROUP_RSV_TYPES), __entry->diff)
 );
 
 TRACE_EVENT(qgroup_meta_convert,
@@ -1757,8 +1757,8 @@ TRACE_EVENT(qgroup_meta_convert,
 
        TP_printk_btrfs("refroot=%llu(%s) type=%s->%s diff=%lld",
                show_root_type(__entry->refroot),
-               show_qgroup_rsv_type(BTRFS_QGROUP_RSV_META_PREALLOC),
-               show_qgroup_rsv_type(BTRFS_QGROUP_RSV_META_PERTRANS),
+               __print_symbolic(BTRFS_QGROUP_RSV_META_PREALLOC, QGROUP_RSV_TYPES),
+               __print_symbolic(BTRFS_QGROUP_RSV_META_PERTRANS, QGROUP_RSV_TYPES),
                __entry->diff)
 );
 
@@ -1784,7 +1784,7 @@ TRACE_EVENT(qgroup_meta_free_all_pertrans,
 
        TP_printk_btrfs("refroot=%llu(%s) type=%s diff=%lld",
                show_root_type(__entry->refroot),
-               show_qgroup_rsv_type(__entry->type), __entry->diff)
+               __print_symbolic(__entry->type, QGROUP_RSV_TYPES), __entry->diff)
 );
 
 DECLARE_EVENT_CLASS(btrfs__prelim_ref,