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(+) >