twx-linux/kernel/cgroup
Waiman Long 7fd4da9c15 cgroup/cpuset: Optimize cpuset_attach() on v2
It was found that with the default hierarchy, enabling cpuset in the
child cgroups can trigger a cpuset_attach() call in each of the child
cgroups that have tasks with no change in effective cpus and mems. If
there are many processes in those child cgroups, it will burn quite a
lot of cpu cycles iterating all the tasks without doing useful work.

Optimizing this case by comparing between the old and new cpusets and
skip useless update if there is no change in effective cpus and mems.
Also mems_allowed are less likely to be changed than cpus_allowed. So
skip changing mm if there is no change in effective_mems and
CS_MEMORY_MIGRATE is not set.

By inserting some instrumentation code and running a simple command in
a container 200 times in a cgroup v2 system, it was found that all the
cpuset_attach() calls are skipped (401 times in total) as there was no
change in effective cpus and mems.

Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2022-11-14 11:45:56 -10:00
..
cgroup-internal.h cgroup: Use cgroup_attach_{lock,unlock}() from cgroup_attach_task_all() 2022-08-26 11:14:34 -10:00
cgroup-v1.c cgroup: Use cgroup_attach_{lock,unlock}() from cgroup_attach_task_all() 2022-08-26 11:14:34 -10:00
cgroup.c cgroup: cgroup refcnt functions should be exported when CONFIG_DEBUG_CGROUP_REF 2022-10-31 07:12:13 -10:00
cpuset.c cgroup/cpuset: Optimize cpuset_attach() on v2 2022-11-14 11:45:56 -10:00
debug.c
freezer.c cgroup: cleanup comments 2022-03-13 19:19:27 -10:00
legacy_freezer.c freezer,sched: Rewrite core freezer logic 2022-09-07 21:53:50 +02:00
Makefile cgroup: Add misc cgroup controller 2021-04-04 13:34:46 -04:00
misc.c misc_cgroup: remove error log to avoid log flood 2021-09-20 07:35:38 -10:00
namespace.c memcg: enable accounting for new namesapces and struct nsproxy 2021-09-03 09:58:12 -07:00
pids.c cgroup: add pids.peak interface for pids controller 2022-09-04 09:26:51 -10:00
rdma.c cgroup: fix spelling mistakes 2021-05-24 12:45:26 -04:00
rstat.c cgroup: bpf: enable bpf programs to integrate with rstat 2022-08-25 11:35:37 -07:00