aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunmin Lee <[email protected]>2024-04-24 23:04:21 +0900
committerVlastimil Babka <[email protected]>2024-05-02 16:09:40 +0200
commit306c4ac9896b07b8872293eb224058ff83f81fac (patch)
treed420c50b747e0c2558d8fbc6320a2a5582854115
parent844776cb65a77ef27bfba2220e285940b714ae4e (diff)
mm/slub: create kmalloc 96 and 192 caches regardless cache size order
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]>
-rw-r--r--mm/slab_common.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/mm/slab_common.c b/mm/slab_common.c
index 67c03d6bd26c..7cfdcc8cbf5f 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -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