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

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



Oh.  I just noticed that you map the MSI directly to the guest.  You
should first map it into dom0 as an MSI (to set up the MSI-X
descriptor) and then map it to domU as a GSI.

        eSk


[Espen Skoglund]
> Do you also map the vector to domU before requesting it?  You should
> be able to map it as a GSI.  You'll also need c/s 791 or newer for the
> domU kernel.

>       eSk

> [Kieran Mansley]
>> 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);

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

>> Kieran


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



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