]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
netfs: Renumber the NETFS_RREQ_* flags to make traces easier to read
authorDavid Howells <dhowells@redhat.com>
Tue, 1 Jul 2025 16:38:47 +0000 (17:38 +0100)
committerChristian Brauner <brauner@kernel.org>
Tue, 1 Jul 2025 20:37:14 +0000 (22:37 +0200)
Renumber the NETFS_RREQ_* flags to put the most useful status bits in the
bottom nibble - and therefore the last hex digit in the trace output -
making it easier to grasp the state at a glance.

In particular, put the IN_PROGRESS flag in bit 0 and ALL_QUEUED at bit 1.

Also make the flags field in /proc/fs/netfs/requests larger to accommodate
all the flags.

Also make the flags field in the netfs_sreq tracepoint larger to
accommodate all the NETFS_SREQ_* flags.

Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/20250701163852.2171681-13-dhowells@redhat.com
Reviewed-by: Paulo Alcantara <pc@manguebit.org>
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/netfs/main.c
include/linux/netfs.h
include/trace/events/netfs.h

index 3db401d269e7b3ce7ef57c21535a391e72b17eef..73da6c9f5777cf3cfd3ae34ea3c6c2d0766c2230 100644 (file)
@@ -58,15 +58,15 @@ static int netfs_requests_seq_show(struct seq_file *m, void *v)
 
        if (v == &netfs_io_requests) {
                seq_puts(m,
-                        "REQUEST  OR REF FL ERR  OPS COVERAGE\n"
-                        "======== == === == ==== === =========\n"
+                        "REQUEST  OR REF FLAG ERR  OPS COVERAGE\n"
+                        "======== == === ==== ==== === =========\n"
                         );
                return 0;
        }
 
        rreq = list_entry(v, struct netfs_io_request, proc_link);
        seq_printf(m,
-                  "%08x %s %3d %2lx %4ld %3d @%04llx %llx/%llx",
+                  "%08x %s %3d %4lx %4ld %3d @%04llx %llx/%llx",
                   rreq->debug_id,
                   netfs_origins[rreq->origin],
                   refcount_read(&rreq->ref),
index d8186b90fb38ac12f775e4c2d936ac7f2ea471af..f43f075852c06bfc87bb9024f6390765d56af997 100644 (file)
@@ -265,17 +265,17 @@ struct netfs_io_request {
        bool                    direct_bv_unpin; /* T if direct_bv[] must be unpinned */
        refcount_t              ref;
        unsigned long           flags;
-#define NETFS_RREQ_OFFLOAD_COLLECTION  0       /* Offload collection to workqueue */
-#define NETFS_RREQ_NO_UNLOCK_FOLIO     2       /* Don't unlock no_unlock_folio on completion */
-#define NETFS_RREQ_FAILED              4       /* The request failed */
-#define NETFS_RREQ_IN_PROGRESS         5       /* Unlocked when the request completes (has ref) */
-#define NETFS_RREQ_FOLIO_COPY_TO_CACHE 6       /* Copy current folio to cache from read */
-#define NETFS_RREQ_UPLOAD_TO_SERVER    8       /* Need to write to the server */
-#define NETFS_RREQ_PAUSE               11      /* Pause subrequest generation */
+#define NETFS_RREQ_IN_PROGRESS         0       /* Unlocked when the request completes (has ref) */
+#define NETFS_RREQ_ALL_QUEUED          1       /* All subreqs are now queued */
+#define NETFS_RREQ_PAUSE               2       /* Pause subrequest generation */
+#define NETFS_RREQ_FAILED              3       /* The request failed */
+#define NETFS_RREQ_RETRYING            4       /* Set if we're in the retry path */
+#define NETFS_RREQ_SHORT_TRANSFER      5       /* Set if we have a short transfer */
+#define NETFS_RREQ_OFFLOAD_COLLECTION  8       /* Offload collection to workqueue */
+#define NETFS_RREQ_NO_UNLOCK_FOLIO     9       /* Don't unlock no_unlock_folio on completion */
+#define NETFS_RREQ_FOLIO_COPY_TO_CACHE 10      /* Copy current folio to cache from read */
+#define NETFS_RREQ_UPLOAD_TO_SERVER    11      /* Need to write to the server */
 #define NETFS_RREQ_USE_IO_ITER         12      /* Use ->io_iter rather than ->i_pages */
-#define NETFS_RREQ_ALL_QUEUED          13      /* All subreqs are now queued */
-#define NETFS_RREQ_RETRYING            14      /* Set if we're in the retry path */
-#define NETFS_RREQ_SHORT_TRANSFER      15      /* Set if we have a short transfer */
 #define NETFS_RREQ_USE_PGPRIV2         31      /* [DEPRECATED] Use PG_private_2 to mark
                                                 * write to cache on read */
        const struct netfs_request_ops *netfs_ops;
index ba35dc66e98619d32f3437cc90302e4ccc915c4f..c2d581429a7b24b946f2027b73f315a78a45f51b 100644 (file)
@@ -367,7 +367,7 @@ TRACE_EVENT(netfs_sreq,
                    __entry->slot       = sreq->io_iter.folioq_slot;
                           ),
 
-           TP_printk("R=%08x[%x] %s %s f=%02x s=%llx %zx/%zx s=%u e=%d",
+           TP_printk("R=%08x[%x] %s %s f=%03x s=%llx %zx/%zx s=%u e=%d",
                      __entry->rreq, __entry->index,
                      __print_symbolic(__entry->source, netfs_sreq_sources),
                      __print_symbolic(__entry->what, netfs_sreq_traces),