linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Waiman Long <longman@redhat.com>
To: Tejun Heo <tj@kernel.org>
Cc: Li Zefan <lizefan@huawei.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	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>
Subject: Re: [PATCH v12 9/9] cpuset: Support forced turning off of partition flag
Date: Mon, 24 Sep 2018 11:47:11 -0400	[thread overview]
Message-ID: <be374350-df64-5685-2802-629d43b0b284@redhat.com> (raw)
In-Reply-To: <7a57412b-ccdd-be20-529b-89f0737ce41d@redhat.com>

On 09/06/2018 05:20 PM, Waiman Long wrote:
> On 08/27/2018 01:50 PM, Waiman Long wrote:
>> On 08/27/2018 12:40 PM, Tejun Heo wrote:
>>> Hello, Waiman.
>>>
>>> On Mon, Aug 27, 2018 at 10:41:24AM -0400, Waiman Long wrote:
>>>> Cpuset allows arbitrary modification of cpu list in "cpuset.cpus"
>>>> even if the requested CPUs won't be granted in "cpuset.cpus.effective"
>>>> as restricted by its parent. However, the validate_change() function
>>>> will inhibit removal of CPUs that have been used in child cpusets.
>>>>
>>>> Being a partition root, however, limits the kind of cpu list
>>>> modification that is allowed. Adding CPUs is not allowed if the new
>>>> CPUs are not in the parent's effective cpu list that can be put into
>>>> "cpuset.cpus.reserved". In addition, a child partition cannot exhaust
>>>> all the parent's effective CPUs.
>>>>
>>>> Because of the implicit cpu exclusive nature of the partition root,
>>>> cpu changes that break that cpu exclusivity will not be allowed. Other
>>>> changes that break the conditions of being a partition root is generally
>>>> allowed. However, the partition flag of the cpuset as well those of
>>>> the descendant partitions will be forcefully turned off.
>>> First of all, thanks a lot for your persistence.  I'm not necessarily
>>> against the flag being forced off but wonder whether the same
>>> config/effective approach can be used as in .cpus and .mems.  Can you
>>> elaborate a bit on the choice here?
>>>
>>> Thank you.
>> My current code has explicitly assumed the following relationship for
>> partition root.
>>
>>     cpus_allowed = effective_cpus + reserved_cpus
>>
>> Also effective_cpus cannot be empty. Specifically, cpus_allowed has to
>> be equal to effective_cpus before a cpuset can be made a partition root.
>>
>> Any changes that break the above conditions will turn off the partition
>> flag forcefully. The only exception is cpu offlining where cpus_allowed
>>> effective_cpus + reserved_cpus can happen.
>> One reason for doing so is because reserved_cpus is hidden. So the main
>> way to infer that is to do cpus_allowed - effective_cpus.
>>
>> It is probably doable to make cpus_allowed >= effective_cpus +
>> reserved_cpus in general, but we may need to expose reserved_cpus as a
>> read-only file, for instance. There may also be other complications that
>> we will need to take care of if this is supported. My current preference
>> is to not doing that unless there is compelling reason to do so.
>>
>> Cheers,
>> Longman
> For the current patch, one of conditions to allow users to turn on the
> partition flag is cpus_allowed = effective_cpus. Once the partition flag
> is on, the twos have to be the same too except with cpu offlining. This
> patch is added to allow arbitrary modification to the cpuset.cpus file
> except those that have already been forbidden in the existing code. When
> the modification violates the rules of being a partition root, the flag
> will be turned off or we will have to deny the modification request.
>
> I am admitting that it is an easy way out in term of programming effort
> as I am not sure how much effort is needed to enable arbitrary
> modification to cpuset.cpus without force disabling and whether such an
> effort is even worthwhile to do.
>
> We can certainly relax the current restrictions in the future.  Any
> suggestion to improve the patchset is welcome. I would really like to
> see this merged in 4.20 (or maybe 5.0) kernel.
>
> Cheers,
> Longman
>
Tejun,

Sorry for bothering you again.

I would like to know your assessment of this patchset as to whether it
is ready or not.

Thanks,
Longman


  reply	other threads:[~2018-09-24 15:47 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-27 14:41 [PATCH v12 0/9] cpuset: Enable cpuset controller in default hierarchy Waiman Long
2018-08-27 14:41 ` [PATCH v12 1/9] " Waiman Long
2018-08-27 14:41 ` [PATCH v12 2/9] cpuset: Add new v2 cpuset.sched.partition flag Waiman Long
2018-08-27 14:41 ` [PATCH v12 3/9] cpuset: Simulate auto-off of sched.partition at cgroup removal Waiman Long
2018-08-27 14:41 ` [PATCH v12 4/9] cpuset: Allow changes to cpus in a partition root Waiman Long
2018-08-27 14:41 ` [PATCH v12 5/9] cpuset: Make sure that partition flag work properly with CPU hotplug Waiman Long
2018-08-27 14:41 ` [PATCH v12 6/9] cpuset: Make generate_sched_domains() recognize reserved_cpus Waiman Long
2018-08-27 14:41 ` [PATCH v12 7/9] cpuset: Expose cpus.effective and mems.effective on cgroup v2 root Waiman Long
2018-08-27 14:41 ` [PATCH v12 8/9] cpuset: Don't rebuild sched domains if cpu changes in non-partition root Waiman Long
2018-08-27 14:41 ` [PATCH v12 9/9] cpuset: Support forced turning off of partition flag Waiman Long
2018-08-27 16:40   ` Tejun Heo
2018-08-27 17:50     ` Waiman Long
2018-09-06 21:20       ` Waiman Long
2018-09-24 15:47         ` Waiman Long [this message]
2018-10-02 20:06       ` Tejun Heo
2018-10-02 20:44         ` 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=be374350-df64-5685-2802-629d43b0b284@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: 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;
as well as URLs for NNTP newsgroup(s).