]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
kernel/fork: Use per-cpu array for vma and vma locks slub-percpu-caches-v5
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Fri, 9 Feb 2024 22:16:07 +0000 (17:16 -0500)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Mon, 29 Apr 2024 14:50:35 +0000 (10:50 -0400)
This will allow vmas to utilize the bulk allocator and amortize the
allocation time over multiple bulk allocations vs one per item.

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
kernel/fork.c

index db3b9b0469bac51424c754a3991ae77995ddceac..05e1fdd61073e9d4d1cfa882a916193ec066e442 100644 (file)
@@ -3285,9 +3285,14 @@ void __init proc_caches_init(void)
                        SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT,
                        NULL);
 
-       vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC|SLAB_ACCOUNT);
+       vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC|SLAB_ACCOUNT|
+                                   SLAB_NO_MERGE);
+       BUG_ON(kmem_cache_setup_percpu_array(vm_area_cachep, 32));
+
 #ifdef CONFIG_PER_VMA_LOCK
-       vma_lock_cachep = KMEM_CACHE(vma_lock, SLAB_PANIC|SLAB_ACCOUNT);
+       vma_lock_cachep = KMEM_CACHE(vma_lock, SLAB_PANIC|SLAB_ACCOUNT|
+                                    SLAB_NO_MERGE);
+       BUG_ON(kmem_cache_setup_percpu_array(vma_lock_cachep, 32));
 #endif
        mmap_init();
        nsproxy_cache_init();