diff options
author | Vlastimil Babka <vbabka@suse.cz> | 2022-11-15 10:50:28 +0100 |
---|---|---|
committer | Vlastimil Babka <vbabka@suse.cz> | 2022-11-27 23:38:31 +0100 |
commit | 5a8a3c1f73c6488d1a2c18ac1f5308b1fd2aa5f0 (patch) | |
tree | b090c16f31a4a0cbe405abc6634966265ac596f3 /mm | |
parent | b1a413a39a1a7694acf3636a52c109821148ecdd (diff) | |
download | linux-stable-5a8a3c1f73c6488d1a2c18ac1f5308b1fd2aa5f0.tar.gz linux-stable-5a8a3c1f73c6488d1a2c18ac1f5308b1fd2aa5f0.tar.bz2 linux-stable-5a8a3c1f73c6488d1a2c18ac1f5308b1fd2aa5f0.zip |
mm, slub: retain no free slabs on partial list with CONFIG_SLUB_TINY
SLUB will leave a number of slabs on the partial list even if they are
empty, to avoid some slab freeing and reallocation. The goal of
CONFIG_SLUB_TINY is to minimize memory overhead, so set the limits to 0
for immediate slab page freeing.
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Roman Gushchin <roman.gushchin@linux.dev>
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Reviewed-by: Christoph Lameter <cl@linux.com>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c index b81ceeb6e6de..19b6cf74bdfc 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -241,6 +241,7 @@ static inline bool kmem_cache_has_cpu_partial(struct kmem_cache *s) /* Enable to log cmpxchg failures */ #undef SLUB_DEBUG_CMPXCHG +#ifndef CONFIG_SLUB_TINY /* * Minimum number of partial slabs. These will be left on the partial * lists even if they are empty. kmem_cache_shrink may reclaim them. @@ -253,6 +254,10 @@ static inline bool kmem_cache_has_cpu_partial(struct kmem_cache *s) * sort the partial list by the number of objects in use. */ #define MAX_PARTIAL 10 +#else +#define MIN_PARTIAL 0 +#define MAX_PARTIAL 0 +#endif #define DEBUG_DEFAULT_FLAGS (SLAB_CONSISTENCY_CHECKS | SLAB_RED_ZONE | \ SLAB_POISON | SLAB_STORE_USER) |