From: Waiman Long <longman@redhat.com>
To: Tejun Heo <tj@kernel.org>
Cc: "Michal Koutný" <mkoutny@suse.com>,
"Zefan Li" <lizefan.x@bytedance.com>,
"Johannes Weiner" <hannes@cmpxchg.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Shuah Khan" <shuah@kernel.org>,
cgroups@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org,
"Andrew Morton" <akpm@linux-foundation.org>,
"Roman Gushchin" <guro@fb.com>, "Phil Auld" <pauld@redhat.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Juri Lelli" <juri.lelli@redhat.com>,
"Frederic Weisbecker" <frederic@kernel.org>,
"Marcelo Tosatti" <mtosatti@redhat.com>
Subject: Re: [PATCH v8 5/6] cgroup/cpuset: Update description of cpuset.cpus.partition in cgroup-v2.rst
Date: Wed, 1 Dec 2021 09:26:43 -0500 [thread overview]
Message-ID: <0bdfb7f2-61ee-7b2a-fdb2-3c41f6d6ade0@redhat.com> (raw)
In-Reply-To: <2347fe66-dc68-6d58-e63b-7ed2b8077b48@redhat.com>
On 11/30/21 22:56, Waiman Long wrote:
> On 11/30/21 12:11, Tejun Heo wrote:
>
>
>>> Once becoming a partition root, the following two rules restrict
>>> what changes can be made to "cpuset.cpus".
>>>
>>> 1) The value must be exclusive.
>>> 2) If child cpusets exist, the value must be a superset of what
>>> are defined in the child cpusets.
>>>
>>> The second rule applies even for "member". Other changes to
>>> "cpuset.cpus" that do not violate the above rules are always
>>> allowed.
>> While it isn't necessarily tied to this series, it's a big no-no to
>> restrict
>> what a parent can do depending on what its descendants are doing. A
>> cgroup
>> higher up in the hierarchy should be able to change configuration
>> however it
>> sees fit as deligation breaks down otherwise.
>>
>> Maybe you can argue that cpuset is special and shouldn't be subject
>> to such
>> convention but I can't see strong enough justifications especially given
>> that most of these restrictions can be broken by hotplug operations
>> anyway
>> and thus need code to handle those situations.
>
> These are all pre-existing restrictions before the introduction of
> partition. These are checks done in validate_change(). I am just
> saying out loud the existing behavior. If you think that needs to be
> changed, I am fine with that. However, it will be a separate patch as
> it is not a behavior that is introduced by this series.
Of the 2 restrictions listed above, the exclusivity rule is due to the
use of CS_CPU_EXCLUSIVE flag. I think it is reasonable as it affects
only siblings, not the parent.
The second restriction was found during my testing. It is caused by the
following code in validate_change():
/* Each of our child cpusets must be a subset of us */
ret = -EBUSY;
cpuset_for_each_child(c, css, cur)
if (!is_cpuset_subset(c, trial))
goto out;
It seems that this code was there since v2.6.12 (the beginning of the
git era). Later in function, we have
/* On legacy hierarchy, we must be a subset of our parent
cpuset. */
ret = -EACCES;
if (!is_in_v2_mode() && !is_cpuset_subset(trial, par))
goto out;
This is actually a duplicate in the case of legacy hierarchy.
I can add a patch to take out the first code block above which I think
is where most of your objections are. Then I can remove the 2nd
restriction in my documentation. I would like to emphasize that this is
a pre-existing behavior which I just happen to document.
Cheers,
Longman
next prev parent reply other threads:[~2021-12-01 14:28 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-18 14:36 [PATCH v8 0/6] cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus Waiman Long
2021-10-18 14:36 ` [PATCH v8 1/6] cgroup/cpuset: Allow no-task partition to have empty cpuset.cpus.effective Waiman Long
2021-10-18 14:36 ` [PATCH v8 2/6] cgroup/cpuset: Refining features and constraints of a partition Waiman Long
2021-10-18 14:36 ` [PATCH v8 3/6] cgroup/cpuset: Add a new isolated cpus.partition type Waiman Long
2021-10-18 14:36 ` [PATCH v8 4/6] cgroup/cpuset: Show invalid partition reason string Waiman Long
2021-10-18 14:36 ` [PATCH v8 5/6] cgroup/cpuset: Update description of cpuset.cpus.partition in cgroup-v2.rst Waiman Long
2021-11-15 19:31 ` Michal Koutný
2021-11-15 20:11 ` Tejun Heo
2021-11-15 21:27 ` Waiman Long
2021-11-15 21:10 ` Waiman Long
2021-11-16 17:54 ` Michal Koutný
2021-11-30 15:35 ` Waiman Long
2021-11-30 17:11 ` Tejun Heo
2021-12-01 3:56 ` Waiman Long
2021-12-01 14:13 ` Michal Koutný
2021-12-01 14:56 ` Waiman Long
2021-12-01 16:39 ` Tejun Heo
2021-12-01 17:49 ` Waiman Long
2021-12-01 14:26 ` Waiman Long [this message]
2021-12-01 16:46 ` Tejun Heo
2021-12-01 18:05 ` Waiman Long
2021-12-02 1:28 ` Waiman Long
2021-12-03 18:25 ` Michal Koutný
2021-12-03 19:27 ` Waiman Long
2021-10-18 14:36 ` [PATCH v8 6/6] kselftest/cgroup: Add cpuset v2 partition root state test Waiman Long
2021-10-27 23:05 ` [PATCH v8 0/6] cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus Waiman Long
2021-11-10 11:13 ` Felix Moessbauer
2021-11-10 13:21 ` Marcelo Tosatti
2021-11-10 13:56 ` Michal Koutný
2021-11-10 15:21 ` Moessbauer, Felix
2021-11-10 16:10 ` Marcelo Tosatti
2021-11-10 16:14 ` Marcelo Tosatti
2021-11-10 16:15 ` Jan Kiszka
2021-11-10 17:29 ` Marcelo Tosatti
2021-11-10 18:30 ` Waiman Long
2021-11-10 17:52 ` Michal Koutný
2021-11-10 18:04 ` Jan Kiszka
2021-11-10 18:15 ` Michal Koutný
2021-11-10 15:20 ` Waiman Long
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=0bdfb7f2-61ee-7b2a-fdb2-3c41f6d6ade0@redhat.com \
--to=longman@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=corbet@lwn.net \
--cc=frederic@kernel.org \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=juri.lelli@redhat.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=lizefan.x@bytedance.com \
--cc=mkoutny@suse.com \
--cc=mtosatti@redhat.com \
--cc=pauld@redhat.com \
--cc=peterz@infradead.org \
--cc=shuah@kernel.org \
--cc=tj@kernel.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox