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.schnei...@arm.com>
Reviewed-by: Rik van Riel <r...@surriel.com> 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.
signature.asc
Description: This is a digitally signed message part