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 |
