[PATCH 0/9] slub_debug fixes and improvements

From: Vlastimil Babka
Date: Wed Jun 10 2020 - 12:32:30 EST


Hi,

this series puts together the recent series "replace runtime slub_debug
toggling with more capable boot parameter" [4] (no longer RFC, thanks for
reviews), with older RFC [5] to introduce a static key for slub_debug. It's
because the removal of runtime toggling makes the static key addition simpler.
The last patch improves cache_from_obj() based on recent debugging effort [6].

We had recently reports [1,2] of troubles with runtime writes to various SLUB
per-cache sysfs files related to slub_debug or tuning leading to crashes. I have
inspected all those writable files and the rather unfortunate result is that
most of them are made read-only by this patchset, as fixing the issues doesn't
seem viable. Details for each are given in each patch (2-5)

The runtime toggles were however necessary for the use case described in [3],
so the first patch extends the slub_debug boot parameter syntax to achieve the
same configuration without runtime toggles. That should hopefully make the
changes more feasible.

Patches 6-9 reduce slub_debug overhead in cases where it's compiled in but not
enabled during boot, with a static key. Patch 9 also improves bug reporting
in cache_from_obj().

[1] https://lkml.kernel.org/r/1580379523-32272-1-git-send-email-vjitta@xxxxxxxxxxxxxx
[2] https://lore.kernel.org/r/CAG48ez31PP--h6_FzVyfJ4H86QYczAFPdxtJHUEEan+7VJETAQ@xxxxxxxxxxxxxx
[3] https://lore.kernel.org/r/1383cd32-1ddc-4dac-b5f8-9c42282fa81c@xxxxxxxxxxxxxx
[4] https://lore.kernel.org/r/20200602141519.7099-1-vbabka@xxxxxxx
[5] https://lore.kernel.org/r/20190404091531.9815-1-vbabka@xxxxxxx
[6] https://lore.kernel.org/r/4dc93ff8-f86e-f4c9-ebeb-6d3153a78d03@xxxxxxxxxx

Vlastimil Babka (9):
mm, slub: extend slub_debug syntax for multiple blocks
mm, slub: make some slub_debug related attributes read-only
mm, slub: remove runtime allocation order changes
mm, slub: make remaining slub_debug related attributes read-only
mm, slub: make reclaim_account attribute read-only
mm, slub: introduce static key for slub_debug()
mm, slub: introduce kmem_cache_debug_flags()
mm, slub: extend checks guarded by slub_debug static key
mm, slab/slub: move and improve cache_from_obj()

.../admin-guide/kernel-parameters.txt | 2 +-
Documentation/vm/slub.rst | 37 +-
mm/slab.c | 8 +
mm/slab.h | 23 --
mm/slub.c | 374 +++++++++---------
5 files changed, 222 insertions(+), 222 deletions(-)

--
2.26.2