This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


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

>>> Kieran Mansley <kmansley@xxxxxxxxxxxxxx> 15.04.09 17:43 >>>
>Some recent changes from Espen Skoglund
>http://markmail.org/thread/76szuiywgd5dn2x4 suggest that it should now
>be possible to map an MSI-X interrupt direct to a guest.  However, when
>trying to do this, I get errors, and before I delve too deep I wondered
>if there was something obvious I'm doing wrong.
>My approach is that dom0 does something like this:
>       struct physdev_map_pirq map_irq;
>       map_irq.domid = guest_domid;
>       map_irq.type = MAP_PIRQ_TYPE_MSI;
>       map_irq.index = -1;
>       map_irq.pirq = -1;
>       map_irq.bus = pci_dev->bus->number;
>       map_irq.devfn = pci_dev->devfn;
>       map_irq.entry_nr = msix_entry;
>       map_irq.table_base = msix_table;
>       rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);

But you don't do this yourself, you get this done for you, right?

>This call succeeds.  dom0 then tells the guest the value of map_irq.pirq
>(which seems to have a sensible value given the other interrupts mapped
>to that domain) that it gets back from this hypercall, and the guest
>tries to call request_irq() using that value.  The call to request_irq()
>returns -38 (ENOSYS).
>Any ideas what the problem could be?  I'm happy to investigate.

What kernel version is it that's running in the guest? Sounds like some
preparatory step might be missing the particular kernel version you got.


Xen-devel mailing list