linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Valentin Schneider <valentin.schneider@arm.com>
To: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: linux-kernel@vger.kernel.org, mingo@kernel.org,
	peterz@infradead.org, vincent.guittot@linaro.org
Subject: Re: [PATCH v2 3/9] sched: Remove checks against SD_LOAD_BALANCE
Date: Thu, 19 Mar 2020 12:05:32 +0000	[thread overview]
Message-ID: <jhjv9n0o8hf.mognet@arm.com> (raw)
In-Reply-To: <c74a32d9-e40c-b976-be19-9ceea91d6fa7@arm.com>


On Thu, Mar 19 2020, Dietmar Eggemann wrote:
> On 11.03.20 19:15, Valentin Schneider wrote:
>> Potential users of that flag could have been cpusets and isolcpus.
>>
>> cpusets don't need it because they define exclusive (i.e. non-overlapping)
>> domain spans, see cpuset.cpu_exclusive and cpuset.sched_load_balance.
>> If such a cpuset contains a single CPU, it will have the NULL domain
>> attached to it. If it contains several CPUs, none of their domains will
>> extend beyond the span of the cpuset.
>
> There are also non-exclusive cpusets but I assume the statement is the same.
>

Right, AFAICT the cpuset.cpu_exclusive thing doesn't actually impact the
sched_domains, only how CPUs can be allocated to cpusets. The important
bits are:

- the CPUs spanned by the cpuset
- Whether we have cpuset.sched_load_balance

> CPUs which are only used in cpusets with cpuset.sched_load_balance=0 are
> attached to the NULL sched-domain.
>

Indeed, I was only considering the case with root.sched_load_balance=0
and the siblings would have cpuset.sched_load_balance=1, in which case
we get separate root domains. If !root cpusets have
sched_load_balance=0, related CPUs will only get the NULL domain
attached to them.

> There seems to be no code which alters the SD_LOAD_BALANCE flag.
>

The sysctl interface would've been the last possible modifier.

Your comments make me realize that changelog isn't great, what about the
following?

---

The SD_LOAD_BALANCE flag is set unconditionally for all domains in
sd_init(). By making the sched_domain->flags syctl interface read-only, we
have removed the last piece of code that could clear that flag - as such,
it will now be always present. Rather than to keep carrying it along, we
can work towards getting rid of it entirely.

cpusets don't need it because they can make CPUs be attached to the NULL
domain (e.g. cpuset with sched_load_balance=0), or to a partitionned
root_domain, i.e. a sched_domain hierarchy that doesn't span the entire
system (e.g. root cpuset with sched_load_balance=0 and sibling cpusets with
sched_load_balance=1).

isolcpus apply the same "trick": isolated CPUs are explicitly taken out of
the sched_domain rebuild (using housekeeping_cpumask()), so they get the
NULL domain treatment as well.

Remove the checks against SD_LOAD_BALANCE.

  reply	other threads:[~2020-03-19 12:05 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-11 18:15 [PATCH v2 0/9] sched: Streamline select_task_rq() & select_task_rq_fair() Valentin Schneider
2020-03-11 18:15 ` [PATCH v2 1/9] sched/fair: find_idlest_group(): Remove unused sd_flag parameter Valentin Schneider
2020-03-19  9:05   ` Dietmar Eggemann
2020-03-11 18:15 ` [PATCH v2 2/9] sched/debug: Make sd->flags sysctl read-only Valentin Schneider
2020-03-19  9:07   ` Dietmar Eggemann
2020-03-19 12:04     ` Valentin Schneider
2020-03-11 18:15 ` [PATCH v2 3/9] sched: Remove checks against SD_LOAD_BALANCE Valentin Schneider
2020-03-19 10:28   ` Dietmar Eggemann
2020-03-19 12:05     ` Valentin Schneider [this message]
2020-03-23 14:26       ` Dietmar Eggemann
2020-03-23 17:17         ` Valentin Schneider
2020-03-11 18:15 ` [PATCH v2 4/9] sched/topology: Kill SD_LOAD_BALANCE Valentin Schneider
2020-03-19 10:29   ` Dietmar Eggemann
2020-03-19 12:06     ` Valentin Schneider
2020-03-11 18:15 ` [PATCH v2 5/9] sched: Add WF_TTWU, WF_EXEC wakeup flags Valentin Schneider
2020-03-11 18:15 ` [PATCH v2 6/9] sched: Kill select_task_rq()'s sd_flag parameter Valentin Schneider
2020-03-11 18:15 ` [PATCH v2 7/9] sched/fair: Dissociate wakeup decisions from SD flag value Valentin Schneider
2020-03-11 18:16 ` [PATCH v2 8/9] sched/fair: Split select_task_rq_fair want_affine logic Valentin Schneider
2020-03-19 10:30   ` Dietmar Eggemann
2020-03-19 12:06     ` Valentin Schneider
2020-03-11 18:16 ` [PATCH v2 9/9] sched/topology: Define and use shortcut pointers for wakeup sd_flag scan Valentin Schneider
2020-03-19 10:46   ` Dietmar Eggemann
2020-03-19 12:22     ` Valentin Schneider

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=jhjv9n0o8hf.mognet@arm.com \
    --to=valentin.schneider@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=vincent.guittot@linaro.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).