I'm not sure why yet, but commit 8a97c432 ("KVM: PPC: booke: Improve
timer register emulation") in Alex's kvm-ppc-next branch is breaking
Book3S HV KVM on POWER7. Guest cpus fail to spin up, and even with
just one cpu, the guest stalls every so often. If I stop the guest
and inspect the state with qemu, PC is at 0x900. Reverting 8a97c432
makes it work properly again.
Paul.
On Tue, Dec 06, 2011 at 03:03:00PM +1100, Paul Mackerras wrote:
I'm not sure why yet, but commit 8a97c432 ("KVM: PPC: booke: Improve
timer register emulation") in Alex's kvm-ppc-next branch is breaking
Book3S HV KVM on POWER7. Guest cpus fail to spin up, and even with
just one cpu, the guest stalls every so often. If I stop the guest
and inspect the state with qemu, PC is at 0x900. Reverting 8a97c432
makes it work properly again.
This fixes it:
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 534cbe1..83bcb44 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -560,7 +560,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run)
void kvm_vcpu_kick(struct kvm_vcpu *vcpu)
{
- if (waitqueue_active(&vcpu->wq)) {
+ if (waitqueue_active(vcpu->arch.wqp)) {
wake_up_interruptible(vcpu->arch.wqp);
vcpu->stat.halt_wakeup++;
} else if (vcpu->cpu != -1) {
Alex, do you want to roll that in with Scott's patch, or do you want me
to send a separate patch on top?
Paul.
On 06.12.2011, at 12:43, Paul Mackerras wrote:
quoted hunk
On Tue, Dec 06, 2011 at 03:03:00PM +1100, Paul Mackerras wrote:
quoted
I'm not sure why yet, but commit 8a97c432 ("KVM: PPC: booke: Improve
timer register emulation") in Alex's kvm-ppc-next branch is breaking
Book3S HV KVM on POWER7. Guest cpus fail to spin up, and even with
just one cpu, the guest stalls every so often. If I stop the guest
and inspect the state with qemu, PC is at 0x900. Reverting 8a97c432
makes it work properly again.
=20
This fixes it:
=20
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 534cbe1..83bcb44 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -560,7 +560,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, =
struct kvm_run *run)
=20
void kvm_vcpu_kick(struct kvm_vcpu *vcpu)
{
- if (waitqueue_active(&vcpu->wq)) {
+ if (waitqueue_active(vcpu->arch.wqp)) {
:(
wake_up_interruptible(vcpu->arch.wqp);
vcpu->stat.halt_wakeup++;
} else if (vcpu->cpu !=3D -1) {
=20
Alex, do you want to roll that in with Scott's patch, or do you want =
me
to send a separate patch on top?
I usually like praise where praise belongs, so I'll put this right after =
Scott's patch if you give me a nice and shiny patch description with a =
signed-off-by line :)
Alex