mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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: 804d402fb6 ("sched/rt: Make RT capacity-aware")
Link: https://lkml.kernel.org/r/20200302132721.8353-4-qais.yousef@arm.com
		
	
			
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			770 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			770 B
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
 | 
						|
#define CPUPRI_NR_PRIORITIES	(MAX_RT_PRIO + 2)
 | 
						|
 | 
						|
#define CPUPRI_INVALID		-1
 | 
						|
#define CPUPRI_IDLE		 0
 | 
						|
#define CPUPRI_NORMAL		 1
 | 
						|
/* values 2-101 are RT priorities 0-99 */
 | 
						|
 | 
						|
struct cpupri_vec {
 | 
						|
	atomic_t		count;
 | 
						|
	cpumask_var_t		mask;
 | 
						|
};
 | 
						|
 | 
						|
struct cpupri {
 | 
						|
	struct cpupri_vec	pri_to_cpu[CPUPRI_NR_PRIORITIES];
 | 
						|
	int			*cpu_to_pri;
 | 
						|
};
 | 
						|
 | 
						|
#ifdef CONFIG_SMP
 | 
						|
int  cpupri_find(struct cpupri *cp, struct task_struct *p,
 | 
						|
		 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);
 | 
						|
#endif
 |