aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched/sched.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r--kernel/sched/sched.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index dc0f435a2779..c2c0d7bd5027 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -6,6 +6,7 @@
6#include <linux/mutex.h> 6#include <linux/mutex.h>
7#include <linux/spinlock.h> 7#include <linux/spinlock.h>
8#include <linux/stop_machine.h> 8#include <linux/stop_machine.h>
9#include <linux/irq_work.h>
9#include <linux/tick.h> 10#include <linux/tick.h>
10#include <linux/slab.h> 11#include <linux/slab.h>
11 12
@@ -418,6 +419,11 @@ static inline int rt_bandwidth_enabled(void)
418 return sysctl_sched_rt_runtime >= 0; 419 return sysctl_sched_rt_runtime >= 0;
419} 420}
420 421
422/* RT IPI pull logic requires IRQ_WORK */
423#ifdef CONFIG_IRQ_WORK
424# define HAVE_RT_PUSH_IPI
425#endif
426
421/* Real-Time classes' related field in a runqueue: */ 427/* Real-Time classes' related field in a runqueue: */
422struct rt_rq { 428struct rt_rq {
423 struct rt_prio_array active; 429 struct rt_prio_array active;
@@ -435,7 +441,13 @@ struct rt_rq {
435 unsigned long rt_nr_total; 441 unsigned long rt_nr_total;
436 int overloaded; 442 int overloaded;
437 struct plist_head pushable_tasks; 443 struct plist_head pushable_tasks;
444#ifdef HAVE_RT_PUSH_IPI
445 int push_flags;
446 int push_cpu;
447 struct irq_work push_work;
448 raw_spinlock_t push_lock;
438#endif 449#endif
450#endif /* CONFIG_SMP */
439 int rt_queued; 451 int rt_queued;
440 452
441 int rt_throttled; 453 int rt_throttled;