From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 1/4] BIOS changes for configuring irq0->inti2 override (v2) Date: Thu, 07 May 2009 18:56:51 +0300 Message-ID: <4A0304C3.4050103@redhat.com> References: <1241708222-11101-1-git-send-email-eak@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Beth Kon Return-path: Received: from mx2.redhat.com ([66.187.237.31]:59930 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753725AbZEGP44 (ORCPT ); Thu, 7 May 2009 11:56:56 -0400 In-Reply-To: <1241708222-11101-1-git-send-email-eak@us.ibm.com> Sender: kvm-owner@vger.kernel.org List-ID: Beth Kon wrote: > These patches resolve the irq0->inti2 override issue, and get the hpet working > on kvm. > > They are dependent on Jes Sorensen's recent 0006-qemu-kvm-irq-routing.patch. > > Override and HPET changes are sent as a series because HPET depends on the > override. Win2k8 expects the HPET interrupt on inti2, regardless of whether > an override exists in the BIOS. And the HPET spec states that in legacy mode, > timer interrupt is on inti2. > > The irq0->inti2 override will always be used unless the kernel cannot do irq > routing (i.e., compatibility with old kernels). So if the kernel is capable, > userspace sets up irq0->inti2 via the irq routing interface, and adds the > irq0->inti2 override to the MADT interrupt source override table, > and the mp table (for the no-acpi case). > > A couple of months ago, Marcelo was seeing RHEL5 guests complain of invalid > checksum with these patches, but later he couldn't reproduce it, and I'm not > seeing it now. While all guests still need to be fully tested, everything > appears to be in order. I've tested on win2k864, win2k832, RHEL5.3 32 bit, > and ubuntu 8.10 64 bit. > > What are the changes relative to v1? > @@ -477,6 +480,7 @@ void wrmsr_smp(uint32_t index, uint64_t val) > #define QEMU_CFG_SIGNATURE 0x00 > #define QEMU_CFG_ID 0x01 > #define QEMU_CFG_UUID 0x02 > +#define QEMU_CFG_IRQ0_OVERRIDE 0x0e > As noted, this should be in the arch local space. -- error compiling committee.c: too many arguments to function