* [PATCH] netfs: Restore selective debug mask handling
@ 2026-09-05 5:17 Karl Mehltretter
2026-10-15 6:15 ` Karl Mehltretter
0 siblings, 1 reply; 2+ messages in thread
From: Karl Mehltretter @ 2026-09-05 5:17 UTC (permalink / raw)
To: David Howells
Cc: Karl Mehltretter, Paulo Alcantara, Jeff Layton, Christian Brauner,
netfs, linux-fsdevel, linux-kernel
The netfs debug macros test only whether netfs_debug is nonzero.
Consequently, selecting one debug point enables every entry, exit and
general debug message.
Documentation/filesystems/caching/fscache.rst and the NETFS_DEBUG
Kconfig help still describe /sys/module/netfs/parameters/debug as a
bitmask of per-stream function entry, exit and general debugging
points, and the fscache_*.c files still define FSCACHE_DEBUG_LEVEL,
but nothing has decoded either since the mask handling was dropped
when FS-Cache was folded into netfs.
Restore the per-level and per-point mask decoding. Files that do not
define FSCACHE_DEBUG_LEVEL, which includes the netfs core, fall under
the cache management stream, the same default the FS-Cache macros had.
Fixes: 915cd30cdea8 ("netfs, fscache: Combine fscache with netfs")
Assisted-by: LLM
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
---
fs/netfs/internal.h | 32 +++++++++++++++++++++++++++++---
1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/fs/netfs/internal.h b/fs/netfs/internal.h
index 420ee7b26580f..425c73b7e77b4 100644
--- a/fs/netfs/internal.h
+++ b/fs/netfs/internal.h
@@ -468,6 +468,32 @@ void fscache_create_volume(struct fscache_volume *volume, bool wait);
#define kleave(FMT, ...) dbgprintk("<== %s()"FMT"", __func__, ##__VA_ARGS__)
#define kdebug(FMT, ...) dbgprintk(FMT, ##__VA_ARGS__)
+#define FSCACHE_DEBUG_CACHE 0
+#define FSCACHE_DEBUG_COOKIE 1
+#define FSCACHE_DEBUG_OBJECT 2
+#define FSCACHE_DEBUG_OPERATION 3
+
+#define FSCACHE_POINT_ENTER 1
+#define FSCACHE_POINT_LEAVE 2
+#define FSCACHE_POINT_DEBUG 4
+
+#ifndef FSCACHE_DEBUG_LEVEL
+#define FSCACHE_DEBUG_LEVEL CACHE
+#endif
+
+/*
+ * Determine whether a particular optional debugging point should be logged.
+ * Three levels of indirection are needed to expand FSCACHE_DEBUG_LEVEL before
+ * joining it with its prefix.
+ */
+#define ____do_kdebug(LEVEL, POINT) \
+ unlikely(netfs_debug & \
+ (FSCACHE_POINT_##POINT << (FSCACHE_DEBUG_ ## LEVEL * 3)))
+#define ___do_kdebug(LEVEL, POINT) \
+ ____do_kdebug(LEVEL, POINT)
+#define __do_kdebug(POINT) \
+ ___do_kdebug(FSCACHE_DEBUG_LEVEL, POINT)
+
#ifdef __KDEBUG
#define _enter(FMT, ...) kenter(FMT, ##__VA_ARGS__)
#define _leave(FMT, ...) kleave(FMT, ##__VA_ARGS__)
@@ -476,19 +502,19 @@ void fscache_create_volume(struct fscache_volume *volume, bool wait);
#elif defined(CONFIG_NETFS_DEBUG)
#define _enter(FMT, ...) \
do { \
- if (netfs_debug) \
+ if (__do_kdebug(ENTER)) \
kenter(FMT, ##__VA_ARGS__); \
} while (0)
#define _leave(FMT, ...) \
do { \
- if (netfs_debug) \
+ if (__do_kdebug(LEAVE)) \
kleave(FMT, ##__VA_ARGS__); \
} while (0)
#define _debug(FMT, ...) \
do { \
- if (netfs_debug) \
+ if (__do_kdebug(DEBUG)) \
kdebug(FMT, ##__VA_ARGS__); \
} while (0)
--
2.53.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] netfs: Restore selective debug mask handling
2026-09-05 5:17 [PATCH] netfs: Restore selective debug mask handling Karl Mehltretter
@ 2026-10-15 6:15 ` Karl Mehltretter
0 siblings, 0 replies; 2+ messages in thread
From: Karl Mehltretter @ 2026-10-15 6:15 UTC (permalink / raw)
To: David Howells
Cc: Paulo Alcantara, Jeff Layton, Christian Brauner, netfs,
linux-fsdevel, linux-kernel
On Sat, Sep 05, 2026 at 07:17:38AM +0100, Karl Mehltretter wrote:
> The netfs debug macros test only whether netfs_debug is nonzero.
> Consequently, selecting one debug point enables every entry, exit and
> general debug message.
>
> Documentation/filesystems/caching/fscache.rst and the NETFS_DEBUG
> Kconfig help still describe /sys/module/netfs/parameters/debug as a
> bitmask of per-stream function entry, exit and general debugging
> points, and the fscache_*.c files still define FSCACHE_DEBUG_LEVEL,
> but nothing has decoded either since the mask handling was dropped
> when FS-Cache was folded into netfs.
>
> Restore the per-level and per-point mask decoding. Files that do not
> define FSCACHE_DEBUG_LEVEL, which includes the netfs core, fall under
> the cache management stream, the same default the FS-Cache macros had.
>
> Fixes: 915cd30cdea8 ("netfs, fscache: Combine fscache with netfs")
> Assisted-by: LLM
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
A friendly ping on this debug-mask fix.
Thanks,
Karl
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-15 6:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-05 5:17 [PATCH] netfs: Restore selective debug mask handling Karl Mehltretter
2026-10-15 6:15 ` Karl Mehltretter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox