From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: pvops-2.6.32 - Interrupt routing problem Date: Mon, 15 Mar 2010 21:31:14 -0400 Message-ID: <20100316013114.GD7622@phenom.dumpdata.com> References: <20100310111923.GA7087@wavehammer.waldi.eu.org> <20100314140813.GA5309@wavehammer.waldi.eu.org> <20100314152334.GA6483@wavehammer.waldi.eu.org> <4B9D0726.3060304@goop.org> <20100314161750.GA7790@wavehammer.waldi.eu.org> <20100315101126.GA24650@wavehammer.waldi.eu.org> <20100315211459.GA9314@wavehammer.waldi.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20100315211459.GA9314@wavehammer.waldi.eu.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Bastian Blank Cc: Jeremy Fitzhardinge , "xen-devel@lists.xensource.com" , Fraser , "Zhang, Xiantao" , "Keir@wavehammer.waldi.eu.org" List-Id: xen-devel@lists.xenproject.org On Mon, Mar 15, 2010 at 10:15:00PM +0100, Bastian Blank wrote: > On Mon, Mar 15, 2010 at 09:48:15PM +0800, Zhang, Xiantao wrote: > > With my previous patch, seems you still need to apply the following patch to xen.git. In this way, the GSI 0-15 are still setup by hypervisor, but it also give one chance for dom0 to re-programme its polarity and trigger mode. Yeah, that won't do. This way there are no irq_desc set for the rest of the devices. > > No, this seems to break further things. I lost access to the storage. The mechanism this makes this work is a bit .. unwieldy. It really looks that we initially set the IOAPIC with the wrong trigger earlier on (and Zhangs patch tries to remove that so it is on demand, but it removes the rest of your GSI entries, so that is not good). 1) Can you boot your baremetal with these options: acpi.debug_level=0xffffffff acpi.debug_layer=0x2 apic=debug 2) And then later on your Xen with these (make SURE to _not_ have apic=debug on the Linux kernel command line with Xen, it will blow): xen.gz apic=debug apic_verbosity=debug console_to_ring sync_console loglvl=all guest_loglvl=all Also you could try this patch to confirm the theory that we incorrectly get the trigger/level from the MP table early on boot (not compile tested at all): diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c index f5ce35f..b775452 100644 --- a/arch/x86/xen/pci.c +++ b/arch/x86/xen/pci.c @@ -88,6 +88,9 @@ void __init xen_setup_pirqs(void) if (acpi_get_override_irq(irq, &trigger, &polarity) == -1) continue; + if (irq == 14 || irq == 5) + trigger = 0; + xen_register_gsi(irq, trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE, polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH);