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. For affine wake-ups, you could migrate from CPU4 -> CPU0-3, but CPU0-3 to CPU4 is not possible, 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 :) Cheers, Quentin

