Bug 1460957 - Implement INTx to GSI routing on ARM virt
Implement INTx to GSI routing on ARM virt
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-ma (Show other bugs)
aarch64 Linux
medium Severity medium
: rc
: ---
Assigned To: Eric Auger
Virtualization Bugs
: OtherQA
Depends On:
Blocks: 1173755
  Show dependency treegraph
Reported: 2017-06-13 04:55 EDT by Eric Auger
Modified: 2018-04-10 10:50 EDT (History)
13 users (show)

See Also:
Fixed In Version: qemu-kvm-ma-2.10.0-5.el7
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2018-04-10 10:50:48 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Eric Auger 2017-06-13 04:55:37 EDT
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 with INTx interrupts and VFIO handlers are executed on userspace leading to an important performance degradation.

This is witnessed by the following message;

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)

2 patches were submitted a while ago on the ML but have never been upstreamed (https://patchwork.kernel.org/patch/8165031/).

- Generic PCIe host bridge INTx determination for INTx routing
- Add a function to determine interrupt number for INTx routing

This is time to respin & complete the work.
Comment 2 Eric Auger 2017-06-14 09:59:12 EDT
Better to make it for rhel-7.4 if it is possible.
Comment 10 Miroslav Rezanina 2017-11-08 12:57:50 EST
Fix included in qemu-kvm-ma-2.10.0-5.el7
Comment 17 errata-xmlrpc 2018-04-10 10:50:48 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.