Adjust the netfs_rreq tracepoint to include the origin of the request and
to increase the size of the "what trace" output strings by a character so
that "ENCRYPT" and "DECRYPT" will fit without abbreviation.

Signed-off-by: David Howells <dhowe...@redhat.com>
cc: linux-cachefs@redhat.com
---

 fs/netfs/read_helper.c       |    2 +-
 include/trace/events/netfs.h |   29 +++++++++++++++++++----------
 2 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/fs/netfs/read_helper.c b/fs/netfs/read_helper.c
index 68616635c5ac..5e0fdf9c9772 100644
--- a/fs/netfs/read_helper.c
+++ b/fs/netfs/read_helper.c
@@ -180,7 +180,7 @@ static void netfs_rreq_do_write_to_cache(struct 
netfs_io_request *rreq)
        struct iov_iter iter;
        int ret;
 
-       trace_netfs_rreq(rreq, netfs_rreq_trace_write);
+       trace_netfs_rreq(rreq, netfs_rreq_trace_copy);
 
        /* We don't want terminating writes trying to wake us up whilst we're
         * still going through the list.
diff --git a/include/trace/events/netfs.h b/include/trace/events/netfs.h
index 2d0665b416bf..8330ae8fbc0a 100644
--- a/include/trace/events/netfs.h
+++ b/include/trace/events/netfs.h
@@ -21,14 +21,19 @@
        EM(netfs_read_trace_readpage,           "READPAGE ")    \
        E_(netfs_read_trace_write_begin,        "WRITEBEGN")
 
+#define netfs_rreq_origins                                     \
+       EM(NETFS_READAHEAD,                     "RA")           \
+       EM(NETFS_READPAGE,                      "RP")           \
+       E_(NETFS_READ_FOR_WRITE,                "RW")
+
 #define netfs_rreq_traces                                      \
-       EM(netfs_rreq_trace_assess,             "ASSESS")       \
-       EM(netfs_rreq_trace_done,               "DONE  ")       \
-       EM(netfs_rreq_trace_free,               "FREE  ")       \
-       EM(netfs_rreq_trace_resubmit,           "RESUBM")       \
-       EM(netfs_rreq_trace_unlock,             "UNLOCK")       \
-       EM(netfs_rreq_trace_unmark,             "UNMARK")       \
-       E_(netfs_rreq_trace_write,              "WRITE ")
+       EM(netfs_rreq_trace_assess,             "ASSESS ")      \
+       EM(netfs_rreq_trace_copy,               "COPY   ")      \
+       EM(netfs_rreq_trace_done,               "DONE   ")      \
+       EM(netfs_rreq_trace_free,               "FREE   ")      \
+       EM(netfs_rreq_trace_resubmit,           "RESUBMT")      \
+       EM(netfs_rreq_trace_unlock,             "UNLOCK ")      \
+       E_(netfs_rreq_trace_unmark,             "UNMARK ")
 
 #define netfs_sreq_sources                                     \
        EM(NETFS_FILL_WITH_ZEROES,              "ZERO")         \
@@ -79,6 +84,7 @@ enum netfs_failure { netfs_failures } __mode(byte);
 #define E_(a, b) TRACE_DEFINE_ENUM(a);
 
 netfs_read_traces;
+netfs_rreq_origins;
 netfs_rreq_traces;
 netfs_sreq_sources;
 netfs_sreq_traces;
@@ -134,18 +140,21 @@ TRACE_EVENT(netfs_rreq,
 
            TP_STRUCT__entry(
                    __field(unsigned int,               rreq            )
-                   __field(unsigned short,             flags           )
+                   __field(unsigned int,               flags           )
+                   __field(enum netfs_io_origin,       origin          )
                    __field(enum netfs_rreq_trace,      what            )
                             ),
 
            TP_fast_assign(
                    __entry->rreq       = rreq->debug_id;
                    __entry->flags      = rreq->flags;
+                   __entry->origin     = rreq->origin;
                    __entry->what       = what;
                           ),
 
-           TP_printk("R=%08x %s f=%02x",
+           TP_printk("R=%08x %s %s f=%02x",
                      __entry->rreq,
+                     __print_symbolic(__entry->origin, netfs_rreq_origins),
                      __print_symbolic(__entry->what, netfs_rreq_traces),
                      __entry->flags)
            );
@@ -182,8 +191,8 @@ TRACE_EVENT(netfs_sreq,
 
            TP_printk("R=%08x[%u] %s %s f=%02x s=%llx %zx/%zx e=%d",
                      __entry->rreq, __entry->index,
-                     __print_symbolic(__entry->what, netfs_sreq_traces),
                      __print_symbolic(__entry->source, netfs_sreq_sources),
+                     __print_symbolic(__entry->what, netfs_sreq_traces),
                      __entry->flags,
                      __entry->start, __entry->transferred, __entry->len,
                      __entry->error)


--
Linux-cachefs mailing list
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to