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

Re: [Xen-devel] MSI-X interrupts to guests



[Kieran Mansley]
> On Wed, 2009-04-15 at 17:30 +0100, Espen Skoglund wrote:
>> The API is the same as used for mapping regular PIRQs (they just
>> happen to be MSI-X vectors).  In particular, xend will use the
>> right API when mapping a PIRQ to the guest.

> Changing the code to do as I think you describe gives a different
> error: the call to PHYSDEVOP_map_pirq to map the GSI into the guest
> fails as from reading the code (xen/arch/x86/physdev.c:58) it seems
> to be expecting an IRQ number to be passed in when what we have is
> an MSI-X vector, and it falls out of the range of IRQ numbers.  The
> frustrating part is that the code that handles PHYSDEVOP_map_pirq in
> the hypervisor just turns the IRQ back into a vector.

> For the record, this is what I'm doing now:
> 1) Call pci_enable_msix() to set up the MSI-X tables and allocate a set
> of vectors.  This works fine.  As I understand things this calls among
> other things  PHYSDEVOP_map_pirq to map it into dom0.

> 2a) Attempt to map this to the guest using PHYSDEVOP_map_pirq with
> parameters:
> map_irq.domid = guest_domid;
> map_irq.type = MAP_PIRQ_TYPE_GSI;
> map_irq.index = vector;
> map_irq.pirq = -1;

>  => gives an error in the hypervisor: 
> (XEN) physdev.c:61: dom1: map invalid irq 510

IRQ510?  This definitely sounds wrong.  This can't possibly be the
"PIRQ" assigned to the MSI vector.




> One point that is causing some confusion is the need to map the
> MSI-X into dom0 and get a physical IRQ in the first place before
> mapping it to the guest.  Is this strictly necessary?  It suggests
> that, once it has also been mapped to the guest the interrupt may be
> delivered to two different domains.

Only if two different domains bind to the pirq.  MSI-X vectors could
in theory be shared between multiple domains.  I have not attempted
this, and don't know if it would work with the current code base.

        eSk


_______________________________________________
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®.