On 2/15/24 22:37, Kent Overstreet wrote: > On Thu, Feb 15, 2024 at 10:31:06PM +0100, Vlastimil Babka wrote: >> On 2/12/24 22:38, Suren Baghdasaryan wrote: >> > Slab extension objects can't be allocated before slab infrastructure is >> > initialized. Some caches, like kmem_cache and kmem_cache_node, are created >> > before slab infrastructure is initialized. Objects from these caches can't >> > have extension objects. Introduce SLAB_NO_OBJ_EXT slab flag to mark these >> > caches and avoid creating extensions for objects allocated from these >> > slabs. >> > >> > Signed-off-by: Suren Baghdasaryan <surenb@xxxxxxxxxx> >> > --- >> > include/linux/slab.h | 7 +++++++ >> > mm/slub.c | 5 +++-- >> > 2 files changed, 10 insertions(+), 2 deletions(-) >> > >> > diff --git a/include/linux/slab.h b/include/linux/slab.h >> > index b5f5ee8308d0..3ac2fc830f0f 100644 >> > --- a/include/linux/slab.h >> > +++ b/include/linux/slab.h >> > @@ -164,6 +164,13 @@ >> > #endif >> > #define SLAB_TEMPORARY SLAB_RECLAIM_ACCOUNT /* Objects are short-lived */ >> > >> > +#ifdef CONFIG_SLAB_OBJ_EXT >> > +/* Slab created using create_boot_cache */ >> > +#define SLAB_NO_OBJ_EXT ((slab_flags_t __force)0x20000000U) >> >> There's >> #define SLAB_SKIP_KFENCE ((slab_flags_t __force)0x20000000U) >> already, so need some other one? > > What's up with the order of flags in that file? They don't seem to > follow any particular ordering. Seems mostly in increasing order, except commit 4fd0b46e89879 broke it for SLAB_RECLAIM_ACCOUNT? > Seems like some cleanup is in order, but any history/context we should > know first? Yeah noted, but no need to sidetrack you.