Re: [PATCH v2] cgroup/cpuset: Enable memory migration for cpuset v2

From: Johannes Weiner
Date: Thu Aug 12 2021 - 09:08:57 EST


On Wed, Aug 11, 2021 at 03:57:07PM -0400, Waiman Long wrote:
> When a user changes cpuset.cpus, each task in a v2 cpuset will be moved
> to one of the new cpus if it is not there already. For memory, however,
> they won't be migrated to the new nodes when cpuset.mems changes. This is
> an inconsistency in behavior.
>
> In cpuset v1, there is a memory_migrate control file to enable such
> behavior by setting the CS_MEMORY_MIGRATE flag. Make it the default
> for cpuset v2 so that we have a consistent set of behavior for both
> cpus and memory.
>
> There is certainly a cost to make memory migration the default, but it
> is a one time cost that shouldn't really matter as long as cpuset.mems
> isn't changed frequenty. Update the cgroup-v2.rst file to document the
> new behavior and recommend against changing cpuset.mems frequently.
>
> Since there won't be any concurrent access to the newly allocated cpuset
> structure in cpuset_css_alloc(), we can use the cheaper non-atomic
> __set_bit() instead of the more expensive atomic set_bit().
>
> Signed-off-by: Waiman Long <longman@xxxxxxxxxx>

LGTM.

Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>