Hi Oliver, Yogesh, On Wed, Apr 14, 2021 at 8:08 PM <glittao@xxxxxxxxx> wrote: > From: Oliver Glitta <glittao@xxxxxxxxx> > > Many stack traces are similar so there are many similar arrays. > Stackdepot saves each unique stack only once. > > Replace field addrs in struct track with depot_stack_handle_t handle. > Use stackdepot to save stack trace. > > The benefits are smaller memory overhead and possibility to aggregate > per-cache statistics in the future using the stackdepot handle > instead of matching stacks manually. > > Signed-off-by: Oliver Glitta <glittao@xxxxxxxxx> Thanks for your patch, which is now commit 788691464c294553 ("mm/slub: use stackdepot to save stack trace in objects") in v5.14-rc1. > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -1891,6 +1891,7 @@ config SLUB_DEBUG > default y > bool "Enable SLUB debugging support" if EXPERT > depends on SLUB && SYSFS > + select STACKDEPOT if STACKTRACE_SUPPORT > help > SLUB has extensive debug support features. Disabling these can > result in significant savings in code size. This also disables This change increases memory consumption by 4 MiB (or more, see below). Looking at lib/Kconfig: | config STACK_HASH_ORDER | int "stack depot hash size (12 => 4KB, 20 => 1024KB)" The sizes reported here are not correct, as the actual memory consumption is not STACK_HAS_ORDER bytes, but STACK_HAS_ORDER pointers. Hence they're off by a factor of 4 or 8. | range 12 20 | default 20 Does this really have to default to the maximum value? | depends on STACKDEPOT | help | Select the hash size as a power of 2 for the stackdepot hash table. | Choose a lower value to reduce the memory impact. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds