Re: [PATCH 2/2] sched/fair: Relax task_hot() for misfit tasks

From: Valentin Schneider
Date: Fri Apr 16 2021 - 05:43:44 EST


On 15/04/21 16:39, Rik van Riel wrote:
> On Thu, 2021-04-15 at 18:58 +0100, Valentin Schneider wrote:
>> Consider the following topology:
>>
>> Long story short, preempted misfit tasks are affected by task_hot(),
>> while
>> currently running misfit tasks are intentionally preempted by the
>> stopper
>> task to migrate them over to a higher-capacity CPU.
>>
>> Align detach_tasks() with the active-balance logic and let it pick a
>> cache-hot misfit task when the destination CPU can provide a capacity
>> uplift.
>>
>> Signed-off-by: Valentin Schneider <valentin.schneider@xxxxxxx>
>
> Reviewed-by: Rik van Riel <riel@xxxxxxxxxxx>
>

Thanks!

>
> This patch looks good, but...
>
>> @@ -7672,6 +7698,15 @@ int can_migrate_task(struct task_struct *p,
>> struct lb_env *env)
>> if (tsk_cache_hot == -1)
>> tsk_cache_hot = task_hot(p, env);
>>
>> + /*
>> + * On a (sane) asymmetric CPU capacity system, the increase in
>> compute
>> + * capacity should offset any potential performance hit caused
>> by a
>> + * migration.
>> + */
>> + if ((env->dst_grp_type == group_has_spare) &&
>> + !migrate_degrades_capacity(p, env))
>> + tsk_cache_hot = 0;
>
> ... I'm starting to wonder if we should not rename the
> tsk_cache_hot variable to something else to make this
> code more readable. Probably in another patch :)
>

I'd tend to agree, but naming is hard. "migration_harmful" ?

> --
> All Rights Reversed.