Re: [PATCH v3 1/3] sched/fair: allow disabling sched_balance_newidle with sched_relax_domain_level

From: Valentin Schneider
Date: Thu Apr 04 2024 - 10:14:32 EST


On 03/04/24 16:28, Vitalii Bursov wrote:
> Change relax_domain_level checks so that it would be possible
> to include or exclude all domains from newidle balancing.
>
> This matches the behavior described in the documentation:
> -1 no request. use system default or follow request of others.
> 0 no search.
> 1 search siblings (hyperthreads in a core).
>
> "2" enables levels 0 and 1, level_max excludes the last (level_max)
> level, and level_max+1 includes all levels.
>
> Fixes: 9ae7ab20b483 ("sched/topology: Don't set SD_BALANCE_WAKE on cpuset domain relax")

Not that it matters too much, but wasn't the behaviour the same back then?
i.e.

if (request < sd->level)
sd->flags &= ~(SD_BALANCE_WAKE|SD_BALANCE_NEWIDLE);

So if relax_domain_level=0 we wouldn't clear the flags on e.g. SMT
(level=0)

AFAICT the docs & the code have always been misaligned:

4d5f35533fb9 ("sched, cpuset: customize sched domains, docs") [2008]
1d3504fcf560 ("sched, cpuset: customize sched domains, core") [2008]

History nitpicking aside, I think this makes sense, but existing users are
going to get a surprise...