[PATCH v3 0/6] SLUB debugfs improvements based on stackdepot

From: Vlastimil Babka
Date: Mon Apr 04 2022 - 18:04:12 EST


Changes since v2:
https://lore.kernel.org/all/20220302173122.11939-1-vbabka@xxxxxxx/

- Reworked patch 1 based on feedback from Mike and Marco. Updated patch
3 accordingly.
- Rebased to v5.18-rc1
- Add acks/reviews. Thanks all.

Hi,

this series combines and revives patches from Oliver's last year
bachelor thesis (where I was the advisor) that make SLUB's debugfs
files alloc_traces and free_traces more useful.
The resubmission was blocked on stackdepot changes that are now merged,
as explained in patch 3.

Patch 1 makes it possible to use stack depot without bootstrap issues.

Patch 2 is a new preparatory cleanup.

Patch 3 originally submitted here [1], was merged to mainline but
reverted for stackdepot related issues as explained in the patch.

Patches 4-6 originally submitted as RFC here [2]. In this submission I
have omitted the new file 'all_objects' (patch 3/3 in [2]) as it might
be considered too intrusive so I will postpone it for later. The docs
patch is adjusted accordingly.

Also available in git, based on v5.18-rc1:
https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git/log/?h=slub-stackdepot-v3r2

I plan to add this to the slab (-next) tree for 5.19. lkp has been
testing this already from my git, which resolved some more corner cases
and recently only uncovered a pre-existing kfence bug [3]

[1] https://lore.kernel.org/all/20210414163434.4376-1-glittao@xxxxxxxxx/
[2] https://lore.kernel.org/all/20210521121127.24653-1-glittao@xxxxxxxxx/
[3] https://lore.kernel.org/all/8368021e-86c3-a93f-b29d-efed02135c41@xxxxxxx/


Oliver Glitta (4):
mm/slub: use stackdepot to save stack trace in objects
mm/slub: distinguish and print stack traces in debugfs files
mm/slub: sort debugfs output by frequency of stack traces
slab, documentation: add description of debugfs files for SLUB caches

Vlastimil Babka (2):
lib/stackdepot: allow requesting early initialization dynamically
mm/slub: move struct track init out of set_track()

Documentation/vm/slub.rst | 64 ++++++++++++++++++
include/linux/stackdepot.h | 26 +++++--
init/Kconfig | 1 +
lib/Kconfig.debug | 1 +
lib/stackdepot.c | 66 ++++++++++++------
mm/page_owner.c | 9 ++-
mm/slab_common.c | 5 ++
mm/slub.c | 135 +++++++++++++++++++++++++------------
8 files changed, 234 insertions(+), 73 deletions(-)

--
2.35.1