From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: pvops-2.6.32 - Interrupt routing problem Date: Sun, 21 Mar 2010 23:24:30 -0700 Message-ID: <4BA70D1E.2070805@goop.org> References: <20100315101126.GA24650@wavehammer.waldi.eu.org> <20100315211459.GA9314@wavehammer.waldi.eu.org> <20100316013114.GD7622@phenom.dumpdata.com> <20100316081832.GA20502@wavehammer.waldi.eu.org> <20100316153216.GB28821@phenom.dumpdata.com> <20100316182053.GA2258@wavehammer.waldi.eu.org> <20100319113904.GA29200@wavehammer.waldi.eu.org> <20100319121341.GA30270@wavehammer.waldi.eu.org> <20100321214723.GA29738@wavehammer.waldi.eu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20100321214723.GA29738@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: "xen-devel@lists.xensource.com" , Keir Fraser , "Zhang, Xiantao" , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org On 03/21/2010 02:47 PM, Bastian Blank wrote: > On Fri, Mar 19, 2010 at 01:13:41PM +0100, Bastian Blank wrote: > >> The real fix could be: >> - Allow the hypervisor to lock interrupts it uses. Zero would be in it by >> default. The interrupt for the used serial interface would be added. >> All other pins are free to be programmed by the kernel once. >> - Don't do register_gsi calls from the initial setup in the kernel if no >> ACPI override is present, only setup the rest. >> > Okay, I think I found another problem. Currently the setup looks like > this: > - PHYSDEVOP_setup_gsi: set trigger and polarity, unmask pin > - PHYSDEVOP_map_pirq: map to pirq, set irq handler to guest > > If an interrupt fires between this two calles, what happens? > Doesn't sound like a good thing to be doing. The unmask should probably be deferred until everything has been set up to receive an interrupt. > Usually I would do the setup the other way around. This would also make > it possible to use the irq table to allow the kernel to only set IO-APIC > pins mapped to already properly registered interrupts. > Sounds reasonable. J