aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/asm-offsets.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-04-17 16:30:50 -0400
committerAlexander Graf <agraf@suse.de>2013-04-26 14:27:31 -0400
commit54695c3088a74e25474db8eb6b490b45d1aeb0ca (patch)
tree4ecaa9c41857cf4b380f54017830e2aeb8dc56fe /arch/powerpc/kernel/asm-offsets.c
parentbc5ad3f3701116e7db57268e6f89010ec714697e (diff)
KVM: PPC: Book3S HV: Speed up wakeups of CPUs on HV KVM
Currently, we wake up a CPU by sending a host IPI with smp_send_reschedule() to thread 0 of that core, which will take all threads out of the guest, and cause them to re-evaluate their interrupt status on the way back in. This adds a mechanism to differentiate real host IPIs from IPIs sent by KVM for guest threads to poke each other, in order to target the guest threads precisely when possible and avoid that global switch of the core to host state. We then use this new facility in the in-kernel XICS code. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'arch/powerpc/kernel/asm-offsets.c')
-rw-r--r--arch/powerpc/kernel/asm-offsets.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/asm-offsets.c b/arch/powerpc/kernel/asm-offsets.c
index dbfd5498f440..a791229329cf 100644
--- a/arch/powerpc/kernel/asm-offsets.c
+++ b/arch/powerpc/kernel/asm-offsets.c
@@ -574,6 +574,8 @@ int main(void)
574 HSTATE_FIELD(HSTATE_KVM_VCPU, kvm_vcpu); 574 HSTATE_FIELD(HSTATE_KVM_VCPU, kvm_vcpu);
575 HSTATE_FIELD(HSTATE_KVM_VCORE, kvm_vcore); 575 HSTATE_FIELD(HSTATE_KVM_VCORE, kvm_vcore);
576 HSTATE_FIELD(HSTATE_XICS_PHYS, xics_phys); 576 HSTATE_FIELD(HSTATE_XICS_PHYS, xics_phys);
577 HSTATE_FIELD(HSTATE_SAVED_XIRR, saved_xirr);
578 HSTATE_FIELD(HSTATE_HOST_IPI, host_ipi);
577 HSTATE_FIELD(HSTATE_MMCR, host_mmcr); 579 HSTATE_FIELD(HSTATE_MMCR, host_mmcr);
578 HSTATE_FIELD(HSTATE_PMC, host_pmc); 580 HSTATE_FIELD(HSTATE_PMC, host_pmc);
579 HSTATE_FIELD(HSTATE_PURR, host_purr); 581 HSTATE_FIELD(HSTATE_PURR, host_purr);