xfs: capture buffer ops in the xfs_buf tracepoints
authorDarrick J. Wong <djwong@kernel.org>
Tue, 26 Apr 2022 01:37:05 +0000 (18:37 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 27 Apr 2022 17:47:18 +0000 (10:47 -0700)
Record the buffer ops in the xfs_buf tracepoints so that we can monitor
the alleged type of the buffer.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/xfs_trace.h

index e1197f9..91b916e 100644 (file)
@@ -418,6 +418,7 @@ DECLARE_EVENT_CLASS(xfs_buf_class,
                __field(unsigned, lockval)
                __field(unsigned, flags)
                __field(unsigned long, caller_ip)
+               __field(const void *, buf_ops)
        ),
        TP_fast_assign(
                __entry->dev = bp->b_target->bt_dev;
@@ -428,9 +429,10 @@ DECLARE_EVENT_CLASS(xfs_buf_class,
                __entry->lockval = bp->b_sema.count;
                __entry->flags = bp->b_flags;
                __entry->caller_ip = caller_ip;
+               __entry->buf_ops = bp->b_ops;
        ),
        TP_printk("dev %d:%d daddr 0x%llx bbcount 0x%x hold %d pincount %d "
-                 "lock %d flags %s caller %pS",
+                 "lock %d flags %s bufops %pS caller %pS",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  (unsigned long long)__entry->bno,
                  __entry->nblks,
@@ -438,6 +440,7 @@ DECLARE_EVENT_CLASS(xfs_buf_class,
                  __entry->pincount,
                  __entry->lockval,
                  __print_flags(__entry->flags, "|", XFS_BUF_FLAGS),
+                 __entry->buf_ops,
                  (void *)__entry->caller_ip)
 )