Skip to content

RFC Xarray object migration V1

Christoph Lameter linux-mm 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest7 of 8 patches 16 repliesIn review

7 of 8 patches are in this archive. The cover letter announces 8.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
2/8slub: Add defrag_ratio field and sysfs supportDocumentation/ABI/testing/sysfs-kernel-slab include/linux/slub_def.h mm/slub.c+42 -02 replies
3/8slub: Add isolate() and migrate() methodsinclude/linux/slab.h include/linux/slub_def.h mm/slab_common.c +1 more+99 -24 replies
4/8slub: Sort slab cache list and establish maximum objects for defrag slabsmm/slab_common.c mm/slub.c+27 -10 replies
5/8slub: Slab defrag coremm/slub.c+264 -750 replies
6/8slub: Extend slabinfo to support -D and -F optionstools/vm/slabinfo.c+43 -50 replies
7/8xarray: Implement migration function for objectsinclude/linux/xarray.h lib/radix-tree.c lib/xarray.c+63 -00 replies
8/8Add debugging outputlib/xarray.c mm/slub.c+28 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC 0/8] Xarray object migration V1

This is a patchset on top of Matthew Wilcox Xarray code and implements object migration of xarray nodes. The migration is integrated into the defragmetation and shrinking logic of the slab allocator.

Defragmentation will ensure that all xarray slab pages have less objects available than specified by the slab defrag ratio.

Slab shrinking will create a slab cache with optimal object density. Only one slab page will have available objects per node.

To test apply this patchset on top of Matthew Wilcox Xarray code from Dec 11th (See infradead github).

Then go to

/sys/kernel/slab/radix_tree

Inspect the number of partial slab pages

cat partial

And then perform a cache shrink operation

echo 1 >shrink

This is just a barebones approach using a special mode of the slab migration patchset that does not require refcounts.

If this is acceptable then additional functionality can be added:

1. Migration of objects to a specific node

2. Dispersion of objects across all nodes (MPOL_INTERLEAVE)

3. Subsystems can request to move an object to a specific node.

4. Tying into the page migration and page defragmentation logic so that so far unmovable pages that are in the way of creating a contiguous block of memory will become movable.

This is only possible for xarray for now but it would be worthwhile to extend this to dentries and inodes.

--
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>