mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
hmp: sched: Clean up hmp_up_threshold checks into a utility fn
In anticipation of modifying the up_threshold handling, make all instances use the same utility fn to check if a task is eligible for up-migration. This also removes the previous difference in threshold comparison where up-migration used '!<threshold' and idle pull used '>threshold' to decide up-migration eligibility. Make them both use '!<threshold' instead for consistency, although this is unlikely to change any results. Signed-off-by: Chris Redpath <chris.redpath@arm.com> Signed-off-by: Jon Medhurst <tixy@linaro.org>
This commit is contained in:
committed by
Jon Medhurst
parent
1ade57e54e
commit
84efcd0cc5
@@ -6721,6 +6721,14 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SCHED_HMP
|
||||
static unsigned int hmp_task_eligible_for_up_migration(struct sched_entity *se)
|
||||
{
|
||||
/* below hmp_up_threshold, never eligible */
|
||||
if (se->avg.load_avg_ratio < hmp_up_threshold)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Check if task should migrate to a faster cpu */
|
||||
static unsigned int hmp_up_migration(int cpu, int *target_cpu, struct sched_entity *se)
|
||||
{
|
||||
@@ -6736,7 +6744,7 @@ static unsigned int hmp_up_migration(int cpu, int *target_cpu, struct sched_enti
|
||||
if (p->prio >= hmp_up_prio)
|
||||
return 0;
|
||||
#endif
|
||||
if (se->avg.load_avg_ratio < hmp_up_threshold)
|
||||
if (!hmp_task_eligible_for_up_migration(se))
|
||||
return 0;
|
||||
|
||||
/* Let the task load settle before doing another up migration */
|
||||
@@ -7224,7 +7232,10 @@ static unsigned int hmp_idle_pull(int this_cpu)
|
||||
}
|
||||
orig = curr;
|
||||
curr = hmp_get_heaviest_task(curr, 1);
|
||||
if (curr->avg.load_avg_ratio > hmp_up_threshold &&
|
||||
/* check if heaviest eligible task on this
|
||||
* CPU is heavier than previous task
|
||||
*/
|
||||
if (hmp_task_eligible_for_up_migration(curr) &&
|
||||
curr->avg.load_avg_ratio > ratio) {
|
||||
p = task_of(curr);
|
||||
target = rq;
|
||||
|
||||
Reference in New Issue
Block a user