diff options
-rw-r--r-- | arch/x86/Kconfig | 3 | ||||
-rw-r--r-- | include/linux/hrtimer.h | 6 | ||||
-rw-r--r-- | kernel/hrtimer.c | 4 | ||||
-rw-r--r-- | litmus/Kconfig | 1 |
4 files changed, 14 insertions, 0 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 955ad4089a7a..7b2c8db45d8a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -2129,4 +2129,7 @@ source "lib/Kconfig" | |||
2129 | config ARCH_HAS_FEATHER_TRACE | 2129 | config ARCH_HAS_FEATHER_TRACE |
2130 | def_bool y | 2130 | def_bool y |
2131 | 2131 | ||
2132 | config ARCH_HAS_SEND_PULL_TIMERS | ||
2133 | def_bool y | ||
2134 | |||
2132 | source "litmus/Kconfig" | 2135 | source "litmus/Kconfig" |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index b34823755ee4..370096d132d1 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
@@ -184,6 +184,8 @@ struct hrtimer_cpu_base { | |||
184 | struct list_head to_pull; | 184 | struct list_head to_pull; |
185 | }; | 185 | }; |
186 | 186 | ||
187 | #ifdef CONFIG_ARCH_HAS_SEND_PULL_TIMERS | ||
188 | |||
187 | #define HRTIMER_START_ON_INACTIVE 0 | 189 | #define HRTIMER_START_ON_INACTIVE 0 |
188 | #define HRTIMER_START_ON_QUEUED 1 | 190 | #define HRTIMER_START_ON_QUEUED 1 |
189 | 191 | ||
@@ -203,6 +205,8 @@ struct hrtimer_start_on_info { | |||
203 | atomic_t state; | 205 | atomic_t state; |
204 | }; | 206 | }; |
205 | 207 | ||
208 | #endif | ||
209 | |||
206 | static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) | 210 | static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) |
207 | { | 211 | { |
208 | timer->_expires = time; | 212 | timer->_expires = time; |
@@ -369,9 +373,11 @@ __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, | |||
369 | unsigned long delta_ns, | 373 | unsigned long delta_ns, |
370 | const enum hrtimer_mode mode, int wakeup); | 374 | const enum hrtimer_mode mode, int wakeup); |
371 | 375 | ||
376 | #ifdef CONFIG_ARCH_HAS_SEND_PULL_TIMERS | ||
372 | extern int hrtimer_start_on(int cpu, struct hrtimer_start_on_info *info, | 377 | extern int hrtimer_start_on(int cpu, struct hrtimer_start_on_info *info, |
373 | struct hrtimer *timer, ktime_t time, | 378 | struct hrtimer *timer, ktime_t time, |
374 | const enum hrtimer_mode mode); | 379 | const enum hrtimer_mode mode); |
380 | #endif | ||
375 | 381 | ||
376 | extern int hrtimer_cancel(struct hrtimer *timer); | 382 | extern int hrtimer_cancel(struct hrtimer *timer); |
377 | extern int hrtimer_try_to_cancel(struct hrtimer *timer); | 383 | extern int hrtimer_try_to_cancel(struct hrtimer *timer); |
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 02e5097bf319..18314ae830ee 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
@@ -1043,6 +1043,8 @@ hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode) | |||
1043 | } | 1043 | } |
1044 | EXPORT_SYMBOL_GPL(hrtimer_start); | 1044 | EXPORT_SYMBOL_GPL(hrtimer_start); |
1045 | 1045 | ||
1046 | #ifdef CONFIG_ARCH_HAS_SEND_PULL_TIMERS | ||
1047 | |||
1046 | /** | 1048 | /** |
1047 | * hrtimer_pull - PULL_TIMERS_VECTOR callback on remote cpu | 1049 | * hrtimer_pull - PULL_TIMERS_VECTOR callback on remote cpu |
1048 | */ | 1050 | */ |
@@ -1123,6 +1125,8 @@ int hrtimer_start_on(int cpu, struct hrtimer_start_on_info* info, | |||
1123 | return in_use; | 1125 | return in_use; |
1124 | } | 1126 | } |
1125 | 1127 | ||
1128 | #endif | ||
1129 | |||
1126 | /** | 1130 | /** |
1127 | * hrtimer_try_to_cancel - try to deactivate a timer | 1131 | * hrtimer_try_to_cancel - try to deactivate a timer |
1128 | * @timer: hrtimer to stop | 1132 | * @timer: hrtimer to stop |
diff --git a/litmus/Kconfig b/litmus/Kconfig index 614e1051fa49..ba2e2d901888 100644 --- a/litmus/Kconfig +++ b/litmus/Kconfig | |||
@@ -13,6 +13,7 @@ config PLUGIN_CEDF | |||
13 | 13 | ||
14 | config RELEASE_MASTER | 14 | config RELEASE_MASTER |
15 | bool "Release-master Support" | 15 | bool "Release-master Support" |
16 | depends on ARCH_HAS_SEND_PULL_TIMERS | ||
16 | default n | 17 | default n |
17 | help | 18 | help |
18 | Allow one processor to act as a dedicated interrupt processor | 19 | Allow one processor to act as a dedicated interrupt processor |