summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/105/socket/1882784
blob: a8e80a58699bee830fc1586fe71b00e97011ec09 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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