aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/Kconfig3
-rw-r--r--include/linux/hrtimer.h6
-rw-r--r--kernel/hrtimer.c4
-rw-r--r--litmus/Kconfig1
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"
2129config ARCH_HAS_FEATHER_TRACE 2129config ARCH_HAS_FEATHER_TRACE
2130 def_bool y 2130 def_bool y
2131 2131
2132config ARCH_HAS_SEND_PULL_TIMERS
2133 def_bool y
2134
2132source "litmus/Kconfig" 2135source "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
206static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) 210static 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
372extern int hrtimer_start_on(int cpu, struct hrtimer_start_on_info *info, 377extern 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
376extern int hrtimer_cancel(struct hrtimer *timer); 382extern int hrtimer_cancel(struct hrtimer *timer);
377extern int hrtimer_try_to_cancel(struct hrtimer *timer); 383extern 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}
1044EXPORT_SYMBOL_GPL(hrtimer_start); 1044EXPORT_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
14config RELEASE_MASTER 14config 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