cgroup/cpuset: Avoid memory migration when nodemasks match
authorNicolas Saenz Julienne <nsaenzju@redhat.com>
Wed, 25 Aug 2021 10:54:15 +0000 (12:54 +0200)
committerTejun Heo <tj@kernel.org>
Wed, 25 Aug 2021 16:51:51 +0000 (06:51 -1000)
commit9f72daf7edfa8f7e86ce8940d52266b5e931dcb0
tree49bc69fcaf77100c04c256ddbece2120b87a6c2f
parentee9707e8593dfb9a375cf4793c3fd03d4142b463
cgroup/cpuset: Avoid memory migration when nodemasks match

With the introduction of ee9707e8593d ("cgroup/cpuset: Enable memory
migration for cpuset v2") attaching a process to a different cgroup will
trigger a memory migration regardless of whether it's really needed.
Memory migration is an expensive operation, so bypass it if the
nodemasks passed to cpuset_migrate_mm() are equal.

Note that we're not only avoiding the migration work itself, but also a
call to lru_cache_disable(), which triggers and flushes an LRU drain
work on every online CPU.

Signed-off-by: Nicolas Saenz Julienne <nsaenzju@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup/cpuset.c