Messages in this thread | | | From | Vincent Guittot <> | Date | Mon, 26 Aug 2019 17:45:53 +0200 | Subject | Re: [PATCH v2 6/8] sched/fair: use load instead of runnable load |
| |
On Tue, 6 Aug 2019 at 18:07, Peter Zijlstra <peterz@infradead.org> wrote: > > On Thu, Aug 01, 2019 at 04:40:22PM +0200, Vincent Guittot wrote: > > runnable load has been introduced to take into account the case > > where blocked load biases the load balance decision which was selecting > > underutilized group with huge blocked load whereas other groups were > > overloaded. > > > > The load is now only used when groups are overloaded. In this case, > > it's worth being conservative and taking into account the sleeping > > tasks that might wakeup on the cpu. > > This one scares me a little. I have the feeling I'm missing/forgetting > something. > > Also; while the regular load-balance (find-busiest) stuff is now all > aware of idle, this change also impacts wake_affine and find_idlest, and > they've not changed.
Yes. I thought about this a bit before applying this changes to all cpu_runnable_load. -For wake_affine, it starts by looking at an idle cpu with wake_affine_idle which is similar in some way to the new load balance approach even if it might need more changes to align more closely both paths. -For find_idlest, it looks at the group with most spare capacity in priority and fall back to load. That being said I have overlooked that both load and runnable load are already used and cpu.load is saved twice instead of one.
I can't remember detailed results but this patch is responsible of part of perf improvements described in the cover letter
Also, I haven't touch the numa stats which still use runnable_load. But this should be addressed too
| |