mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-15 07:49:47 +00:00

Simplify the scheduler by making CONFIG_SMP=y primitives and data structures unconditional. Introduce transitory wrappers for functionality not yet converted to SMP. Note that this patch is pretty large, because there's no clear separation between various aspects of the SMP scheduler, it's basically a huge block of #ifdef CONFIG_SMP. A fair amount of it has to be switched on for it to boot and work on UP systems. Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Peter Zijlstra <peterz@infradead.org> Cc: Dietmar Eggemann <dietmar.eggemann@arm.com> Cc: Juri Lelli <juri.lelli@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mel Gorman <mgorman@suse.de> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Shrikanth Hegde <sshegde@linux.ibm.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Valentin Schneider <vschneid@redhat.com> Cc: Vincent Guittot <vincent.guittot@linaro.org> Link: https://lore.kernel.org/r/20250528080924.2273858-21-mingo@kernel.org
31 lines
831 B
C
31 lines
831 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#include <linux/atomic.h>
|
|
#include <linux/cpumask.h>
|
|
#include <linux/sched/rt.h>
|
|
|
|
#define CPUPRI_NR_PRIORITIES (MAX_RT_PRIO+1)
|
|
|
|
#define CPUPRI_INVALID -1
|
|
#define CPUPRI_NORMAL 0
|
|
/* values 1-99 are for RT1-RT99 priorities */
|
|
#define CPUPRI_HIGHER 100
|
|
|
|
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;
|
|
};
|
|
|
|
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);
|