Messages in this thread | | | Subject | Re: [PATCH 2/2] sched/fair: Relax task_hot() for misfit tasks | From | Rik van Riel <> | Date | Thu, 15 Apr 2021 16:39:44 -0400 |
| |
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@arm.com>
Reviewed-by: Rik van Riel <riel@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. [unhandled content-type:application/pgp-signature] | |