mm/slab_common: provide "slab_merge" option for !IS_ENABLED(CONFIG_SLAB_MERGE_DEFAULT) builds

This is a minor addition to the allocator setup options to provide a
simple way to on demand enable back cache merging for builds that by
default run with CONFIG_SLAB_MERGE_DEFAULT not set.

Link: https://lkml.kernel.org/r/20210319194506.200159-1-aquini@redhat.com
Signed-off-by: Rafael Aquini <aquini@redhat.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Rafael Aquini 2021-04-29 22:54:39 -07:00 committed by Linus Torvalds
parent 9bf3bc949f
commit 82edd9d52e
2 changed files with 15 additions and 0 deletions

View File

@ -4996,6 +4996,10 @@
slram= [HW,MTD] slram= [HW,MTD]
slab_merge [MM]
Enable merging of slabs with similar size when the
kernel is built without CONFIG_SLAB_MERGE_DEFAULT.
slab_nomerge [MM] slab_nomerge [MM]
Disable merging of slabs with similar size. May be Disable merging of slabs with similar size. May be
necessary if there is some reason to distinguish necessary if there is some reason to distinguish
@ -5043,6 +5047,9 @@
lower than slub_max_order. lower than slub_max_order.
For more information see Documentation/vm/slub.rst. For more information see Documentation/vm/slub.rst.
slub_merge [MM, SLUB]
Same with slab_merge.
slub_nomerge [MM, SLUB] slub_nomerge [MM, SLUB]
Same with slab_nomerge. This is supported for legacy. Same with slab_nomerge. This is supported for legacy.
See slab_nomerge for more information. See slab_nomerge for more information.

View File

@ -71,11 +71,19 @@ static int __init setup_slab_nomerge(char *str)
return 1; return 1;
} }
static int __init setup_slab_merge(char *str)
{
slab_nomerge = false;
return 1;
}
#ifdef CONFIG_SLUB #ifdef CONFIG_SLUB
__setup_param("slub_nomerge", slub_nomerge, setup_slab_nomerge, 0); __setup_param("slub_nomerge", slub_nomerge, setup_slab_nomerge, 0);
__setup_param("slub_merge", slub_merge, setup_slab_merge, 0);
#endif #endif
__setup("slab_nomerge", setup_slab_nomerge); __setup("slab_nomerge", setup_slab_nomerge);
__setup("slab_merge", setup_slab_merge);
/* /*
* Determine the size of a slab object * Determine the size of a slab object