aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-10-03 14:02:39 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-03 14:02:39 -0400
commitd7a0dab82fef61bebd34f2bbb9314b075153b646 (patch)
tree1ec0a1d31ed8231bcce7f20c6b289e57a8969ca9 /include/linux
parent4b978934a440c1aafce986353001b03289eaa040 (diff)
parent8db549491c4a3ce9e1d509b75f78516e497f48ec (diff)
Merge branch 'core-smp-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull core SMP updates from Ingo Molnar: "Two main change is generic vCPU pinning and physical CPU SMP-call support, for Xen to be able to perform certain calls on specific physical CPUs - by Juergen Gross" * 'core-smp-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: smp: Allocate smp_call_on_cpu() workqueue on stack too hwmon: Use smp_call_on_cpu() for dell-smm i8k dcdbas: Make use of smp_call_on_cpu() xen: Add xen_pin_vcpu() to support calling functions on a dedicated pCPU smp: Add function to execute a function synchronously on a CPU virt, sched: Add generic vCPU pinning support xen: Sync xen header
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hypervisor.h17
-rw-r--r--include/linux/smp.h3
2 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/hypervisor.h b/include/linux/hypervisor.h
new file mode 100644
index 000000000000..3fa5ef2b3759
--- /dev/null
+++ b/include/linux/hypervisor.h
@@ -0,0 +1,17 @@
1#ifndef __LINUX_HYPEVISOR_H
2#define __LINUX_HYPEVISOR_H
3
4/*
5 * Generic Hypervisor support
6 * Juergen Gross <jgross@suse.com>
7 */
8
9#ifdef CONFIG_HYPERVISOR_GUEST
10#include <asm/hypervisor.h>
11#else
12static inline void hypervisor_pin_vcpu(int cpu)
13{
14}
15#endif
16
17#endif /* __LINUX_HYPEVISOR_H */
diff --git a/include/linux/smp.h b/include/linux/smp.h
index eccae4690f41..8e0cb7a0f836 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -196,6 +196,9 @@ extern void arch_enable_nonboot_cpus_end(void);
196 196
197void smp_setup_processor_id(void); 197void smp_setup_processor_id(void);
198 198
199int smp_call_on_cpu(unsigned int cpu, int (*func)(void *), void *par,
200 bool phys);
201
199/* SMP core functions */ 202/* SMP core functions */
200int smpcfd_prepare_cpu(unsigned int cpu); 203int smpcfd_prepare_cpu(unsigned int cpu);
201int smpcfd_dead_cpu(unsigned int cpu); 204int smpcfd_dead_cpu(unsigned int cpu);