Re: [PATCH v3 9/9] sched/topology: Define and use shortcut pointers for wakeup sd_flag scan
From: Valentin Schneider
Date: Thu Apr 16 2020 - 16:55:00 EST
On 16/04/20 16:58, Vincent Guittot wrote:
>> ---
>> if (wake_flags & WF_TTWU) {
>> if (want_affine) {
>> // We can cache that at topology buildup
>> sd = highest_flag_domain(cpu, SD_WAKE_AFFINE);
>>
>> if (cpumask_test_cpu(prev_cpu, sched_domain_span(sd) &&
>> cpu != prev_cpu)
>> new_cpu = wake_affine();
>>
>> }
>> // Directly go to select_idle_sibling()
>> goto sis;
>> }
>>
>> // !want_affine logic here
>> ---
>>
>> This in turns mean we could get rid of SD_BALANCE_WAKE entirely... I'm a
>> bit more reluctant to that only because the last SD_BALANCE_WAKE setter was
>
> For now, we should probably skip the additional test above: "if
> (wake_flags & WF_TTWU) {" and keep SD_BALANCE_WAKE so we will continue
> to loop in case of !want_affine.
>
> We can imagine that we might want at the end to be a bit more smart
> for SD_BALANCE_WAKE and the slow path... like with the latency nice
> proposal and latency-nice=19 as a example
>
Good point. I'll go for the first option and see where I end up; I'd like
to cache the other domain pointers if possible, I'll do some benchmarking
and see if I can do that without another switch case.
>> removed fairly recently, see
>> a526d466798d ("sched/topology: Remove SD_BALANCE_WAKE on asymmetric capacity systems")