Re: [PATCH] sched/topology: Don't set SD_BALANCE_WAKE on cpuset domain relax
From: Peter Zijlstra
Date: Tue Oct 15 2019 - 07:34:28 EST
On Mon, Oct 14, 2019 at 05:44:08PM +0100, Valentin Schneider wrote:
> As pointed out in commit
>
> 182a85f8a119 ("sched: Disable wakeup balancing")
>
> SD_BALANCE_WAKE is a tad too aggressive, and is usually left unset.
>
> However, it turns out cpuset domain relaxation will unconditionally set it
> on domains below the relaxation level. This made sense back when
> SD_BALANCE_WAKE was set unconditionally, but it no longer is the case.
>
> We can improve things slightly by noticing that set_domain_attribute() is
> always called after sd_init(), so rather than setting flags we can rely on
> whatever sd_init() is doing and only clear certain flags when above the
> relaxation level.
>
> While at it, slightly clean up the function and flip the relax level
> check to be more human readable.
>
> Signed-off-by: Valentin Schneider <valentin.schneider@xxxxxxx>
> ---
> I was tempted to put a
>
> Fixes: 182a85f8a119 ("sched: Disable wakeup balancing")
>
> but the SD setup code back then was a mess of SD_INIT() macros which I'm
> not familiar with. It *looks* like the sequence was roughly the same as it
> is now (i.e. set up domain flags, *then* call set_domain_attribute()) but
> I'm not completely sure.
This 'relax' thing is on my list of regrets. It is a terrible thing that
should never have existed.
Are you actually using it or did you just stumble upon it while looking
around there?