Message ID | 20250414-reftrack-dbgfs-v1-1-f03585832203@kernel.org (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | ref_tracker: register debugfs files for each ref_tracker_dir | expand |
> +static int __init ref_tracker_debug_init(void) > +{ > + ref_tracker_debug_dir = debugfs_create_dir("ref_tracker", NULL); > + if (IS_ERR(ref_tracker_debug_dir)) { I'm pretty sure GregKH will tell you not to check the return code. Nothing bad should happen. Yes, it takes a while to get used to this, but that is the way debugfs is designed. > + pr_warn("ref_tracker: unable to create debugfs ref_tracker directory: %pe\n", > + ref_tracker_debug_dir); > + ref_tracker_debug_dir = NULL; No need for this. All debugfs_ functions are happy to accept an err pointer and do a NOP. Andrew
diff --git a/lib/ref_tracker.c b/lib/ref_tracker.c index cf5609b1ca79361763abe5a3a98484a3ee591ff2..c96994134fe1ddfcbf644cc75b36b7e94461ec48 100644 --- a/lib/ref_tracker.c +++ b/lib/ref_tracker.c @@ -12,6 +12,8 @@ #define REF_TRACKER_STACK_ENTRIES 16 #define STACK_BUF_SIZE 1024 +static struct dentry *ref_tracker_debug_dir; + struct ref_tracker { struct list_head head; /* anchor into dir->list or dir->quarantine */ bool dead; @@ -273,3 +275,19 @@ int ref_tracker_free(struct ref_tracker_dir *dir, return 0; } EXPORT_SYMBOL_GPL(ref_tracker_free); + +#ifdef CONFIG_DEBUG_FS +#include <linux/debugfs.h> + +static int __init ref_tracker_debug_init(void) +{ + ref_tracker_debug_dir = debugfs_create_dir("ref_tracker", NULL); + if (IS_ERR(ref_tracker_debug_dir)) { + pr_warn("ref_tracker: unable to create debugfs ref_tracker directory: %pe\n", + ref_tracker_debug_dir); + ref_tracker_debug_dir = NULL; + } + return 0; +} +late_initcall(ref_tracker_debug_init); +#endif /* CONFIG_DEBUG_FS */
Add a new "ref_tracker" directory in debugfs. Each individual refcount tracker can register files under there to display info about currently-held references. Signed-off-by: Jeff Layton <jlayton@kernel.org> --- lib/ref_tracker.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)