Current slab allocator / SLUB patch queue
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest26 patches 46 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/26 | SLUB Debug: Fix initial object debug state of NUMA bootstrap objectsmm/ | +2 | 0 replies | |
| 2/26 | Slab allocators: Consolidate code for krealloc in mm/util.cmm/ mm/ mm/ +1 more | +34 | 1 reply | |
| 3/26 | Slab allocators: Consistent ZERO_SIZE_PTR support and NULL result semanticsinclude/ include/ include/ +4 more | +58 | 1 reply | |
| 4/26 | Slab allocators: Support __GFP_ZERO in all allocators.mm/ mm/ mm/ | +24 | 3 replies | |
| 5/26 | Slab allocators: Cleanup zeroing allocationsinclude/ include/ include/ +4 more | +24 | 8 replies | |
| 6/26 | Slab allocators: Replace explicit zeroing with __GFP_ZEROblock/ block/ block/ +9 more | +30 | 2 replies | |
| 7/26 | SLUB: Add some more inlines and #ifdef CONFIG_SLUB_DEBUGinclude/ mm/ | +11 | 0 replies | |
| 8/26 | SLUB: Extract dma_kmalloc_cache from get_cache.mm/ | +36 | 0 replies | |
| 9/26 | SLUB: Do proper locking during dma slab creationmm/ | +9 | 0 replies | |
| 10/26 | SLUB: Faster more efficient slab determination for __kmalloc.mm/ | +64 | 6 replies | |
| 11/26 | SLUB: Add support for kmem_cache_opsinclude/ include/ mm/ +2 more | +44 | 2 replies | |
| 12/26 | SLUB: Slab defragmentation coreinclude/ mm/ mm/ +1 more | +322 | 6 replies | |
| 13/26 | SLUB: Extend slabinfo to support -D and -C optionsDocumentation/ | +36 | 0 replies | |
| 14/26 | SLUB: Logic to trigger slab defragmentation from memory reclaimDocumentation/ fs/ include/ +3 more | +65 | 0 replies | |
| 15/26 | Slab defrag: Support generic defragmentation for inode slab cachesfs/ include/ | +105 | 5 replies | |
| 16/26 | Slab defragmentation: Support defragmentation for extX filesystem inodesfs/ fs/ fs/ | +40 | 0 replies | |
| 17/26 | Slab defragmentation: Support inode defragmentation for xfsfs/ fs/ fs/ +1 more | +19 | 0 replies | |
| 18/26 | Slab defragmentation: Support procfs inode defragmentationfs/ | +13 | 0 replies | |
| 19/26 | Slab defragmentation: Support reiserfs inode defragmentationfs/ | +13 | 0 replies | |
| 20/26 | Slab defragmentation: Support inode defragmentation for socketsnet/ | +12 | 0 replies | |
| 21/26 | Slab defragmentation: support dentry defragmentationfs/ include/ | +109 | 2 replies | |
| 22/26 | SLUB: kmem_cache_vacate to support page allocator memory defragmentationinclude/ mm/ mm/ +1 more | +119 | 0 replies | |
| 23/26 | SLUB: Move sysfs operations outside of slub_lockmm/ | +21 | 0 replies | |
| 24/26 | SLUB: Avoid page struct cacheline bouncing due to remote frees to cpu slabinclude/ mm/ | +97 | 0 replies | |
| 25/26 | SLUB: Add an object counter to the kmem_cache_cpu structureinclude/ mm/ | +38 | 0 replies | |
| 26/26 | SLUB: Place kmem_cache_cpu structures in a NUMA aware way.include/ mm/ | +148 | 1 reply |
Reviews trailers per patch
5 of 26 patches have a Reviewed-by or Acked-by.
| Patch | Pekka Enberg |
|---|---|
| 1/26 | |
| 2/26 | A-b |
| 3/26 | A-b |
| 4/26 | A-b |
| 5/26 | A-b |
| 6/26 | A-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.
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 SMPx86_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>