On Wed, 21 Oct 2020 at 17:08, Mel Gorman <mgorman@xxxxxxx> wrote: > > On Wed, Oct 21, 2020 at 03:24:48PM +0200, Julia Lawall wrote: > > > I worry it's overkill because prev is always used if it is idle even > > > if it is on a node remote to the waker. It cuts off the option of a > > > wakee moving to a CPU local to the waker which is not equivalent to the > > > original behaviour. > > > > But it is equal to the original behavior in the idle prev case if you go > > back to the runnable load average days... > > > > It is similar but it misses the sync treatment and sd->imbalance_pct part of > wake_affine_weight which has unpredictable consequences. The data > available is only on the fully utilised case. In fact It's the same because runnable_load_avg was null when cpu is idle, so if prev_cpu was idle, we were selecting prev_idle > > > The problem seems impossible to solve, because there is no way to know by > > looking only at prev and this whether the thread would prefer to stay > > where it was or go to the waker. > > > > Yes, this is definitely true. Looking at prev_cpu and this_cpu is a > crude approximation and the path is heavily limited in terms of how > clever it can be. > > -- > Mel Gorman > SUSE Labs