Messages in this thread | | | From | Valentin Schneider <> | Subject | Re: [PATCH v3 2/7] sched/topology: Define and assign sched_domain flag metadata | Date | Thu, 02 Jul 2020 17:49:38 +0100 |
| |
On 02/07/20 17:37, Quentin Perret wrote: > On Thursday 02 Jul 2020 at 17:25:41 (+0100), Valentin Schneider wrote: >> It's actually pretty close to what happens with the LLC domain on SMP - >> select_idle_sibling() doesn't look outside of it. The wake_affine() stuff >> might steer the task towards a different LLC, but that's about it for >> wakeups. We rely on load balancing (fork/exec, newidle, nohz and periodic) >> to spread this further - and we would here too. > > Sure, but on SMP the search space in select_idle_sibling is always > consistent -- you search within the LLC. With the fix you suggested, > CPUs 0-3 will search within their LLCs, while CPU4 searches the entire > system, which creates an imbalanced mess IMO. >
Yeah, it is a mess.
> For affine wake-ups, you could migrate from CPU4 -> CPU0-3, but CPU0-3 > to CPU4 is not possible
AIU the wake_affine bits, you get to steer the wakeup towards the waking CPU. So if the task previously ran on CPU0-3, wake_affine can make the target CPU4 (waking CPU), so it would become a possible candidate.
But as you say, this thing is still an ugly asymmetric mess.
> so this asymmetry is almost guaranteed to > actively create imbalance. And sure, the periodic load balancer ought to > fix it, but really wake-up balance and periodic load balance should be > pushing in the same direction and not fighting against each other. > > Anyways, enough bikeshedding for today, I'll try and have look at the > rest of the series :) >
Thanks!
> Cheers, > Quentin
| |