cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus
From: | Waiman Long <longman-AT-redhat.com> | |
To: | Tejun Heo <tj-AT-kernel.org>, Zefan Li <lizefan.x-AT-bytedance.com>, Johannes Weiner <hannes-AT-cmpxchg.org>, Jonathan Corbet <corbet-AT-lwn.net>, Shuah Khan <shuah-AT-kernel.org> | |
Subject: | [PATCH v9 0/7] cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus | |
Date: | Sun, 05 Dec 2021 13:32:13 -0500 | |
Message-ID: | <20211205183220.818872-1-longman@redhat.com> | |
Cc: | cgroups-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-doc-AT-vger.kernel.org, linux-kselftest-AT-vger.kernel.org, Andrew Morton <akpm-AT-linux-foundation.org>, Roman Gushchin <guro-AT-fb.com>, Phil Auld <pauld-AT-redhat.com>, Peter Zijlstra <peterz-AT-infradead.org>, Juri Lelli <juri.lelli-AT-redhat.com>, Frederic Weisbecker <frederic-AT-kernel.org>, Marcelo Tosatti <mtosatti-AT-redhat.com>, Michal Koutný <mkoutny-AT-suse.com>, Waiman Long <longman-AT-redhat.com> | |
Archive-link: | Article |
v9: - Add a new patch 1 to remove the child cpuset restriction on parent's "cpuset.cpus". - Relax initial root partition entry limitation to allow cpuset.cpus to overlap that of parent's. - An "isolated invalid" displayed type is added to cpuset.cpus.partition. - Resetting partition root to "member" will leave child partition root as invalid. - Update documentation and test accordingly. v8: - Reorganize the patch series and rationalize the features and constraints of a partition. - Update patch descriptions and documentation accordingly. v7: - Simplify the documentation patch (patch 5) as suggested by Tejun. - Fix a typo in patch 2 and improper commit log in patch 3. This patchset includes one bug fix and four enhancements to the cpuset v2 code. Patch 1: Allow parent to set "cpuset.cpus" that may not be a superset of children's "cpuset.cpus" for default hierarchy. Patch 2: Enable partition with no task to have empty cpuset.cpus.effective. Patch 3: Refining the features and constraints of a cpuset partition clarifying what changes are allowed. Patch 4: Add a new partition state "isolated" to create a partition root without load balancing. This is for handling intermitten workloads that have a strict low latency requirement. Patch 5: Enable the "cpuset.cpus.partition" file to show the reason that causes invalid partition like "root invalid (No cpu available due to hotplug)". Patch 6 updates the cgroup-v2.rst file accordingly. Patch 7 adds a new cpuset test to test the new cpuset partition code. Waiman Long (7): cgroup/cpuset: Don't let child cpusets restrict parent in default hierarchy cgroup/cpuset: Allow no-task partition to have empty cpuset.cpus.effective cgroup/cpuset: Refining features and constraints of a partition cgroup/cpuset: Add a new isolated cpus.partition type cgroup/cpuset: Show invalid partition reason string cgroup/cpuset: Update description of cpuset.cpus.partition in cgroup-v2.rst kselftest/cgroup: Add cpuset v2 partition root state test Documentation/admin-guide/cgroup-v2.rst | 168 +++-- kernel/cgroup/cpuset.c | 440 +++++++----- tools/testing/selftests/cgroup/Makefile | 5 +- .../selftests/cgroup/test_cpuset_prs.sh | 667 ++++++++++++++++++ tools/testing/selftests/cgroup/wait_inotify.c | 87 +++ 5 files changed, 1142 insertions(+), 225 deletions(-) create mode 100755 tools/testing/selftests/cgroup/test_cpuset_prs.sh create mode 100644 tools/testing/selftests/cgroup/wait_inotify.c -- 2.27.0