From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dor Laor Subject: [PATCH] Fix block mode during halt emulation Date: Tue, 01 Jul 2008 01:30:08 +0300 Message-ID: <1214865008.11535.41.camel@localhost.localdomain> Reply-To: dor.laor@qumranet.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-UkYvGaz0ljRr5cm9DMi8" Cc: Yaniv Kamay To: kvm-devel , Avi Kivity Return-path: Sender: kvm-owner@vger.kernel.org List-ID: --=-UkYvGaz0ljRr5cm9DMi8 Content-Type: text/plain Content-Transfer-Encoding: 7bit >>From d85feaae019bc0abc98a2524369e04d521a78aa8 Mon Sep 17 00:00:00 2001 From: Dor Laor Date: Mon, 30 Jun 2008 18:22:44 -0400 Subject: [PATCH] Fix block mode hduring halt emulation There is no need to check for pending pit/apic timer, nor pending virq, since all of the check KVM_MP_STATE_RUNNABLE and wakeup the waitqueue. It fixes 100% cpu when windows guest is shutdown (non acpi HAL) Signed-off-by: Dor Laor --- virt/kvm/kvm_main.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index b90da0b..faa0778 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -816,10 +816,6 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) for (;;) { prepare_to_wait(&vcpu->wq, &wait, TASK_INTERRUPTIBLE); - if (kvm_cpu_has_interrupt(vcpu)) - break; - if (kvm_cpu_has_pending_timer(vcpu)) - break; if (kvm_arch_vcpu_runnable(vcpu)) break; if (signal_pending(current)) -- 1.5.4 --=-UkYvGaz0ljRr5cm9DMi8 Content-Disposition: attachment; filename=0001-Fix-block-mode-during-halt-emulation.patch Content-Type: application/mbox; name=0001-Fix-block-mode-during-halt-emulation.patch Content-Transfer-Encoding: 7bit >>From d85feaae019bc0abc98a2524369e04d521a78aa8 Mon Sep 17 00:00:00 2001 From: Dor Laor Date: Mon, 30 Jun 2008 18:22:44 -0400 Subject: [PATCH] Fix block mode during halt emulation There is no need to check for pending pit/apic timer, nor pending virq, since all of the check KVM_MP_STATE_RUNNABLE and wakeup the waitqueue. It fixes 100% cpu when windows guest is shutdown (non acpi HAL) Signed-off-by: Dor Laor --- virt/kvm/kvm_main.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index b90da0b..faa0778 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -816,10 +816,6 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) for (;;) { prepare_to_wait(&vcpu->wq, &wait, TASK_INTERRUPTIBLE); - if (kvm_cpu_has_interrupt(vcpu)) - break; - if (kvm_cpu_has_pending_timer(vcpu)) - break; if (kvm_arch_vcpu_runnable(vcpu)) break; if (signal_pending(current)) -- 1.5.4 --=-UkYvGaz0ljRr5cm9DMi8--