Some of our services are quite performance sensitive and actually NUMA-aware designed, aka numa-service. The SLOs can be easily violated when co-locate numa-services with other workloads. Thus they are granted to occupy the whole NUMA node and when such assignment applies, the workload on that node needs to be moved away fast and complete. This new cgroup v2 interface is an enhancement of cgroup v1 interface cpuset.memory_migrate by adding a new mode called "lazy". With the help of the "lazy" mode migration we solved the aforementioned problem on fast eviction. Patch 1 applies cpusets limits to tasks that using default memory policies, which makes pages inside mems_allowed are preferred when autoNUMA is enabled. This is also necessary for the “lazy” mode of cpuset.mems.migration. Patch 2&3 introduce cpuset.mems.migration, see the patches for detailed information please. Abel Wu (3): mm/mempolicy: apply cpuset limits to tasks using default policy cgroup/cpuset: introduce cpuset.mems.migration docs/admin-guide/cgroup-v2: add cpuset.mems.migration Documentation/admin-guide/cgroup-v2.rst | 36 ++++++++ kernel/cgroup/cpuset.c | 104 +++++++++++++++++++----- mm/mempolicy.c | 7 +- 3 files changed, 124 insertions(+), 23 deletions(-) -- 2.31.1