diff options
author | Qais Yousef <qais.yousef@arm.com> | 2020-03-02 16:27:18 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2020-03-06 14:57:27 +0300 |
commit | a1bd02e1f28b1939cac8c64072a0e578c3cbc345 (patch) | |
tree | b297a940228a68fadde6e97d77f078d3da1e8753 /kernel/sched/cpupri.h | |
parent | b28bc1e002c23ff8a4999c4a2fb1d4d412bc6f5e (diff) | |
download | linux-a1bd02e1f28b1939cac8c64072a0e578c3cbc345.tar.xz |
sched/rt: Optimize cpupri_find() on non-heterogenous systems
By introducing a new cpupri_find_fitness() function that takes the
fitness_fn as an argument and only called when asym_system static key is
enabled.
cpupri_find() is now a wrapper function that calls cpupri_find_fitness()
passing NULL as a fitness_fn, hence disabling the logic that handles
fitness by default.
LINK: https://lore.kernel.org/lkml/c0772fca-0a4b-c88d-fdf2-5715fcf8447b@arm.com/
Reported-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Fixes: 804d402fb6f6 ("sched/rt: Make RT capacity-aware")
Link: https://lkml.kernel.org/r/20200302132721.8353-4-qais.yousef@arm.com
Diffstat (limited to 'kernel/sched/cpupri.h')
-rw-r--r-- | kernel/sched/cpupri.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sched/cpupri.h b/kernel/sched/cpupri.h index 32dd520db11f..efbb492bb94c 100644 --- a/kernel/sched/cpupri.h +++ b/kernel/sched/cpupri.h @@ -19,8 +19,10 @@ struct cpupri { #ifdef CONFIG_SMP int cpupri_find(struct cpupri *cp, struct task_struct *p, - struct cpumask *lowest_mask, - bool (*fitness_fn)(struct task_struct *p, int cpu)); + struct cpumask *lowest_mask); +int cpupri_find_fitness(struct cpupri *cp, struct task_struct *p, + struct cpumask *lowest_mask, + bool (*fitness_fn)(struct task_struct *p, int cpu)); void cpupri_set(struct cpupri *cp, int cpu, int pri); int cpupri_init(struct cpupri *cp); void cpupri_cleanup(struct cpupri *cp); |