]> Git Repo - J-linux.git/commitdiff
mm/slub: create kmalloc 96 and 192 caches regardless cache size order
authorHyunmin Lee <[email protected]>
Wed, 24 Apr 2024 14:04:21 +0000 (23:04 +0900)
committerVlastimil Babka <[email protected]>
Thu, 2 May 2024 14:09:40 +0000 (16:09 +0200)
For SLAB the kmalloc caches needed to be created in ascending sizes in
order. However, the constraint is not necessary anymore because SLAB has
been removed and SLUB doesn't need to comply with the constraint. Thus,
kmalloc 96 and 192 caches can be created after the other size kmalloc
caches are created instead of checking every time to find their order to
be created. Also, this change could prevent engineers from being confused
by the removed constraint.

Signed-off-by: Hyunmin Lee <[email protected]>
Co-developed-by: Jeungwoo Yoo <[email protected]>
Signed-off-by: Jeungwoo Yoo <[email protected]>
Co-developed-by: Sangyun Kim <[email protected]>
Signed-off-by: Sangyun Kim <[email protected]>
Cc: Hyeonggon Yoo <[email protected]>
Cc: Gwan-gyeong Mun <[email protected]>
Reviewed-by: Christoph Lameter <[email protected]>
Acked-by: David Rientjes <[email protected]>
Signed-off-by: Vlastimil Babka <[email protected]>
mm/slab_common.c

index 67c03d6bd26cfb0523f05e5c09dcfdf7944eab08..7cfdcc8cbf5f8c3e97dee3bd3199c5a6e5e9be1f 100644 (file)
@@ -916,21 +916,16 @@ void __init create_kmalloc_caches(void)
         * Including KMALLOC_CGROUP if CONFIG_MEMCG_KMEM defined
         */
        for (type = KMALLOC_NORMAL; type < NR_KMALLOC_TYPES; type++) {
+               /* Caches that are NOT of the two-to-the-power-of size. */
+               if (KMALLOC_MIN_SIZE <= 32 && !kmalloc_caches[type][1])
+                       new_kmalloc_cache(1, type);
+               if (KMALLOC_MIN_SIZE <= 64 && !kmalloc_caches[type][2])
+                       new_kmalloc_cache(2, type);
+
+               /* Caches that are of the two-to-the-power-of size. */
                for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
                        if (!kmalloc_caches[type][i])
                                new_kmalloc_cache(i, type);
-
-                       /*
-                        * Caches that are not of the two-to-the-power-of size.
-                        * These have to be created immediately after the
-                        * earlier power of two caches
-                        */
-                       if (KMALLOC_MIN_SIZE <= 32 && i == 6 &&
-                                       !kmalloc_caches[type][1])
-                               new_kmalloc_cache(1, type);
-                       if (KMALLOC_MIN_SIZE <= 64 && i == 7 &&
-                                       !kmalloc_caches[type][2])
-                               new_kmalloc_cache(2, type);
                }
        }
 #ifdef CONFIG_RANDOM_KMALLOC_CACHES
This page took 0.048995 seconds and 4 git commands to generate.