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

From: Rik van Riel
Date: Thu Apr 15 2021 - 16:39:51 EST


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>


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 :)

--
All Rights Reversed.

Attachment: signature.asc
Description: This is a digitally signed message part