diff options
Diffstat (limited to 'results/classifier/105/socket/1882784')
| -rw-r--r-- | results/classifier/105/socket/1882784 | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/results/classifier/105/socket/1882784 b/results/classifier/105/socket/1882784 new file mode 100644 index 000000000..a8e80a586 --- /dev/null +++ b/results/classifier/105/socket/1882784 @@ -0,0 +1,78 @@ +socket: 0.820 +network: 0.799 +device: 0.762 +graphic: 0.751 +instruction: 0.748 +vnc: 0.741 +boot: 0.735 +assembly: 0.703 +other: 0.703 +KVM: 0.671 +mistranslation: 0.668 +semantic: 0.630 + +Legacy IGD passthrough in QEMU 5 disabled + +Bug with tag v5.0.0, or commit fdd76fecdde1ad444ff4deb7f1c4f7e4a1ef97d6 + +As of QEMU 5 Legacy IGD PT is no longer working. + +Host is a Xeon E3-1226 v3 and my method to test is to run the following: + +./qemu-system-x86_64 \ + -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1f' \ + -device 'vfio-pci,host=00:02.0,addr=02.0' \ + -L '/usr/share/kvm' \ + -nographic \ + -vga none \ + -nodefaults + +in the hope of seeing a "IGD device 0000:00:02.0 cannot support legacy mode due to existing devices at address 1f.0" error. + +The culprit appears to be this commit: + +https://github.com/qemu/qemu/commit/29d62771c81d8fd244a67c14a1d968c268d3fb19 + +Specifically the following block in pci-quirks.c: + +#ifdef CONFIG_VFIO_IGD + vfio_probe_igd_bar4_quirk(vdev, nr); +#endif + +as the kconfig variable CONFIG_VFIO_IGD doesn't appear to be available outside of makefiles as described here: https://qemu.weilnetz.de/doc/devel/kconfig.html. I can confirm that the igd code is being pulled in as removing this check, as would defining the variable I presume, makes Legacy IGD PT work again (ie I see the expected "existing devices" error). + +I first spotted this in Proxmox, but have confirmed the bug by building QEMU sources. + +Hi! That info in kconfig.html is not up to date anymore, we are generating now #defines for the Kconfig switches. And in my build tree, I can see: + +$ grep CONFIG_VFIO_IGD *-softmmu/*.h +x86_64-softmmu/config-devices.h:#define CONFIG_VFIO_IGD 1 + +... what's missing in that file is simply a "#include "config-devices.h" ... sorry, that fell somehow through the cracks. I'll prepare a patch for that. + +Looks similar to https://bugs.launchpad.net/qemu/+bug/1879175 + +Looks the same, although the title was misleading so I missed it. + +@Thomas, I used the same patch and verified that it works (I know you don't pick up patches here but I presume you have your own): + +diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c +index 2d348f8237..a633df965e 100644 +--- a/hw/vfio/pci-quirks.c ++++ b/hw/vfio/pci-quirks.c +@@ -25,6 +25,7 @@ + #include "hw/qdev-properties.h" + #include "pci.h" + #include "trace.h" ++#include "config-devices.h" + + /* + * List of device ids/vendor ids for which to disable + + +Patch is on the list now: +https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg02567.html + +Patch has been included: +https://git.qemu.org/?p=qemu.git;a=commitdiff;h=643a4eacef87a318c + |