On 2/15/24 22:37, Kent Overstreet wrote:
On Thu, Feb 15, 2024 at 10:31:06PM +0100, Vlastimil Babka wrote:
quoted
On 2/12/24 22:38, Suren Baghdasaryan wrote:
quoted
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@google.com>
---
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.