Add some tracepoints into the cachefiles write paths.

Signed-off-by: David Howells <dhowe...@redhat.com>
cc: ne...@lists.linux.dev
---
 fs/cachefiles/io.c           | 4 ++++
 include/trace/events/netfs.h | 3 +++
 2 files changed, 7 insertions(+)

diff --git a/fs/cachefiles/io.c b/fs/cachefiles/io.c
index 6a821a959b59..92058ae43488 100644
--- a/fs/cachefiles/io.c
+++ b/fs/cachefiles/io.c
@@ -13,6 +13,7 @@
 #include <linux/falloc.h>
 #include <linux/sched/mm.h>
 #include <trace/events/fscache.h>
+#include <trace/events/netfs.h>
 #include "internal.h"
 
 struct cachefiles_kiocb {
@@ -366,6 +367,7 @@ static int cachefiles_write(struct netfs_cache_resources 
*cres,
        if (!fscache_wait_for_operation(cres, FSCACHE_WANT_WRITE)) {
                if (term_func)
                        term_func(term_func_priv, -ENOBUFS, false);
+               trace_netfs_sreq(term_func_priv, 
netfs_sreq_trace_cache_nowrite);
                return -ENOBUFS;
        }
 
@@ -695,6 +697,7 @@ static void cachefiles_issue_write(struct 
netfs_io_subrequest *subreq)
                iov_iter_truncate(&subreq->io_iter, len);
        }
 
+       trace_netfs_sreq(subreq, netfs_sreq_trace_cache_prepare);
        cachefiles_begin_secure(cache, &saved_cred);
        ret = __cachefiles_prepare_write(object, cachefiles_cres_file(cres),
                                         &start, &len, len, true);
@@ -704,6 +707,7 @@ static void cachefiles_issue_write(struct 
netfs_io_subrequest *subreq)
                return;
        }
 
+       trace_netfs_sreq(subreq, netfs_sreq_trace_cache_write);
        cachefiles_write(&subreq->rreq->cache_resources,
                         subreq->start, &subreq->io_iter,
                         netfs_write_subrequest_terminated, subreq);
diff --git a/include/trace/events/netfs.h b/include/trace/events/netfs.h
index 2dfc9f716e3b..02f6e179b7bc 100644
--- a/include/trace/events/netfs.h
+++ b/include/trace/events/netfs.h
@@ -74,6 +74,9 @@
 #define netfs_sreq_traces                                      \
        EM(netfs_sreq_trace_add_donations,      "+DON ")        \
        EM(netfs_sreq_trace_added,              "ADD  ")        \
+       EM(netfs_sreq_trace_cache_nowrite,      "CA-NW")        \
+       EM(netfs_sreq_trace_cache_prepare,      "CA-PR")        \
+       EM(netfs_sreq_trace_cache_write,        "CA-WR")        \
        EM(netfs_sreq_trace_clear,              "CLEAR")        \
        EM(netfs_sreq_trace_discard,            "DSCRD")        \
        EM(netfs_sreq_trace_donate_to_prev,     "DON-P")        \

Reply via email to