Re: [RFC PATCH v4] sched/fair: select idle cpu from idle cpumask for task wakeup

From: Li, Aubrey
Date: Wed Nov 18 2020 - 20:13:36 EST


On 2020/11/18 20:06, Valentin Schneider wrote:
>
> On 16/11/20 20:04, Aubrey Li wrote:
>> From: Aubrey Li <aubrey.li@xxxxxxxxx>
>>
>> Add idle cpumask to track idle cpus in sched domain. When a CPU
>> enters idle, if the idle driver indicates to stop tick, this CPU
>> is set in the idle cpumask to be a wakeup target. And if the CPU
>> is not in idle, the CPU is cleared in idle cpumask during scheduler
>> tick to ratelimit idle cpumask update.
>>
>> When a task wakes up to select an idle cpu, scanning idle cpumask
>> has low cost than scanning all the cpus in last level cache domain,
>> especially when the system is heavily loaded.
>>
>> Benchmarks were tested on a x86 4 socket system with 24 cores per
>> socket and 2 hyperthreads per core, total 192 CPUs. Hackbench and
>> schbench have no notable change, uperf has:
>>
>> uperf throughput: netperf workload, tcp_nodelay, r/w size = 90
>>
>> threads baseline-avg %std patch-avg %std
>> 96 1 0.83 1.23 3.27
>> 144 1 1.03 1.67 2.67
>> 192 1 0.69 1.81 3.59
>> 240 1 2.84 1.51 2.67
>>
>> Cc: Mel Gorman <mgorman@xxxxxxx>
>> Cc: Vincent Guittot <vincent.guittot@xxxxxxxxxx>
>> Cc: Qais Yousef <qais.yousef@xxxxxxx>
>> Cc: Valentin Schneider <valentin.schneider@xxxxxxx>
>> Cc: Jiang Biao <benbjiang@xxxxxxxxx>
>> Cc: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
>> Signed-off-by: Aubrey Li <aubrey.li@xxxxxxxxxxxxxxx>
>
> That's missing a v3 -> v4 change summary
>

okay, I'll add in the next version soon.

Thanks,
-Aubrey