aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPratyush Patel <pratyushpatel.1995@gmail.com>2016-02-07 22:11:15 -0500
committerPratyush Patel <pratyushpatel.1995@gmail.com>2016-02-07 22:11:15 -0500
commitce90c1d314b15359d0595918c7dfa0ec1f5b9bb6 (patch)
tree6b20f5f040857a36f7696328e4029f7cb94dc98d /arch
parent3b688190e1d840b8357aae765911f0f00621e26f (diff)
Revert "Add hrtimer_start_on() support"
This reverts commit 5014e7011964ff46b2d73cf91a05ed9eed5a8fa2.
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig3
-rw-r--r--arch/x86/Kconfig3
-rw-r--r--arch/x86/include/asm/entry_arch.h1
-rw-r--r--arch/x86/include/asm/hw_irq.h4
-rw-r--r--arch/x86/include/asm/irq_vectors.h6
-rw-r--r--arch/x86/kernel/entry_64.S2
-rw-r--r--arch/x86/kernel/irqinit.c3
-rw-r--r--arch/x86/kernel/smp.c35
8 files changed, 0 insertions, 57 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d3bfc3a4e56a..ce948d46a1b3 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2123,8 +2123,5 @@ source "arch/arm/kvm/Kconfig"
2123config ARCH_HAS_FEATHER_TRACE 2123config ARCH_HAS_FEATHER_TRACE
2124 def_bool n 2124 def_bool n
2125 2125
2126config ARCH_HAS_SEND_PULL_TIMERS
2127 def_bool n
2128
2129source "litmus/Kconfig" 2126source "litmus/Kconfig"
2130 2127
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index f9c9a4d70b24..6331227b4686 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2598,7 +2598,4 @@ source "lib/Kconfig"
2598config ARCH_HAS_FEATHER_TRACE 2598config ARCH_HAS_FEATHER_TRACE
2599 def_bool y 2599 def_bool y
2600 2600
2601config ARCH_HAS_SEND_PULL_TIMERS
2602 def_bool y
2603
2604source "litmus/Kconfig" 2601source "litmus/Kconfig"
diff --git a/arch/x86/include/asm/entry_arch.h b/arch/x86/include/asm/entry_arch.h
index e657219d7964..dc5fa661465f 100644
--- a/arch/x86/include/asm/entry_arch.h
+++ b/arch/x86/include/asm/entry_arch.h
@@ -13,7 +13,6 @@
13BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR) 13BUILD_INTERRUPT(reschedule_interrupt,RESCHEDULE_VECTOR)
14BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR) 14BUILD_INTERRUPT(call_function_interrupt,CALL_FUNCTION_VECTOR)
15BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR) 15BUILD_INTERRUPT(call_function_single_interrupt,CALL_FUNCTION_SINGLE_VECTOR)
16BUILD_INTERRUPT(pull_timers_interrupt,PULL_TIMERS_VECTOR)
17BUILD_INTERRUPT3(irq_move_cleanup_interrupt, IRQ_MOVE_CLEANUP_VECTOR, 16BUILD_INTERRUPT3(irq_move_cleanup_interrupt, IRQ_MOVE_CLEANUP_VECTOR,
18 smp_irq_move_cleanup_interrupt) 17 smp_irq_move_cleanup_interrupt)
19BUILD_INTERRUPT3(reboot_interrupt, REBOOT_VECTOR, smp_reboot_interrupt) 18BUILD_INTERRUPT3(reboot_interrupt, REBOOT_VECTOR, smp_reboot_interrupt)
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
index 3e860d1f9416..e9571ddabc4f 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -77,8 +77,6 @@ extern asmlinkage void threshold_interrupt(void);
77extern asmlinkage void call_function_interrupt(void); 77extern asmlinkage void call_function_interrupt(void);
78extern asmlinkage void call_function_single_interrupt(void); 78extern asmlinkage void call_function_single_interrupt(void);
79 79
80extern asmlinkage void pull_timers_interrupt(void);
81
82#ifdef CONFIG_TRACING 80#ifdef CONFIG_TRACING
83/* Interrupt handlers registered during init_IRQ */ 81/* Interrupt handlers registered during init_IRQ */
84extern void trace_apic_timer_interrupt(void); 82extern void trace_apic_timer_interrupt(void);
@@ -91,7 +89,6 @@ extern void trace_reschedule_interrupt(void);
91extern void trace_threshold_interrupt(void); 89extern void trace_threshold_interrupt(void);
92extern void trace_call_function_interrupt(void); 90extern void trace_call_function_interrupt(void);
93extern void trace_call_function_single_interrupt(void); 91extern void trace_call_function_single_interrupt(void);
94extern void trace_pull_timers_interrupt(void);
95#define trace_irq_move_cleanup_interrupt irq_move_cleanup_interrupt 92#define trace_irq_move_cleanup_interrupt irq_move_cleanup_interrupt
96#define trace_reboot_interrupt reboot_interrupt 93#define trace_reboot_interrupt reboot_interrupt
97#define trace_kvm_posted_intr_ipi kvm_posted_intr_ipi 94#define trace_kvm_posted_intr_ipi kvm_posted_intr_ipi
@@ -182,7 +179,6 @@ extern __visible void smp_reschedule_interrupt(struct pt_regs *);
182extern __visible void smp_call_function_interrupt(struct pt_regs *); 179extern __visible void smp_call_function_interrupt(struct pt_regs *);
183extern __visible void smp_call_function_single_interrupt(struct pt_regs *); 180extern __visible void smp_call_function_single_interrupt(struct pt_regs *);
184extern __visible void smp_invalidate_interrupt(struct pt_regs *); 181extern __visible void smp_invalidate_interrupt(struct pt_regs *);
185extern __visible void smp_pull_timers_interrupt(struct pt_regs *);
186#endif 182#endif
187 183
188extern char irq_entries_start[]; 184extern char irq_entries_start[];
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
index 82545836e1a1..666c89ec4bd7 100644
--- a/arch/x86/include/asm/irq_vectors.h
+++ b/arch/x86/include/asm/irq_vectors.h
@@ -124,12 +124,6 @@
124 */ 124 */
125#define LOCAL_TIMER_VECTOR 0xef 125#define LOCAL_TIMER_VECTOR 0xef
126 126
127/*
128 * LITMUS^RT pull timers IRQ vector.
129 * Make sure it's not used by Linux.
130 */
131#define PULL_TIMERS_VECTOR 0xdf
132
133#define NR_VECTORS 256 127#define NR_VECTORS 256
134 128
135#ifdef CONFIG_X86_LOCAL_APIC 129#ifdef CONFIG_X86_LOCAL_APIC
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index d810f5fea04f..02c2eff7478d 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -947,8 +947,6 @@ apicinterrupt CALL_FUNCTION_VECTOR \
947 call_function_interrupt smp_call_function_interrupt 947 call_function_interrupt smp_call_function_interrupt
948apicinterrupt RESCHEDULE_VECTOR \ 948apicinterrupt RESCHEDULE_VECTOR \
949 reschedule_interrupt smp_reschedule_interrupt 949 reschedule_interrupt smp_reschedule_interrupt
950apicinterrupt PULL_TIMERS_VECTOR \
951 pull_timers_interrupt smp_pull_timers_interrupt
952#endif 950#endif
953 951
954apicinterrupt ERROR_APIC_VECTOR \ 952apicinterrupt ERROR_APIC_VECTOR \
diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c
index 834496ed9536..cd10a6437264 100644
--- a/arch/x86/kernel/irqinit.c
+++ b/arch/x86/kernel/irqinit.c
@@ -115,9 +115,6 @@ static void __init smp_intr_init(void)
115 alloc_intr_gate(CALL_FUNCTION_SINGLE_VECTOR, 115 alloc_intr_gate(CALL_FUNCTION_SINGLE_VECTOR,
116 call_function_single_interrupt); 116 call_function_single_interrupt);
117 117
118 /* IPI for hrtimer pulling on remote cpus */
119 alloc_intr_gate(PULL_TIMERS_VECTOR, pull_timers_interrupt);
120
121 /* Low priority IPI to cleanup after moving an irq */ 118 /* Low priority IPI to cleanup after moving an irq */
122 set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt); 119 set_intr_gate(IRQ_MOVE_CLEANUP_VECTOR, irq_move_cleanup_interrupt);
123 set_bit(IRQ_MOVE_CLEANUP_VECTOR, used_vectors); 120 set_bit(IRQ_MOVE_CLEANUP_VECTOR, used_vectors);
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index 431c3d29a667..cffff2a8eb8b 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -25,7 +25,6 @@
25#include <linux/gfp.h> 25#include <linux/gfp.h>
26 26
27#include <litmus/preempt.h> 27#include <litmus/preempt.h>
28#include <litmus/debug_trace.h>
29 28
30#include <asm/mtrr.h> 29#include <asm/mtrr.h>
31#include <asm/tlbflush.h> 30#include <asm/tlbflush.h>
@@ -167,16 +166,6 @@ static int smp_stop_nmi_callback(unsigned int val, struct pt_regs *regs)
167 return NMI_HANDLED; 166 return NMI_HANDLED;
168} 167}
169 168
170/* trigger timers on remote cpu */
171void smp_send_pull_timers(int cpu)
172{
173 if (unlikely(cpu_is_offline(cpu))) {
174 WARN_ON(1);
175 return;
176 }
177 apic->send_IPI_mask(cpumask_of(cpu), PULL_TIMERS_VECTOR);
178}
179
180/* 169/*
181 * this function calls the 'stop' function on all other CPUs in the system. 170 * this function calls the 'stop' function on all other CPUs in the system.
182 */ 171 */
@@ -359,30 +348,6 @@ static int __init nonmi_ipi_setup(char *str)
359 348
360__setup("nonmi_ipi", nonmi_ipi_setup); 349__setup("nonmi_ipi", nonmi_ipi_setup);
361 350
362extern void hrtimer_pull(void);
363
364static inline void __smp_pull_timers_interrupt(void)
365{
366 TRACE("pull timer interrupt\n");
367 hrtimer_pull();
368}
369
370__visible void smp_pull_timers_interrupt(struct pt_regs *regs)
371{
372 smp_entering_irq();
373 __smp_pull_timers_interrupt();
374 exiting_irq();
375}
376
377__visible void smp_trace_pull_timers_interrupt(struct pt_regs *regs)
378{
379 smp_entering_irq();
380 trace_call_function_single_entry(PULL_TIMERS_VECTOR);
381 __smp_pull_timers_interrupt();
382 trace_call_function_single_exit(PULL_TIMERS_VECTOR);
383 exiting_irq();
384}
385
386struct smp_ops smp_ops = { 351struct smp_ops smp_ops = {
387 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu, 352 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu,
388 .smp_prepare_cpus = native_smp_prepare_cpus, 353 .smp_prepare_cpus = native_smp_prepare_cpus,