Re: [RFC 0/2] Optimize the idle CPU search

From: Subhra Mazumdar
Date: Tue Jul 09 2019 - 02:48:46 EST



On 7/8/19 1:38 PM, Peter Zijlstra wrote:
On Mon, Jul 08, 2019 at 10:24:30AM +0530, Parth Shah wrote:
When searching for an idle_sibling, scheduler first iterates to search for
an idle core and then for an idle CPU. By maintaining the idle CPU mask
while iterating through idle cores, we can mark non-idle CPUs for which
idle CPU search would not have to iterate through again. This is especially
true in a moderately load system

Optimize idle CPUs search by marking already found non idle CPUs during
idle core search. This reduces iteration count when searching for idle
CPUs, resulting in lower iteration count.
Have you seen these patches:

https://lkml.kernel.org/r/20180530142236.667774973@xxxxxxxxxxxxx

I've meant to get back to that, but never quite had the time :/
The most relevant bit of this was folding select_idle_core and
select_idle_cpu. But it may be good to keep them separate as workloads
which just want any idle cpu can find one and break early by disabling
the idle core search. And this can still work with latency-nice which can
moderate both idle core and idle cpu search.