Patchwork powerpc/kvm: Fix "PR" KVM implementation of H_CEDE

login
register
mail settings
Submitter Benjamin Herrenschmidt
Date July 10, 2012, 8:48 a.m.
Message ID <1341910097.2561.19.camel@pasglop>
Download mbox | patch
Permalink /patch/170084/
State New
Headers show

Comments

Benjamin Herrenschmidt - July 10, 2012, 8:48 a.m.
H_CEDE should enable the vcpu's MSR:EE bit. It does on "HV" KVM (it's
burried in the assembly code though) and as far as I can tell, qemu
does it as well.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

Alex, you probably want that in -now- (and maybe even in stable).

Without that, bad things happen in guests, especially after Linus pulls
what I'm about to send him to fix more issues with the way pseries
handles H_CEDE vs. lazy IRQ disabling (it will hang in PR KVM without
that fix).



--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/powerpc/kvm/book3s_pr_papr.c b/arch/powerpc/kvm/book3s_pr_papr.c
index 3ff9013..ee02b30 100644
--- a/arch/powerpc/kvm/book3s_pr_papr.c
+++ b/arch/powerpc/kvm/book3s_pr_papr.c
@@ -241,6 +241,7 @@  int kvmppc_h_pr(struct kvm_vcpu *vcpu, unsigned long cmd)
 	case H_PUT_TCE:
 		return kvmppc_h_pr_put_tce(vcpu);
 	case H_CEDE:
+		vcpu->arch.shared->msr |= MSR_EE;
 		kvm_vcpu_block(vcpu);
 		clear_bit(KVM_REQ_UNHALT, &vcpu->requests);
 		vcpu->stat.halt_wakeup++;