From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH 1/3] KVM: x86: Relax accept conditions of kvm_apic_accept_pic_intr Date: Fri, 17 Oct 2008 10:10:54 +0200 Message-ID: <48F8488E.9070700@siemens.com> References: <20081015142748.385784583@mchn012c.ww002.siemens.net> <20081015142748.606503565@mchn012c.ww002.siemens.net> <200810171311.11309.sheng@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, avi@redhat.com, jiajun.xu@intel.com To: Sheng Yang Return-path: Received: from lizzard.sbs.de ([194.138.37.39]:19308 "EHLO lizzard.sbs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751707AbYJQILQ (ORCPT ); Fri, 17 Oct 2008 04:11:16 -0400 In-Reply-To: <200810171311.11309.sheng@linux.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: Sheng Yang wrote: > On Wednesday 15 October 2008 22:27:49 Jan Kiszka wrote: >> Aligning in-kernel kvm_apic_accept_pic_intr with its user space mate, >> this patch relaxes the conditions under which PIC IRQs are accepted >> by LVT0. This reflects reality and allows to reuse the service for the >> NMI watchdog use case. >> >> Signed-off-by: Jan Kiszka >> --- >> arch/x86/kvm/lapic.c | 13 ++++--------- >> 1 file changed, 4 insertions(+), 9 deletions(-) >> >> Index: b/arch/x86/kvm/lapic.c >> =================================================================== >> --- a/arch/x86/kvm/lapic.c >> +++ b/arch/x86/kvm/lapic.c >> @@ -1072,16 +1072,11 @@ int kvm_apic_has_interrupt(struct kvm_vc >> int kvm_apic_accept_pic_intr(struct kvm_vcpu *vcpu) >> { >> u32 lvt0 = apic_get_reg(vcpu->arch.apic, APIC_LVT0); >> - int r = 0; >> >> - if (vcpu->vcpu_id == 0) { >> - if (!apic_hw_enabled(vcpu->arch.apic)) >> - r = 1; >> - if ((lvt0 & APIC_LVT_MASKED) == 0 && >> - GET_APIC_DELIVERY_MODE(lvt0) == APIC_MODE_EXTINT) >> - r = 1; >> - } >> - return r; >> + if (!apic_hw_enabled(vcpu->arch.apic) || >> + (lvt0 & APIC_LVT_MASKED) == 0) >> + return 1; >> + return 0; >> } >> >> void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu) >> > (sorry for late review...) > > Thanks to find out the root cause of BSOD! > > But I am a little concern about this change. As you know, PIC only connect to > cpu0. So I think it's not proper to make it generic. I don't think so - and if it were true, qemu would have a bug then, see its corresponding code. > > Maybe you can use kvm_apic_accept_pic_intr(vcpu0) in later patch? Sorry, don't get what you mean with this (independent of the above). Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux