From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: radeon in dom0/ivtv in domU: irq 16 nobody cared Date: Tue, 13 Apr 2010 12:21:41 -0700 Message-ID: <4BC4C445.5030507@goop.org> References: <20100408001916.GA10840@phenom.dumpdata.com> <20100408173700.GB26343@phenom.dumpdata.com> <4BBE2451.7090600@goop.org> <20100413131804.GB16475@phenom.dumpdata.com> <4BC4B84D.1040505@goop.org> <20100413191005.GB9173@phenom.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20100413191005.GB9173@phenom.dumpdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Konrad Rzeszutek Wilk Cc: xen-devel@lists.xensource.com, Mark Hurenkamp List-Id: xen-devel@lists.xenproject.org On 04/13/2010 12:10 PM, Konrad Rzeszutek Wilk wrote: >> Does the kernel get to know about the passed-through irqs? I was >> thinking that at pass-through time it would install the handler in dom0 >> on the irq (and all other domains sharing the irq), and then the handler >> could do that hypercall and return IRQ_HANDLED / IRQ_NONE accordingly. >> > That was my other thought. But that means that the handler has to > do a hypercall - which I thought is a bit too heavy handed considering we only need > to know whether it is shared only once. It could just return IRQ_HANDLED unconditionally, without doing the hypercall. Remember you also need it in the domU and any other domU using the same GSI. > The fake irq handler gets > disabled if the domain is turned off/pci hotplug removed. > Yep. > Currently the fake IRQ handler is installed on the IRQ that is requested > by the guest. So if the IRQ is not shared in Dom0, it still gets > inserted in (and it won't receive any interrupts since that IRQ line is > not shared with the domain 0). > Just for clarity's sake, you mean GSI for each instance of IRQ here, right? >> Hrm. You could instrument Xen to see who's masking the interrupt. >> > Right now I am, digging through code to figure out how to make this > happen without inserting to much code in the handler which would have > slowed the machine to a crawl. > I was thinking of something very dumb and ad-hoc, like putting an explicit "if (gsi == X && masking) print something". J