diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h index 3a1a1dbc6f49..2dd927fa779c 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h @@ -104,7 +104,7 @@ struct kmem_cache { unsigned int red_left_pad; /* Left redzone padding size */ const char *name; /* Name (only for display!) */ struct list_head list; /* List of slab caches */ -#ifdef CONFIG_SYSFS +#ifdef CONFIG_SLUB_SYSFS struct kobject kobj; /* For sysfs */ struct work_struct kobj_remove_work; #endif @@ -112,7 +112,7 @@ struct kmem_cache { struct memcg_cache_params memcg_params; /* for propagation, maximum size of a stored attr */ unsigned int max_attr_size; -#ifdef CONFIG_SYSFS +#ifdef CONFIG_SLUB_SYSFS struct kset *memcg_kset; #endif #endif @@ -153,7 +153,7 @@ struct kmem_cache { #define slub_set_cpu_partial(s, n) #endif // CONFIG_SLUB_CPU_PARTIAL -#ifdef CONFIG_SYSFS +#ifdef CONFIG_SLUB_SYSFS #define SLAB_SUPPORTS_SYSFS void sysfs_slab_unlink(struct kmem_cache *); void sysfs_slab_release(struct kmem_cache *); diff --git a/init/Kconfig b/init/Kconfig index eeac1319d6a3..10d69a84c028 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1667,6 +1667,11 @@ config VM_EVENT_COUNTERS on EXPERT systems. /proc/vmstat will only show page counts if VM event counters are disabled. +config SLUB_SYSFS + bool "Enable SLUB sysfs interface" + depends on SLUB && SYSFS + default y + config SLUB_DEBUG default y bool "Enable SLUB debugging support" if EXPERT diff --git a/mm/slub.c b/mm/slub.c index 09c0e24a06d8..7fd0b7671b5a 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -212,7 +212,7 @@ struct track { enum track_item { TRACK_ALLOC, TRACK_FREE }; -#ifdef CONFIG_SYSFS +#ifdef CONFIG_SLUB_SYSFS static int sysfs_slab_add(struct kmem_cache *); static int sysfs_slab_alias(struct kmem_cache *, const char *); static void memcg_propagate_slab_attrs(struct kmem_cache *s); @@ -2347,7 +2347,7 @@ static inline unsigned long node_nr_objs(struct kmem_cache_node *n) } #endif /* CONFIG_SLUB_DEBUG */ -#if defined(CONFIG_SLUB_DEBUG) || defined(CONFIG_SYSFS) +#if defined(CONFIG_SLUB_DEBUG) || defined(CONFIG_SLUB_SYSFS) static unsigned long count_partial(struct kmem_cache_node *n, int (*get_count)(struct page *)) { @@ -2361,7 +2361,7 @@ static unsigned long count_partial(struct kmem_cache_node *n, spin_unlock_irqrestore(&n->list_lock, flags); return x; } -#endif /* CONFIG_SLUB_DEBUG || CONFIG_SYSFS */ +#endif /* CONFIG_SLUB_DEBUG || CONFIG_SLUB_SYSFS */ static noinline void slab_out_of_memory(struct kmem_cache *s, gfp_t gfpflags, int nid) @@ -4329,7 +4329,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags, } #endif -#ifdef CONFIG_SYSFS +#ifdef CONFIG_SLUB_SYSFS static int count_inuse(struct page *page) { return page->inuse; @@ -4710,12 +4710,12 @@ static void __init resiliency_test(void) validate_slab_cache(kmalloc_caches[9]); } #else -#ifdef CONFIG_SYSFS +#ifdef CONFIG_SLUB_SYSFS static void resiliency_test(void) {}; #endif #endif -#ifdef CONFIG_SYSFS +#ifdef CONFIG_SLUB_SYSFS enum slab_stat_type { SL_ALL, /* All slabs */ SL_PARTIAL, /* Only partially allocated slabs */ @@ -5841,7 +5841,7 @@ static int __init slab_sysfs_init(void) } __initcall(slab_sysfs_init); -#endif /* CONFIG_SYSFS */ +#endif /* CONFIG_SLUB_SYSFS */ /* * The /proc/slabinfo ABI