RFC Slab Movable Objects (SMO)
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v5 RFC Latest16 patches 15 repliesIn review
- v4 RFC15 patches 0 repliesSuperseded
- v3 RFC15 patches 12 repliesSuperseded
Earlier versions · 2
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v2 RFC | 14 patches | 13 replies | Superseded | |
| v1 RFC | 15 patches | 25 replies | Superseded |
Patches in v5 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/16 | slub: Add isolate() and migrate() methodsinclude/ include/ mm/ | +126 | 1 reply | |
| 2/16 | tools/vm/slabinfo: Add support for -C and -M optionstools/ | +36 | 0 replies | |
| 3/16 | slub: Sort slab cache listmm/ mm/ | +7 | 1 reply | |
| 4/16 | slub: Slab defrag coreDocumentation/ include/ include/ +1 more | +334 | 3 replies | |
| 5/16 | tools/vm/slabinfo: Add remote node defrag ratio outputtools/ | +7 | 0 replies | |
| 6/16 | tools/vm/slabinfo: Add defrag_used_ratio outputtools/ | +4 | 0 replies | |
| 7/16 | tools/testing/slab: Add object migration test moduletools/ tools/ | +576 | 0 replies | |
| 8/16 | tools/testing/slab: Add object migration test suitetools/ tools/ | +452 | 0 replies | |
| 9/16 | lib: Separate radix_tree_node and xa_node slab cacheinclude/ init/ lib/ +1 more | +45 | 0 replies | |
| 10/16 | xarray: Implement migration function for xa_node objectslib/ | +61 | 0 replies | |
| 11/16 | tools/testing/slab: Add XArray movable objects teststools/ tools/ | +212 | 0 replies | |
| 12/16 | slub: Enable moving objects to/from specific nodesmm/ mm/ | +256 | 0 replies | |
| 13/16 | slub: Enable balancing slabs across nodesmm/ | +120 | 2 replies | |
| 14/16 | dcache: Provide a dentry constructorfs/ | +21 | 0 replies | |
| 15/16 | dcache: Implement partial shrink via Slab Movable Objectsfs/ | +76 | 0 replies | |
| 16/16 | dcache: Add CONFIG_DCACHE_SMOfs/ mm/ | +11 | 8 replies |
Reviews trailers per patch
2 of 16 patches have a Reviewed-by or Acked-by.
| Patch | Roman Gushchin |
|---|---|
| 1/16 | R-b |
| 2/16 | |
| 3/16 | R-b |
| 4/16 | |
| 5/16 | |
| 6/16 | |
| 7/16 | |
| 8/16 | |
| 9/16 | |
| 10/16 | |
| 11/16 | |
| 12/16 | |
| 13/16 | |
| 14/16 | |
| 15/16 | |
| 16/16 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [RFC PATCH v5 00/16] Slab Movable Objects (SMO)
Hi,
Another iteration of the SMO patch set, updates to this version are restricted to the XArray patches (#9 and #10 and tested with module implemented in #11).
Applies on top of Linus' tree (tag: v5.2-rc1).
This is a patch set implementing movable objects within the SLUB allocator. This is work based on Christopher Lameter's patch set:
https://lore.kernel.org/patchwork/project/lkml/list/?series=377335
The original code logic is from that set and implemented by Christopher. Clean up, refactoring, documentation, and additional features by myself. Responsibility for any bugs remaining falls solely with myself.
I am intending on sending a non-RFC version soon after this one (if XArray stuff is ok). If anyone has any objects with SMO in general please yell at me now.
Changes to this version:
Patch XArray to use a separate slab cache. Currently the radix tree and XArray use the same slab cache. Radix tree nodes can not be moved but XArray nodes can.
Matthew,
Does this fit in ok with your plans for the XArray and radix tree? I don't really like the function names used here or the init function name (xarray_slabcache_init()). If there is a better way to do this please mercilessly correct me :)
Thanks for looking at this,
Tobin.
Tobin C. Harding (16):
slub: Add isolate() and migrate() methods tools/vm/slabinfo: Add support for -C and -M options
slub: Sort slab cache list
slub: Slab defrag core
tools/vm/slabinfo: Add remote node defrag ratio output tools/vm/slabinfo: Add defrag_used_ratio output tools/testing/slab: Add object migration test module tools/testing/slab: Add object migration test suite
lib: Separate radix_tree_node and xa_node slab cache
xarray: Implement migration function for xa_node objects tools/testing/slab: Add XArray movable objects tests
slub: Enable moving objects to/from specific nodes
slub: Enable balancing slabs across nodes
dcache: Provide a dentry constructor
dcache: Implement partial shrink via Slab Movable Objects
dcache: Add CONFIG_DCACHE_SMO
Documentation/ABI/testing/sysfs-kernel-slab | 14 + fs/dcache.c | 110 ++- include/linux/slab.h | 71 ++ include/linux/slub_def.h | 10 + include/linux/xarray.h | 3 + init/main.c | 2 + lib/radix-tree.c | 2 +- lib/xarray.c | 109 ++- mm/Kconfig | 14 + mm/slab_common.c | 2 +- mm/slub.c | 819 ++++++++++++++++++-- tools/testing/slab/Makefile | 10 + tools/testing/slab/slub_defrag.c | 567 ++++++++++++++ tools/testing/slab/slub_defrag.py | 451 +++++++++++ tools/testing/slab/slub_defrag_xarray.c | 211 +++++ tools/vm/slabinfo.c | 51 +- 16 files changed, 2343 insertions(+), 103 deletions(-) create mode 100644 tools/testing/slab/Makefile create mode 100644 tools/testing/slab/slub_defrag.c create mode 100755 tools/testing/slab/slub_defrag.py create mode 100644 tools/testing/slab/slub_defrag_xarray.c
Signature · 1 line
2.21.0