Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cachefiles: Add some subrequest tracepoints

Add some tracepoints into the cachefiles write paths.

Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/20241216204124.3752367-16-dhowells@redhat.com
cc: netfs@lists.linux.dev
Signed-off-by: Christian Brauner <brauner@kernel.org>

authored by

David Howells and committed by
Christian Brauner
bcb33f79 30f878fa

+7
+4
fs/cachefiles/io.c
··· 13 13 #include <linux/falloc.h> 14 14 #include <linux/sched/mm.h> 15 15 #include <trace/events/fscache.h> 16 + #include <trace/events/netfs.h> 16 17 #include "internal.h" 17 18 18 19 struct cachefiles_kiocb { ··· 367 366 if (!fscache_wait_for_operation(cres, FSCACHE_WANT_WRITE)) { 368 367 if (term_func) 369 368 term_func(term_func_priv, -ENOBUFS, false); 369 + trace_netfs_sreq(term_func_priv, netfs_sreq_trace_cache_nowrite); 370 370 return -ENOBUFS; 371 371 } 372 372 ··· 697 695 iov_iter_truncate(&subreq->io_iter, len); 698 696 } 699 697 698 + trace_netfs_sreq(subreq, netfs_sreq_trace_cache_prepare); 700 699 cachefiles_begin_secure(cache, &saved_cred); 701 700 ret = __cachefiles_prepare_write(object, cachefiles_cres_file(cres), 702 701 &start, &len, len, true); ··· 707 704 return; 708 705 } 709 706 707 + trace_netfs_sreq(subreq, netfs_sreq_trace_cache_write); 710 708 cachefiles_write(&subreq->rreq->cache_resources, 711 709 subreq->start, &subreq->io_iter, 712 710 netfs_write_subrequest_terminated, subreq);
+3
include/trace/events/netfs.h
··· 74 74 #define netfs_sreq_traces \ 75 75 EM(netfs_sreq_trace_add_donations, "+DON ") \ 76 76 EM(netfs_sreq_trace_added, "ADD ") \ 77 + EM(netfs_sreq_trace_cache_nowrite, "CA-NW") \ 78 + EM(netfs_sreq_trace_cache_prepare, "CA-PR") \ 79 + EM(netfs_sreq_trace_cache_write, "CA-WR") \ 77 80 EM(netfs_sreq_trace_clear, "CLEAR") \ 78 81 EM(netfs_sreq_trace_discard, "DSCRD") \ 79 82 EM(netfs_sreq_trace_donate_to_prev, "DON-P") \