[PATCH v11 16/36] netfs: trace: Rejig a couple of the tracepoints

From: David Howells

Date: Wed Sep 02 2026 - 13:59:54 EST


Rejig the following tracepoints:

(1) Change netfs_folio to show the pfn.

(2) Change netfs_collect_folio to show a folio index range rather than
file position range and don't show the cleaned_to or collected_to
points.

Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
cc: Paulo Alcantara <pc@xxxxxxxxxxxxx>
cc: netfs@xxxxxxxxxxxxxxx
cc: linux-fsdevel@xxxxxxxxxxxxxxx
---
fs/netfs/read_collect.c | 2 +-
fs/netfs/read_pgpriv2.c | 2 +-
fs/netfs/write_collect.c | 2 +-
include/trace/events/netfs.h | 23 ++++++++++-------------
4 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/fs/netfs/read_collect.c b/fs/netfs/read_collect.c
index 6576a9b8671d..61f2664de6d3 100644
--- a/fs/netfs/read_collect.c
+++ b/fs/netfs/read_collect.c
@@ -192,7 +192,7 @@ static void netfs_read_unlock_folios(struct netfs_io_request *rreq,
fpos = folio_pos(folio);
fend = fpos + fsize;

- trace_netfs_collect_folio(rreq, folio, fend, collected_to);
+ trace_netfs_collect_folio(rreq, folio);

/* Unlock any folio we've transferred all of. */
if (collected_to < fend)
diff --git a/fs/netfs/read_pgpriv2.c b/fs/netfs/read_pgpriv2.c
index 4d50585f69a6..bf4d9d6877d7 100644
--- a/fs/netfs/read_pgpriv2.c
+++ b/fs/netfs/read_pgpriv2.c
@@ -201,7 +201,7 @@ bool netfs_pgpriv2_unlock_copied_folios(struct netfs_io_request *creq)

fend = min_t(uoff_t, fpos + flen, creq->i_size);

- trace_netfs_collect_folio(creq, folio, fend, collected_to);
+ trace_netfs_collect_folio(creq, folio);

/* Unlock any folio we've transferred all of. */
if (collected_to < fend)
diff --git a/fs/netfs/write_collect.c b/fs/netfs/write_collect.c
index ba2327ce96e8..e01233de41f5 100644
--- a/fs/netfs/write_collect.c
+++ b/fs/netfs/write_collect.c
@@ -207,7 +207,7 @@ static void netfs_writeback_unlock_folios(struct netfs_io_request *wreq,

fend = min_t(uoff_t, fpos + flen, wreq->i_size);

- trace_netfs_collect_folio(wreq, folio, fend, collected_to);
+ trace_netfs_collect_folio(wreq, folio);

/* Unlock any folio we've transferred all of. */
if (collected_to < fend)
diff --git a/include/trace/events/netfs.h b/include/trace/events/netfs.h
index f69cac698f74..b18952627f16 100644
--- a/include/trace/events/netfs.h
+++ b/include/trace/events/netfs.h
@@ -497,6 +497,7 @@ TRACE_EVENT(netfs_folio,
TP_STRUCT__entry(
__field(u64, ino)
__field(pgoff_t, index)
+ __field(unsigned long, pfn)
__field(unsigned int, nr)
__field(enum netfs_folio_trace, why)
),
@@ -507,9 +508,11 @@ TRACE_EVENT(netfs_folio,
__entry->why = why;
__entry->index = folio->index;
__entry->nr = folio_nr_pages(folio);
+ __entry->pfn = folio_pfn(folio);
),

- TP_printk("i=%05llx ix=%05lx-%05lx %s",
+ TP_printk("p=%lx i=%05llx ix=%05lx-%05lx %s",
+ __entry->pfn,
__entry->ino, __entry->index, __entry->index + __entry->nr - 1,
__print_symbolic(__entry->why, netfs_folio_traces))
);
@@ -656,31 +659,25 @@ TRACE_EVENT(netfs_collect_sreq,

TRACE_EVENT(netfs_collect_folio,
TP_PROTO(const struct netfs_io_request *wreq,
- const struct folio *folio,
- uoff_t fend, uoff_t collected_to),
+ const struct folio *folio),

- TP_ARGS(wreq, folio, fend, collected_to),
+ TP_ARGS(wreq, folio),

TP_STRUCT__entry(
__field(unsigned int, wreq)
__field(unsigned long, index)
- __field(uoff_t, fend)
- __field(uoff_t, cleaned_to)
- __field(uoff_t, collected_to)
+ __field(unsigned int, nr)
),

TP_fast_assign(
__entry->wreq = wreq->debug_id;
__entry->index = folio->index;
- __entry->fend = fend;
- __entry->cleaned_to = wreq->cleaned_to;
- __entry->collected_to = collected_to;
+ __entry->nr = folio_nr_pages(folio);
),

- TP_printk("R=%08x ix=%05lx r=%llx-%llx t=%llx/%llx",
+ TP_printk("R=%08x ix=%05lx-%05lx",
__entry->wreq, __entry->index,
- (uoff_t)__entry->index * PAGE_SIZE, __entry->fend,
- __entry->cleaned_to, __entry->collected_to)
+ __entry->index + __entry->nr - 1)
);

TRACE_EVENT(netfs_collect_state,