Hi,
On 09/07/2017 23:02, Eric Auger wrote:
> This series implements INTx to gsi routing for ARM VIRT/Gpex. This is
> a respin of [1] which was lost in limbo.
>
> ARM virt uses GPEX PCIe bridge. This latter does not implement INTx
> to GSI routing. PCIe/INTx assignment works but the consequence is
> irqfd is not used along with INTx interrupts and VFIO INTx handlers
> are executed on userspace leading to an important performance degradation.
>
> This issue is witnessed by the following messages;
>
> qemu-system-aarch64: -device vfio-pci,host=0006:90:00.0: PCI: Bug -
> unimplemented PCI INTx routing (gpex-pcihost)
> qemu-system-aarch64: PCI: Bug - unimplemented PCI INTx routing (gpex-pcihost)
> qemu-system-aarch64: PCI: Bug - unimplemented PCI INTx routing (gpex-pcihost)
>
> So with this series, irqfd is set up for PCIe/INTx passthrough and we get
> the optimal performance. Also we get rid of the above messages.
If I haven't missed anything, I have not received any comment on this
series despite ping and resend since mid June. Now most of the 2.10 rush
is behind, please can anyone have a look?
The BUG message hits when your assign a PF and performance is largely
decreased whenever INTx are used during passthrough.
Thanks
Eric
>
> This series can be found at:
> https://github.com/eauger/qemu/tree/v2.9-gpex-intx-v3
>
> References:
> [1] Generic PCIe host bridge INTx determination for INTx routing
> https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg04975.html
>
>
> Pranavkumar Sawargaonkar (3):
> hw/pci-host/gpex: Set INTx index/gsi mapping
> hw/arm/virt: Set INTx/gsi mapping
> hw/pci-host/gpex: Implement PCI INTx routing
>
> hw/arm/virt.c | 4 ++++
> hw/pci-host/gpex.c | 22 ++++++++++++++++++++++
> include/hw/pci-host/gpex.h | 3 +++
> 3 files changed, 29 insertions(+)
>