summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorJeff Layton <jlayton@kernel.org>2025-06-18 17:24:17 +0300
committerJakub Kicinski <kuba@kernel.org>2025-06-20 03:02:04 +0300
commitaa7d26c3c3497258b712fb97221e775733a710b7 (patch)
tree5aad9861ba1825fd92a81b97e636fb2ded3c50df /include/linux
parent49c94af071fc6c9f5e1db52b3031dec28daa90c3 (diff)
downloadlinux-aa7d26c3c3497258b712fb97221e775733a710b7.tar.xz
ref_tracker: add a static classname string to each ref_tracker_dir
A later patch in the series will be adding debugfs files for each ref_tracker that get created in ref_tracker_dir_init(). The format will be "class@%px". The current "name" string can vary between ref_tracker_dir objects of the same type, so it's not suitable for this purpose. Add a new "class" string to the ref_tracker dir that describes the the type of object (sans any individual info for that object). Also, in the i915 driver, gate the creation of debugfs files on whether the dentry pointer is still set to NULL. CI has shown that the ref_tracker_dir can be initialized more than once. Signed-off-by: Jeff Layton <jlayton@kernel.org> Link: https://patch.msgid.link/20250618-reftrack-dbgfs-v15-4-24fc37ead144@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ref_tracker.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/ref_tracker.h b/include/linux/ref_tracker.h
index a0a1ee43724f..3968f993db81 100644
--- a/include/linux/ref_tracker.h
+++ b/include/linux/ref_tracker.h
@@ -19,6 +19,7 @@ struct ref_tracker_dir {
bool dead;
struct list_head list; /* List of active trackers */
struct list_head quarantine; /* List of dead trackers */
+ const char *class; /* object classname */
char name[32];
#endif
};
@@ -27,6 +28,7 @@ struct ref_tracker_dir {
static inline void ref_tracker_dir_init(struct ref_tracker_dir *dir,
unsigned int quarantine_count,
+ const char *class,
const char *name)
{
INIT_LIST_HEAD(&dir->list);
@@ -36,6 +38,7 @@ static inline void ref_tracker_dir_init(struct ref_tracker_dir *dir,
dir->dead = false;
refcount_set(&dir->untracked, 1);
refcount_set(&dir->no_tracker, 1);
+ dir->class = class;
strscpy(dir->name, name, sizeof(dir->name));
stack_depot_init();
}
@@ -60,6 +63,7 @@ int ref_tracker_free(struct ref_tracker_dir *dir,
static inline void ref_tracker_dir_init(struct ref_tracker_dir *dir,
unsigned int quarantine_count,
+ const char *class,
const char *name)
{
}