Slab Defrag / Slab Targeted Reclaim
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest3 patches 0 repliesNew
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/3 | SLUB: add support for kmem_cache_opsinclude/ include/ mm/ +2 more | +44 | 0 replies | |
| 2/3 | SLUB: Implement targeted reclaim and partial list defragmentationinclude/ mm/ mm/ +1 more | +346 | 0 replies | |
| 3/3 | Support removal of unused dentry entries via SLUB defrag interfacefs/ | +81 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [patch 0/3] Slab Defrag / Slab Targeted Reclaim
Initial support for Slab defragmentation and targeted reclaim. The functionality here is minimal. We establish a slab API to allow removal or moving of objects between slabs.
The only user provided here is a dentry cache reclaim capability. This is limited to the removal of unused dentries for now. It is planned to later add a similar inode reclaim capability and then extend the move/reclaim to support moving of dentries and inodes.
Slab defragmentation is performed during kmem_cache_shrink. This is usually triggered through the slab shrinkers but can also be manually triggered through the slabinfo command.
Support is provided for antifrag/defrag to evict a specific slab page through the kmem_cache_vacate function call. Since we can only reclaim unused dentries for now that functionality is pretty limited (we need to put some work into making dentries and inode more reclaimable or movable) but we can increase the capabilities over time which will allow us to move slabs from the reclaimable area into the movable area. This will shrink the reclaimable area significantly. Since we can target the vacating of pages this may allow the antifrag code to remove a page that hinders the freeing of higher order page.