From: David Howells <dhowells@redhat.com>
To: Christian Brauner <christian@brauner.io>,
Matthew Wilcox <willy@infradead.org>,
Christoph Hellwig <hch@infradead.org>
Cc: David Howells <dhowells@redhat.com>,
Paulo Alcantara <pc@manguebit.org>, Jens Axboe <axboe@kernel.dk>,
Leon Romanovsky <leon@kernel.org>,
Steve French <sfrench@samba.org>,
ChenXiaoSong <chenxiaosong@chenxiaosong.com>,
Marc Dionne <marc.dionne@auristor.com>,
Stefan Metzmacher <metze@samba.org>,
Eric Van Hensbergen <ericvh@kernel.org>,
Dominique Martinet <asmadeus@codewreck.org>,
Ilya Dryomov <idryomov@gmail.com>,
netfs@lists.linux.dev, linux-afs@lists.infradead.org,
linux-cifs@vger.kernel.org, linux-nfs@vger.kernel.org,
ceph-devel@vger.kernel.org, v9fs@lists.linux.dev,
linux-erofs@lists.ozlabs.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH v8 15/25] netfs: Add the cache object ID to netfs_read/write tracepoints
Date: Tue, 4 Aug 2026 11:02:10 +0100 [thread overview]
Message-ID: <20260804100224.2748935-16-dhowells@redhat.com> (raw)
In-Reply-To: <20260804100224.2748935-1-dhowells@redhat.com>
Add the cache object debug ID to netfs_read/write tracepoints to make
debugging easier as there's now a direct cross-reference with the
cachefiles tracepoints that only log that debug ID.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Paulo Alcantara <pc@manguebit.org>
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
---
fs/cachefiles/io.c | 1 +
fs/netfs/fscache_io.c | 2 +-
include/linux/netfs.h | 3 ++-
include/trace/events/netfs.h | 27 +++++++++++++++------------
4 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/fs/cachefiles/io.c b/fs/cachefiles/io.c
index 64d1e3d526d6..2b5471ca8378 100644
--- a/fs/cachefiles/io.c
+++ b/fs/cachefiles/io.c
@@ -921,6 +921,7 @@ bool cachefiles_begin_operation(struct netfs_cache_resources *cres,
if (!cachefiles_cres_file(cres)) {
cres->ops = &cachefiles_netfs_cache_ops;
+ cres->object_id = object->debug_id;
if (object->file) {
spin_lock(&object->lock);
file = object->file;
diff --git a/fs/netfs/fscache_io.c b/fs/netfs/fscache_io.c
index 37f05b4d3469..fafa8c6bec57 100644
--- a/fs/netfs/fscache_io.c
+++ b/fs/netfs/fscache_io.c
@@ -79,7 +79,7 @@ static int fscache_begin_operation(struct netfs_cache_resources *cres,
cres->ops = NULL;
cres->cache_priv = cookie;
cres->cache_priv2 = NULL;
- cres->debug_id = cookie->debug_id;
+ cres->cookie_id = cookie->debug_id;
cres->inval_counter = cookie->inval_counter;
if (!fscache_begin_cookie_access(cookie, why)) {
diff --git a/include/linux/netfs.h b/include/linux/netfs.h
index 10be7180e6f3..09e81475e899 100644
--- a/include/linux/netfs.h
+++ b/include/linux/netfs.h
@@ -165,7 +165,8 @@ struct netfs_cache_resources {
void *cache_priv;
void *cache_priv2;
unsigned long long cache_i_size; /* Initial size of cache file */
- unsigned int debug_id; /* Cookie debug ID */
+ unsigned int cookie_id; /* Cache cookie debug ID */
+ unsigned int object_id; /* Cache object debug ID */
unsigned int inval_counter; /* object->inval_counter at begin_op */
unsigned int dio_size; /* DIO block size */
};
diff --git a/include/trace/events/netfs.h b/include/trace/events/netfs.h
index cc3806e383f5..5dc61a4ba5f0 100644
--- a/include/trace/events/netfs.h
+++ b/include/trace/events/netfs.h
@@ -310,6 +310,7 @@ TRACE_EVENT(netfs_read,
TP_STRUCT__entry(
__field(unsigned int, rreq)
__field(unsigned int, cookie)
+ __field(unsigned int, object)
__field(loff_t, i_size)
__field(loff_t, start)
__field(size_t, len)
@@ -319,7 +320,8 @@ TRACE_EVENT(netfs_read,
TP_fast_assign(
__entry->rreq = rreq->debug_id;
- __entry->cookie = rreq->cache_resources.debug_id;
+ __entry->cookie = rreq->cache_resources.cookie_id;
+ __entry->object = rreq->cache_resources.object_id;
__entry->i_size = rreq->i_size;
__entry->start = start;
__entry->len = len;
@@ -327,10 +329,10 @@ TRACE_EVENT(netfs_read,
__entry->netfs_inode = rreq->inode->i_ino;
),
- TP_printk("R=%08x %s c=%08x ni=%llx s=%llx l=%zx sz=%llx",
+ TP_printk("R=%08x %s c=%08x o=%08x ni=%llx s=%llx l=%zx sz=%llx",
__entry->rreq,
__print_symbolic(__entry->what, netfs_read_traces),
- __entry->cookie,
+ __entry->cookie, __entry->object,
__entry->netfs_inode,
__entry->start, __entry->len, __entry->i_size)
);
@@ -551,6 +553,7 @@ TRACE_EVENT(netfs_write,
TP_STRUCT__entry(
__field(unsigned int, wreq)
__field(unsigned int, cookie)
+ __field(unsigned int, object)
__field(unsigned int, ino)
__field(enum netfs_write_trace, what)
__field(unsigned long long, start)
@@ -558,20 +561,19 @@ TRACE_EVENT(netfs_write,
),
TP_fast_assign(
- struct netfs_inode *__ctx = netfs_inode(wreq->inode);
- struct fscache_cookie *__cookie = netfs_i_cookie(__ctx);
__entry->wreq = wreq->debug_id;
- __entry->cookie = __cookie ? __cookie->debug_id : 0;
+ __entry->cookie = wreq->cache_resources.cookie_id;
+ __entry->object = wreq->cache_resources.object_id;
__entry->ino = wreq->inode->i_ino;
__entry->what = what;
__entry->start = wreq->start;
__entry->len = wreq->len;
),
- TP_printk("R=%08x %s c=%08x i=%x by=%llx-%llx",
+ TP_printk("R=%08x %s c=%08x o=%08x i=%x by=%llx-%llx",
__entry->wreq,
__print_symbolic(__entry->what, netfs_write_traces),
- __entry->cookie,
+ __entry->cookie, __entry->object,
__entry->ino,
__entry->start, __entry->start + __entry->len - 1)
);
@@ -586,22 +588,23 @@ TRACE_EVENT(netfs_copy2cache,
__field(unsigned int, rreq)
__field(unsigned int, creq)
__field(unsigned int, cookie)
+ __field(unsigned int, object)
__field(unsigned int, ino)
),
TP_fast_assign(
- struct netfs_inode *__ctx = netfs_inode(rreq->inode);
- struct fscache_cookie *__cookie = netfs_i_cookie(__ctx);
__entry->rreq = rreq->debug_id;
__entry->creq = creq->debug_id;
- __entry->cookie = __cookie ? __cookie->debug_id : 0;
+ __entry->cookie = rreq->cache_resources.cookie_id;
+ __entry->object = rreq->cache_resources.object_id;
__entry->ino = rreq->inode->i_ino;
),
- TP_printk("R=%08x CR=%08x c=%08x i=%x ",
+ TP_printk("R=%08x CR=%08x c=%08x o=%08x i=%x ",
__entry->rreq,
__entry->creq,
__entry->cookie,
+ __entry->object,
__entry->ino)
);
next prev parent reply other threads:[~2026-08-04 10:04 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-04 10:01 [PATCH v8 00/25] netfs: Keep track of folios in a segmented bio_vec[] chain David Howells
2026-08-04 10:01 ` [PATCH v8 01/25] mm: Make readahead store folio count in readahead_control David Howells
2026-08-04 10:01 ` [PATCH v8 02/25] netfs: Bulk load the readahead-provided folios up front David Howells
2026-08-04 10:01 ` [PATCH v8 03/25] Add a function to kmap one page of a multipage bio_vec David Howells
2026-08-04 10:01 ` [PATCH v8 04/25] iov_iter: Make iov_iter_get_pages*() wrap iov_iter_extract_pages() David Howells
2026-08-04 10:02 ` [PATCH v8 05/25] iov_iter: Add a segmented queue of bio_vec[] David Howells
2026-08-04 10:02 ` [PATCH v8 06/25] netfs: Add some tools for managing bvecq chains David Howells
2026-08-04 10:02 ` [PATCH v8 07/25] netfs: Make mempool available for bvecq David Howells
2026-08-04 10:02 ` [PATCH v8 08/25] netfs: Add a function to extract from an iter into a bvecq David Howells
2026-08-04 10:02 ` [PATCH v8 09/25] afs: Use a bvecq to hold dir content rather than folioq David Howells
2026-08-04 10:02 ` [PATCH v8 10/25] cifs: Use a bvecq for buffering instead of a folioq David Howells
2026-08-04 10:02 ` [PATCH v8 11/25] smbdirect: Support ITER_BVECQ in smbdirect_map_sges_from_iter() David Howells
2026-08-04 10:02 ` [PATCH v8 12/25] netfs: Remove the writethrough code David Howells
2026-08-04 10:02 ` [PATCH v8 13/25] cachefiles,netfs: sunset ondemand mode David Howells
2026-08-04 14:32 ` sashiko-bot
2026-08-04 10:02 ` [PATCH v8 14/25] cachefiles: Don't rely on backing fs storage map for most use cases David Howells
2026-08-04 10:02 ` David Howells [this message]
2026-08-04 10:02 ` [PATCH v8 16/25] netfs: Switch to using bvecq rather than folio_queue and rolling_buffer David Howells
2026-08-04 10:02 ` [PATCH v8 17/25] smbdirect: Remove support for ITER_FOLIOQ from smbdirect_map_sges_from_iter() David Howells
2026-08-04 10:02 ` [PATCH v8 18/25] netfs: Remove netfs_alloc/free_folioq_buffer() David Howells
2026-08-04 10:02 ` [PATCH v8 19/25] netfs: Remove netfs_extract_user_iter() David Howells
2026-08-04 10:02 ` [PATCH v8 20/25] iov_iter: Remove ITER_FOLIOQ David Howells
2026-08-04 10:02 ` [PATCH v8 21/25] netfs: Remove folio_queue and rolling_buffer David Howells
2026-08-04 10:02 ` [PATCH v8 22/25] netfs: Check for too much data being read David Howells
2026-08-04 10:02 ` [PATCH v8 23/25] netfs: Limit the minimum trigger for progress reporting David Howells
2026-08-04 10:02 ` [PATCH v8 24/25] netfs: Combine prepare and issue ops and grab the buffers on request David Howells
2026-08-04 10:02 ` [PATCH v8 25/25] cachefiles: Preset the state xattr when creating a new file David Howells
2026-08-10 13:12 ` [PATCH v8 00/25] netfs: Keep track of folios in a segmented bio_vec[] chain Christian Brauner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260804100224.2748935-16-dhowells@redhat.com \
--to=dhowells@redhat.com \
--cc=asmadeus@codewreck.org \
--cc=axboe@kernel.dk \
--cc=ceph-devel@vger.kernel.org \
--cc=chenxiaosong@chenxiaosong.com \
--cc=christian@brauner.io \
--cc=ericvh@kernel.org \
--cc=hch@infradead.org \
--cc=idryomov@gmail.com \
--cc=leon@kernel.org \
--cc=linux-afs@lists.infradead.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=marc.dionne@auristor.com \
--cc=metze@samba.org \
--cc=netfs@lists.linux.dev \
--cc=pc@manguebit.org \
--cc=sfrench@samba.org \
--cc=v9fs@lists.linux.dev \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.