mm/slab_common: provide "slab_merge" option for !IS_ENABLED(CONFIG_SLAB_MERGE_DEFAULT...
authorRafael Aquini <aquini@redhat.com>
Fri, 30 Apr 2021 05:54:39 +0000 (22:54 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Apr 2021 18:20:36 +0000 (11:20 -0700)
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>
Documentation/admin-guide/kernel-parameters.txt
mm/slab_common.c

index 5c949c1..1c0a3cf 100644 (file)
 
        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]
                        Disable merging of slabs with similar size. May be
                        necessary if there is some reason to distinguish
                        lower than slub_max_order.
                        For more information see Documentation/vm/slub.rst.
 
+       slub_merge      [MM, SLUB]
+                       Same with slab_merge.
+
        slub_nomerge    [MM, SLUB]
                        Same with slab_nomerge. This is supported for legacy.
                        See slab_nomerge for more information.
index 4c6107e..f8833d3 100644 (file)
@@ -71,11 +71,19 @@ static int __init setup_slab_nomerge(char *str)
        return 1;
 }
 
+static int __init setup_slab_merge(char *str)
+{
+       slab_nomerge = false;
+       return 1;
+}
+
 #ifdef CONFIG_SLUB
 __setup_param("slub_nomerge", slub_nomerge, setup_slab_nomerge, 0);
+__setup_param("slub_merge", slub_merge, setup_slab_merge, 0);
 #endif
 
 __setup("slab_nomerge", setup_slab_nomerge);
+__setup("slab_merge", setup_slab_merge);
 
 /*
  * Determine the size of a slab object