From: Waiman Long <longman@redhat.com> To: Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>, Johannes Weiner <hannes@cmpxchg.org>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com> Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kernel-team@fb.com, pjt@google.com, luto@amacapital.net, Mike Galbraith <efault@gmx.de>, torvalds@linux-foundation.org, Roman Gushchin <guro@fb.com>, Juri Lelli <juri.lelli@redhat.com>, Patrick Bellasi <patrick.bellasi@arm.com>, Waiman Long <longman@redhat.com> Subject: [PATCH v9 0/7] Enable cpuset controller in default hierarchy Date: Tue, 29 May 2018 09:41:27 -0400 [thread overview] Message-ID: <1527601294-3444-1-git-send-email-longman@redhat.com> (raw) v9: - Rename cpuset.sched.domain to cpuset.sched.domain_root to better identify its purpose as the root of a new scheduling domain or partition. - Clarify in the document about the purpose of domain_root and load_balance. Using domain_root is th only way to create new partition. - Fix a lockdep warning in update_isolated_cpumask() function. - Add a new patch to eliminate call to generate_sched_domains() for v2 when a change in cpu list does not touch a domain_root. v8: - Remove cpuset.cpus.isolated and add a new cpuset.sched.domain flag and rework the code accordingly. v7: - Add a root-only cpuset.cpus.isolated control file for CPU isolation. - Enforce that load_balancing can only be turned off on cpusets with CPUs from the isolated list. - Update sched domain generation to allow cpusets with CPUs only from the isolated CPU list to be in separate root domains. v6: - Hide cpuset control knobs in root cgroup. - Rename effective_cpus and effective_mems to cpus.effective and mems.effective respectively. - Remove cpuset.flags and add cpuset.sched_load_balance instead as the behavior of sched_load_balance has changed and so is not a simple flag. - Update cgroup-v2.txt accordingly. v5: - Add patch 2 to provide the cpuset.flags control knob for the sched_load_balance flag which should be the only feature that is essential as a replacement of the "isolcpus" kernel boot parameter. v4: - Further minimize the feature set by removing the flags control knob. v3: - Further trim the additional features down to just memory_migrate. - Update Documentation/cgroup-v2.txt. v6 patch: https://lkml.org/lkml/2018/3/21/530 v7 patch: https://lkml.org/lkml/2018/4/19/448 v8 patch: https://lkml.org/lkml/2018/5/17/939 The purpose of this patchset is to provide a basic set of cpuset control files for cgroup v2. This basic set includes the non-root "cpus", "mems", "sched.load_balance" and "sched.domain_root". The "cpus.effective" and "mems.effective" will appear in all cpuset-enabled cgroups. The new control file that is unique to v2 is "sched.domain_root". It is a boolean flag file that designates if a cgroup is the root of a new scheduling domain or partition with its own set of unique list of CPUs from scheduling perspective disjointed from other partitions. The root cgroup is always a scheduling domain root. Multiple levels of scheduling domains are supported with some limitations. So a container scheduling domain root can behave like a real root. When a scheduling domain root cgroup is removed, its list of exclusive CPUs will be returned to the parent's cpus.effective automatically. The "sched.load_balance" flag can only be changed in a scheduling domain root with no child cpuset-enabled cgroups while the rests inherit its value from their parents. This ensures that all cpusets within the same partition will have the same load balancing state. The "sched.load_balance" flag can no longer be used to create additional partition as a side effect. This patchset does not exclude the possibility of adding more features in the future after careful consideration. Patch 1 enables cpuset in cgroup v2 with cpus, mems and their effective counterparts. Patch 2 adds a new "sched.domain_root" control file for setting up multiple scheduling domains or partitions. A scheduling domain root implies cpu_exclusive. Patch 3 adds a "sched.load_balance" flag to turn off load balancing in a scheduling domain or partition. Patch 4 updates the scheduling domain genaration code to work with the new scheduling domain feature. Patch 5 exposes cpus.effective and mems.effective to the root cgroup as enabling child scheduling domains will take CPUs away from the root cgroup. So it will be nice to monitor what CPUs are left there. Patch 6 eliminates the need to rebuild sched domains for v2 if cpu list changes occur to non-domain root cpusets only. Patch 7 enables the printing the debug information about scheduling domain generation. Waiman Long (7): cpuset: Enable cpuset controller in default hierarchy cpuset: Add new v2 cpuset.sched.domain_root flag cpuset: Add cpuset.sched.load_balance flag to v2 cpuset: Make generate_sched_domains() recognize isolated_cpus cpuset: Expose cpus.effective and mems.effective on cgroup v2 root cpuset: Don't rebuild sched domains if cpu changes in non-domain root cpuset: Allow reporting of sched domain generation info Documentation/cgroup-v2.txt | 144 +++++++++++++++- kernel/cgroup/cpuset.c | 396 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 518 insertions(+), 22 deletions(-) -- 1.8.3.1
WARNING: multiple messages have this Message-ID (diff)
From: Waiman Long <longman@redhat.com> To: Tejun Heo <tj@kernel.org>, Li Zefan <lizefan@huawei.com>, Johannes Weiner <hannes@cmpxchg.org>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com> Cc: cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kernel-team@fb.com, pjt@google.com, luto@amacapital.net, Mike Galbraith <efault@gmx.de>, torvalds@linux-foundation.org, Roman Gushchin <guro@fb.com>, Juri Lelli <juri.lelli@redhat.com>, Patrick Bellasi <patrick.bellasi@arm.com>, Waiman Long <longman@redhat.com> Subject: [PATCH v9 0/7] Enable cpuset controller in default hierarchy Date: Tue, 29 May 2018 09:41:27 -0400 [thread overview] Message-ID: <1527601294-3444-1-git-send-email-longman@redhat.com> (raw) v9: - Rename cpuset.sched.domain to cpuset.sched.domain_root to better identify its purpose as the root of a new scheduling domain or partition. - Clarify in the document about the purpose of domain_root and load_balance. Using domain_root is th only way to create new partition. - Fix a lockdep warning in update_isolated_cpumask() function. - Add a new patch to eliminate call to generate_sched_domains() for v2 when a change in cpu list does not touch a domain_root. v8: - Remove cpuset.cpus.isolated and add a new cpuset.sched.domain flag and rework the code accordingly. v7: - Add a root-only cpuset.cpus.isolated control file for CPU isolation. - Enforce that load_balancing can only be turned off on cpusets with CPUs from the isolated list. - Update sched domain generation to allow cpusets with CPUs only from the isolated CPU list to be in separate root domains. v6: - Hide cpuset control knobs in root cgroup. - Rename effective_cpus and effective_mems to cpus.effective and mems.effective respectively. - Remove cpuset.flags and add cpuset.sched_load_balance instead as the behavior of sched_load_balance has changed and so is not a simple flag. - Update cgroup-v2.txt accordingly. v5: - Add patch 2 to provide the cpuset.flags control knob for the sched_load_balance flag which should be the only feature that is essential as a replacement of the "isolcpus" kernel boot parameter. v4: - Further minimize the feature set by removing the flags control knob. v3: - Further trim the additional features down to just memory_migrate. - Update Documentation/cgroup-v2.txt. v6 patch: https://lkml.org/lkml/2018/3/21/530 v7 patch: https://lkml.org/lkml/2018/4/19/448 v8 patch: https://lkml.org/lkml/2018/5/17/939 The purpose of this patchset is to provide a basic set of cpuset control files for cgroup v2. This basic set includes the non-root "cpus", "mems", "sched.load_balance" and "sched.domain_root". The "cpus.effective" and "mems.effective" will appear in all cpuset-enabled cgroups. The new control file that is unique to v2 is "sched.domain_root". It is a boolean flag file that designates if a cgroup is the root of a new scheduling domain or partition with its own set of unique list of CPUs from scheduling perspective disjointed from other partitions. The root cgroup is always a scheduling domain root. Multiple levels of scheduling domains are supported with some limitations. So a container scheduling domain root can behave like a real root. When a scheduling domain root cgroup is removed, its list of exclusive CPUs will be returned to the parent's cpus.effective automatically. The "sched.load_balance" flag can only be changed in a scheduling domain root with no child cpuset-enabled cgroups while the rests inherit its value from their parents. This ensures that all cpusets within the same partition will have the same load balancing state. The "sched.load_balance" flag can no longer be used to create additional partition as a side effect. This patchset does not exclude the possibility of adding more features in the future after careful consideration. Patch 1 enables cpuset in cgroup v2 with cpus, mems and their effective counterparts. Patch 2 adds a new "sched.domain_root" control file for setting up multiple scheduling domains or partitions. A scheduling domain root implies cpu_exclusive. Patch 3 adds a "sched.load_balance" flag to turn off load balancing in a scheduling domain or partition. Patch 4 updates the scheduling domain genaration code to work with the new scheduling domain feature. Patch 5 exposes cpus.effective and mems.effective to the root cgroup as enabling child scheduling domains will take CPUs away from the root cgroup. So it will be nice to monitor what CPUs are left there. Patch 6 eliminates the need to rebuild sched domains for v2 if cpu list changes occur to non-domain root cpusets only. Patch 7 enables the printing the debug information about scheduling domain generation. Waiman Long (7): cpuset: Enable cpuset controller in default hierarchy cpuset: Add new v2 cpuset.sched.domain_root flag cpuset: Add cpuset.sched.load_balance flag to v2 cpuset: Make generate_sched_domains() recognize isolated_cpus cpuset: Expose cpus.effective and mems.effective on cgroup v2 root cpuset: Don't rebuild sched domains if cpu changes in non-domain root cpuset: Allow reporting of sched domain generation info Documentation/cgroup-v2.txt | 144 +++++++++++++++- kernel/cgroup/cpuset.c | 396 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 518 insertions(+), 22 deletions(-) -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2018-05-29 13:42 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-05-29 13:41 Waiman Long [this message] 2018-05-29 13:41 ` [PATCH v9 0/7] Enable cpuset controller in default hierarchy Waiman Long 2018-05-29 13:41 ` [PATCH v9 1/7] cpuset: " Waiman Long 2018-05-29 13:41 ` Waiman Long 2018-05-29 13:41 ` [PATCH v9 2/7] cpuset: Add new v2 cpuset.sched.domain_root flag Waiman Long 2018-05-29 13:41 ` Waiman Long 2018-05-30 14:18 ` Juri Lelli 2018-05-30 14:18 ` Juri Lelli 2018-05-30 14:57 ` Waiman Long 2018-05-30 14:57 ` Waiman Long 2018-05-31 9:49 ` Peter Zijlstra 2018-05-31 9:49 ` Peter Zijlstra 2018-05-29 13:41 ` [PATCH v9 3/7] cpuset: Add cpuset.sched.load_balance flag to v2 Waiman Long 2018-05-29 13:41 ` Waiman Long 2018-05-31 10:44 ` Peter Zijlstra 2018-05-31 10:44 ` Peter Zijlstra 2018-05-31 10:54 ` Peter Zijlstra 2018-05-31 10:54 ` Peter Zijlstra 2018-05-31 13:36 ` Waiman Long 2018-05-31 13:36 ` Waiman Long 2018-05-31 12:26 ` Peter Zijlstra 2018-05-31 12:26 ` Peter Zijlstra 2018-05-31 13:54 ` Waiman Long 2018-05-31 13:54 ` Waiman Long 2018-05-31 15:20 ` Peter Zijlstra 2018-05-31 15:20 ` Peter Zijlstra 2018-05-31 15:36 ` Waiman Long 2018-05-31 15:36 ` Waiman Long 2018-05-31 16:08 ` Peter Zijlstra 2018-05-31 16:08 ` Peter Zijlstra 2018-05-31 16:42 ` Waiman Long 2018-05-31 16:42 ` Waiman Long 2018-06-20 14:46 ` Peter Zijlstra 2018-06-20 14:46 ` Peter Zijlstra 2018-06-21 7:40 ` Waiman Long 2018-06-21 7:40 ` Waiman Long 2018-05-29 13:41 ` [PATCH v9 4/7] cpuset: Make generate_sched_domains() recognize isolated_cpus Waiman Long 2018-05-29 13:41 ` Waiman Long 2018-05-29 13:41 ` [PATCH v9 5/7] cpuset: Expose cpus.effective and mems.effective on cgroup v2 root Waiman Long 2018-05-29 13:41 ` Waiman Long 2018-05-29 13:41 ` [PATCH v9 6/7] cpuset: Don't rebuild sched domains if cpu changes in non-domain root Waiman Long 2018-05-29 13:41 ` Waiman Long 2018-05-29 13:41 ` [PATCH v9 7/7] cpuset: Allow reporting of sched domain generation info Waiman Long 2018-05-29 13:41 ` Waiman Long 2018-05-30 10:13 ` [PATCH v9 0/7] Enable cpuset controller in default hierarchy Juri Lelli 2018-05-30 10:13 ` Juri Lelli 2018-05-30 12:56 ` Waiman Long 2018-05-30 12:56 ` Waiman Long 2018-05-30 13:05 ` Juri Lelli 2018-05-30 13:05 ` Juri Lelli 2018-05-30 13:47 ` Waiman Long 2018-05-30 13:47 ` Waiman Long 2018-05-30 13:52 ` Juri Lelli 2018-05-30 13:52 ` Juri Lelli
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1527601294-3444-1-git-send-email-longman@redhat.com \ --to=longman@redhat.com \ --cc=cgroups@vger.kernel.org \ --cc=efault@gmx.de \ --cc=guro@fb.com \ --cc=hannes@cmpxchg.org \ --cc=juri.lelli@redhat.com \ --cc=kernel-team@fb.com \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lizefan@huawei.com \ --cc=luto@amacapital.net \ --cc=mingo@redhat.com \ --cc=patrick.bellasi@arm.com \ --cc=peterz@infradead.org \ --cc=pjt@google.com \ --cc=tj@kernel.org \ --cc=torvalds@linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.