[PATCH v9 00/10] ref_tracker: add ability to register a debugfs file for a ref_tracker_dir

Jeff Layton posted 10 patches 7 months, 1 week ago
There is a newer version of this series
drivers/gpu/drm/display/drm_dp_tunnel.c |   2 +-
drivers/gpu/drm/i915/intel_runtime_pm.c |   4 +-
drivers/gpu/drm/i915/intel_wakeref.c    |   3 +-
include/linux/ref_tracker.h             |  58 +++++++++-
lib/ref_tracker.c                       | 190 +++++++++++++++++++++++++++++---
net/core/dev.c                          |   2 +-
net/core/net_namespace.c                |  34 +++++-
7 files changed, 267 insertions(+), 26 deletions(-)
[PATCH v9 00/10] ref_tracker: add ability to register a debugfs file for a ref_tracker_dir
Posted by Jeff Layton 7 months, 1 week ago
This one just fixes a typo in the ref_tracker_dir_init() kerneldoc
header. I'm only resending so the CI will pick it up.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
Changes in v9:
- fix typo in ref_tracker_dir_init() kerneldoc header
- Link to v8: https://lore.kernel.org/r/20250507-reftrack-dbgfs-v8-0-607717d3bb98@kernel.org

Changes in v8:
- fix up compiler warnings that the KTR warned about
- ensure builds with CONFIG_DEBUG_FS=n and CONFIG_REF_TRACKER=y work
- Link to v7: https://lore.kernel.org/r/20250505-reftrack-dbgfs-v7-0-f78c5d97bcca@kernel.org

Changes in v7:
- include net->net_cookie in netns symlink name
- add __ostream_printf to ref_tracker_dir_symlink() stub function
- remove unneeded #include of seq_file.h
- Link to v6: https://lore.kernel.org/r/20250430-reftrack-dbgfs-v6-0-867c29aff03a@kernel.org

Changes in v6:
- clean up kerneldoc comment for ref_tracker_dir_debugfs()
- add missing stub function for ref_tracker_dir_symlink()
- temporary __maybe_unused on ref_tracker_dir_seq_print() to silence compiler warning
- Link to v5: https://lore.kernel.org/r/20250428-reftrack-dbgfs-v5-0-1cbbdf2038bd@kernel.org

Changes in v5:
- add class string to each ref_tracker_dir
- auto-register debugfs file for every tracker in ref_tracker_dir_init
- add function to allow adding a symlink for each tracker
- add patches to create symlinks for netns's and i915 entries
- change output format to print class@%p instead of name@%p
- eliminate the name field in ref_tracker_dir
- fix off-by-one bug when NULL terminating name string
- Link to v4: https://lore.kernel.org/r/20250418-reftrack-dbgfs-v4-0-5ca5c7899544@kernel.org

Changes in v4:
- Drop patch to widen ref_tracker_dir_.name, use NAME_MAX+1 (256) instead since this only affects dentry name
- Link to v3: https://lore.kernel.org/r/20250417-reftrack-dbgfs-v3-0-c3159428c8fb@kernel.org

Changes in v3:
- don't overwrite dir->name in ref_tracker_dir_debugfs
- define REF_TRACKER_NAMESZ and use it when setting name
- Link to v2: https://lore.kernel.org/r/20250415-reftrack-dbgfs-v2-0-b18c4abd122f@kernel.org

Changes in v2:
- Add patch to do %pK -> %p conversion in ref_tracker.c
- Pass in output function to pr_ostream() instead of if statement
- Widen ref_tracker_dir.name to 64 bytes to accomodate unique names
- Eliminate error handling with debugfs manipulation
- Incorporate pointer value into netdev name
- Link to v1: https://lore.kernel.org/r/20250414-reftrack-dbgfs-v1-0-f03585832203@kernel.org

---
Jeff Layton (10):
      ref_tracker: don't use %pK in pr_ostream() output
      ref_tracker: add a top level debugfs directory for ref_tracker
      ref_tracker: have callers pass output function to pr_ostream()
      ref_tracker: add a static classname string to each ref_tracker_dir
      ref_tracker: allow pr_ostream() to print directly to a seq_file
      ref_tracker: automatically register a file in debugfs for a ref_tracker_dir
      ref_tracker: add a way to create a symlink to the ref_tracker_dir debugfs file
      net: add symlinks to ref_tracker_dir for netns
      i915: add ref_tracker_dir symlinks for each tracker
      ref_tracker: eliminate the ref_tracker_dir name field

 drivers/gpu/drm/display/drm_dp_tunnel.c |   2 +-
 drivers/gpu/drm/i915/intel_runtime_pm.c |   4 +-
 drivers/gpu/drm/i915/intel_wakeref.c    |   3 +-
 include/linux/ref_tracker.h             |  58 +++++++++-
 lib/ref_tracker.c                       | 190 +++++++++++++++++++++++++++++---
 net/core/dev.c                          |   2 +-
 net/core/net_namespace.c                |  34 +++++-
 7 files changed, 267 insertions(+), 26 deletions(-)
---
base-commit: 5bc1018675ec28a8a60d83b378d8c3991faa5a27
change-id: 20250413-reftrack-dbgfs-3767b303e2fa

Best regards,
-- 
Jeff Layton <jlayton@kernel.org>
Re: [PATCH v9 00/10] ref_tracker: add ability to register a debugfs file for a ref_tracker_dir
Posted by Jakub Kicinski 7 months, 1 week ago
On Fri, 09 May 2025 11:53:36 -0400 Jeff Layton wrote:
> This one just fixes a typo in the ref_tracker_dir_init() kerneldoc
> header. I'm only resending so the CI will pick it up.

We got a bunch of:

[    0.457561][    T0] ref_tracker: ref_tracker: unable to create debugfs file for net_refcnt@ffffffff92da4870: -ENOENT
[    0.457561][    T0] ref_tracker: ref_tracker: unable to create debugfs file for net_notrefcnt@ffffffff92da48f8: -ENOENT

[    0.973191][    T1] ref_tracker: ref_tracker: unable to create debugfs file for netdev@ffff888004d0c5a8: -ENOENT

[    1.150784][    T1] ref_tracker: ref_tracker: unable to create debugfs file for netdev@ffff8880053fc5a8: -ENOENT

[    1.660680][    T1] ref_tracker: ref_tracker: unable to create debugfs file for netdev@ffff8880085f95a8: -ENOENT

in the CI at boot. Presumably init_net and loopback.

https://netdev-3.bots.linux.dev/vmksft-net-drv-dbg/results/113741/vm-start-thr0-0/stdout
Re: [PATCH v9 00/10] ref_tracker: add ability to register a debugfs file for a ref_tracker_dir
Posted by Jeff Layton 7 months, 1 week ago
On Fri, 2025-05-09 at 16:00 -0700, Jakub Kicinski wrote:
> On Fri, 09 May 2025 11:53:36 -0400 Jeff Layton wrote:
> > This one just fixes a typo in the ref_tracker_dir_init() kerneldoc
> > header. I'm only resending so the CI will pick it up.
> 
> We got a bunch of:
> 
> [    0.457561][    T0] ref_tracker: ref_tracker: unable to create debugfs file for net_refcnt@ffffffff92da4870: -ENOENT
> [    0.457561][    T0] ref_tracker: ref_tracker: unable to create debugfs file for net_notrefcnt@ffffffff92da48f8: -ENOENT
> 
> [    0.973191][    T1] ref_tracker: ref_tracker: unable to create debugfs file for netdev@ffff888004d0c5a8: -ENOENT
> 
> [    1.150784][    T1] ref_tracker: ref_tracker: unable to create debugfs file for netdev@ffff8880053fc5a8: -ENOENT
> 
> [    1.660680][    T1] ref_tracker: ref_tracker: unable to create debugfs file for netdev@ffff8880085f95a8: -ENOENT
> 
> in the CI at boot. Presumably init_net and loopback.
> 
> https://netdev-3.bots.linux.dev/vmksft-net-drv-dbg/results/113741/vm-start-thr0-0/stdout


Makes sense. I had an earlier version that only attempted to create the
debugfs file if the directory was already created, but Andrew had
complained about the error checking I was doing on debugfs. That would
silence these warnings. I'll see about bringing that back.

-- 
Jeff Layton <jlayton@kernel.org>