mirror of https://lore.kernel.org/lkml/
 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, 27 Aug 2018 13:50:18 -0400	[thread overview]
Message-ID: <0daf1f43-2292-0281-3ab8-aef20d0475dc@redhat.com> (raw)
In-Reply-To: <20180827164004.GE3978217@devbig004.ftw2.facebook.com>

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




  reply	other threads:[~2018-08-27 17:50 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 [this message]
2018-09-06 21:20       ` Waiman Long
2018-09-24 15:47         ` Waiman Long
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=0daf1f43-2292-0281-3ab8-aef20d0475dc@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

all inboxes | Powered by JetHome®