Skip to content

Current slab allocator / SLUB patch queue

[email protected] linux-mm lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest26 patches 46 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/26SLUB Debug: Fix initial object debug state of NUMA bootstrap objectsmm/slub.c+2 -10 replies
2/26Slab allocators: Consolidate code for krealloc in mm/util.cmm/slab.c mm/slob.c mm/slub.c +1 more+34 -1161 reply
3/26Slab allocators: Consistent ZERO_SIZE_PTR support and NULL result semanticsinclude/linux/slab.h include/linux/slab_def.h include/linux/slub_def.h +4 more+58 -361 reply
4/26Slab allocators: Support __GFP_ZERO in all allocators.mm/slab.c mm/slob.c mm/slub.c+24 -103 replies
5/26Slab allocators: Cleanup zeroing allocationsinclude/linux/slab.h include/linux/slab_def.h include/linux/slub_def.h +4 more+24 -1078 replies
6/26Slab allocators: Replace explicit zeroing with __GFP_ZEROblock/as-iosched.c block/cfq-iosched.c block/deadline-iosched.c +9 more+30 -382 replies
7/26SLUB: Add some more inlines and #ifdef CONFIG_SLUB_DEBUGinclude/linux/slub_def.h mm/slub.c+11 -60 replies
8/26SLUB: Extract dma_kmalloc_cache from get_cache.mm/slub.c+36 -300 replies
9/26SLUB: Do proper locking during dma slab creationmm/slub.c+9 -20 replies
10/26SLUB: Faster more efficient slab determination for __kmalloc.mm/slub.c+64 -76 replies
11/26SLUB: Add support for kmem_cache_opsinclude/linux/slab.h include/linux/slub_def.h mm/slab.c +2 more+44 -222 replies
12/26SLUB: Slab defragmentation coreinclude/linux/slab.h mm/slab.c mm/slob.c +1 more+322 -646 replies
13/26SLUB: Extend slabinfo to support -D and -C optionsDocumentation/vm/slabinfo.c+36 -70 replies
14/26SLUB: Logic to trigger slab defragmentation from memory reclaimDocumentation/sysctl/vm.txt fs/drop_caches.c include/linux/mm.h +3 more+65 -90 replies
15/26Slab defrag: Support generic defragmentation for inode slab cachesfs/inode.c include/linux/fs.h+105 -15 replies
16/26Slab defragmentation: Support defragmentation for extX filesystem inodesfs/ext2/super.c fs/ext3/super.c fs/ext4/super.c+40 -40 replies
17/26Slab defragmentation: Support inode defragmentation for xfsfs/xfs/linux-2.6/kmem.h fs/xfs/linux-2.6/xfs_buf.c fs/xfs/linux-2.6/xfs_super.c +1 more+19 -70 replies
18/26Slab defragmentation: Support procfs inode defragmentationfs/proc/inode.c+13 -20 replies
19/26Slab defragmentation: Support reiserfs inode defragmentationfs/reiserfs/super.c+13 -10 replies
20/26Slab defragmentation: Support inode defragmentation for socketsnet/socket.c+12 -10 replies
21/26Slab defragmentation: support dentry defragmentationfs/dcache.c include/linux/dcache.h+109 -82 replies
22/26SLUB: kmem_cache_vacate to support page allocator memory defragmentationinclude/linux/slab.h mm/slab.c mm/slob.c +1 more+119 -90 replies
23/26SLUB: Move sysfs operations outside of slub_lockmm/slub.c+21 -130 replies
24/26SLUB: Avoid page struct cacheline bouncing due to remote frees to cpu slabinclude/linux/slub_def.h mm/slub.c+97 -760 replies
25/26SLUB: Add an object counter to the kmem_cache_cpu structureinclude/linux/slub_def.h mm/slub.c+38 -110 replies
26/26SLUB: Place kmem_cache_cpu structures in a NUMA aware way.include/linux/slub_def.h mm/slub.c+148 -71 reply

Reviews trailers per patch

5 of 26 patches have a Reviewed-by or Acked-by.

PatchPekka Enberg
1/26
2/26A-b
3/26A-b
4/26A-b
5/26A-b
6/26A-b
7/26
8/26
9/26
10/26
11/26
12/26
13/26
14/26
15/26
16/26
17/26
18/26
19/26
20/26
21/26
22/26
23/26
24/26
25/26
26/26

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [patch 00/26] Current slab allocator / SLUB patch queue

These contain the following groups of patches:

1. Slab allocator code consolidation and fixing of inconsistencies

This makes ZERO_SIZE_PTR generic so that it works in all slab allocators.

It adds __GFP_ZERO support to all slab allocators and cleans up the zeroing in the slabs and provides modifications to remove explicit zeroing following kmalloc_node and kmem_cache_alloc_node calls.

2. SLUB improvements

Inline some small functions to reduce code size. Some more memory optimizations using CONFIG_SLUB_DEBUG. Changes to handling of the slub_lock and an optimization of runtime determination of kmalloc slabs (replaces ilog2 patch that failed with gcc 3.3 on powerpc).

3. Slab defragmentation

This is V3 of the patchset with the one fix for the locking problem that showed up during testing.

4. Performance optimizations

These patches have a long history since the early drafts of SLUB. The problem with these patches is that they require the touching of additional cachelines (only for read) and SLUB was designed for minimal cacheline touching. In doing so we may be able to remove cacheline bouncing in particular for remote alloc/ free situations where I have had reports of issues that I was not able to confirm for lack of specificity. The tradeoffs here are not clear. Certainly the larger cacheline footprint will hurt the casual slab user somewhat but it will benefit processes that perform these local/remote alloc/free operations.

I'd appreciate if someone could evaluate these.

The complete patchset against 2.6.22-rc4-mm2 is available at

http://ftp.kernel.org/pub/linux/kernel/people/christoph/slub/2.6.22-rc4-mm2

Tested on

x86_64 SMP
x86_64 NUMA emulation
IA64 emulator
Altix 64p/128G NUMA system.
Altix 8p/6G asymmetric NUMA system.

Signature · 5 lines
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>