[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] PCI passthrough w/ shared IRQ in xen/master



xen-devel-bounces@xxxxxxxxxxxxxxxxxxx wrote on 02/19/2010 11:55:27 AM:

> xen-devel-bounces@xxxxxxxxxxxxxxxxxxx wrote on 02/19/2010 11:26:11 AM:
> 
> > Keir Fraser <keir.fraser@xxxxxxxxxxxxx> wrote on 02/19/2010 11:24:28 
AM:
> > 
> > > On 19/02/2010 16:15, "Mark Hurenkamp" <mark.hurenkamp@xxxxxxxxx> 
> wrote:
> > > 
> > > > When you do passthrough the device which has a shared IRQ, the 
domU 
> > will
> > > > load the appropriate driver, but Xen refuses to assign the IRQ to 
> the
> > > > domU.
> > > > In your case (and mine as well), the driver in domU is not aware 
> that 
> > it
> > > > has no IRQ, and thus starts generating interupts which are then 
> caught 
> > by
> > > > Dom0 as spurious interrupts, in my case even causing Dom0 to crash 

> at
> > > > times.
> > > 
> > > Are you sure the domU doesn't get the interrupts as well? Correct 
> > behaviour
> > > in Xen will be to send the interrupt to both dom0 and domU - since 
Xen 
> 
> > can't
> > > work out which of the two it properly belongs to (and it could be 
> both).
> > > 
> > > I would suggest try commenting out the content of the function
> > > kernel/irq/spurious.c:note_interrupt(). That will stop dom0 from 
> > reacting to
> > > the 'spurious' irqs that it sees and ignore them instead. See if 
that 
> > works
> > > for you.
> > 
> > On it.  Let you know what happens.
> 
> Commented out the entire contents of note_interrupt().  Only installed 
the 
> new kernel on my dom0.  That does in fact keep my dom0 from killing my 
> SATA controller, but my PCI ATM card still doesn't quite work in the 
domU. 
>  How exactly do I tell if the domU is getting the interrupts?
> 
> The card works well enough for the ATM daemons to set up a PVC, but when 
I 
> try to ping the host on the other side I get nothing.  Actually, after a 

> few minutes, I start getting this message:
> 
> ping: sendmsg: No buffer space available

Ok, I've attached the serial output from my dom0 w/out any 
note_interrupt() content, the output of dmesg on my bad domU, and the 
contents of /proc/interrupts on my bad domU.

I also included dmesg and interrupts from a "good" domU.  This other domU 
is running on the same dom0 with the same model PCI ATM card (HE155) in a 
different PCI slot with a unique IRQ.

I'm gonna go verify that the ATM w/ shared IRQ works in dom0...

-Mike





Attachment: xen_domU_irq_problems_nospurious.txt
Description: Text document

Attachment: domU_bad_dmesg.txt
Description: Text document

Attachment: domU_bad_interrupts.txt
Description: Text document

Attachment: domU_good_dmesg.txt
Description: Text document

Attachment: domU_good_interrupts.txt
Description: Text document

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.