diff options
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r-- | kernel/sched/sched.h | 12 |
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: */ |
422 | struct rt_rq { | 428 | struct 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; |