mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-28 09:22:08 +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
41 lines
968 B
C
41 lines
968 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_SCHED_DEADLINE_H
|
|
#define _LINUX_SCHED_DEADLINE_H
|
|
|
|
/*
|
|
* SCHED_DEADLINE tasks has negative priorities, reflecting
|
|
* the fact that any of them has higher prio than RT and
|
|
* NORMAL/BATCH tasks.
|
|
*/
|
|
|
|
#include <linux/sched.h>
|
|
|
|
static inline bool dl_prio(int prio)
|
|
{
|
|
return unlikely(prio < MAX_DL_PRIO);
|
|
}
|
|
|
|
/*
|
|
* Returns true if a task has a priority that belongs to DL class. PI-boosted
|
|
* tasks will return true. Use dl_policy() to ignore PI-boosted tasks.
|
|
*/
|
|
static inline bool dl_task(struct task_struct *p)
|
|
{
|
|
return dl_prio(p->prio);
|
|
}
|
|
|
|
static inline bool dl_time_before(u64 a, u64 b)
|
|
{
|
|
return (s64)(a - b) < 0;
|
|
}
|
|
|
|
struct root_domain;
|
|
extern void dl_add_task_root_domain(struct task_struct *p);
|
|
extern void dl_clear_root_domain(struct root_domain *rd);
|
|
extern void dl_clear_root_domain_cpu(int cpu);
|
|
|
|
extern u64 dl_cookie;
|
|
extern bool dl_bw_visited(int cpu, u64 cookie);
|
|
|
|
#endif /* _LINUX_SCHED_DEADLINE_H */
|