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
|
device: 0.910
graphic: 0.894
performance: 0.864
PID: 0.851
boot: 0.800
network: 0.710
semantic: 0.708
socket: 0.692
debug: 0.686
KVM: 0.683
vnc: 0.644
files: 0.644
permissions: 0.556
other: 0.208
Failed to acpi hotplug on pcie root ports in case of q35+ovmf+machine type 6.1
Description of problem:
Hotplug on multifunction bridges use ACPI hotplug instead of Native since machine type 6.1
In this case, Hotplug works well on q35 with bios fireware, But doesn't work on q35 with ovmf firmware.
E.g:
/usr/bin/qemu-system-x86_64 \
-machine pc-q35-6.1,accel=kvm,pflash0=...... \
-device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1 \
-device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x1.0x1 \
-device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x1.0x2 \
......
(qemu) netdev_add bridge,br=br0,id=hostnet1
(qemu) device_add virtio-net-pci,netdev=hostnet1,id=net1,bus=pci.3
Error message in guest kernel:
kernel: pci 0000:03:00.0: [1af4:1041] type 00 class 0x020000
kernel: pci 0000:03:00.0: reg 0x14: [mem 0x00000000-0x00000fff]
kernel: pci 0000:03:00.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref]
kernel: pci 0000:03:00.0: reg 0x30: [mem 0x00000000-0x0003ffff pref]
kernel: pci 0000:03:00.0: BAR 6: no space for [mem size 0x00040000 pref]
kernel: pci 0000:03:00.0: BAR 6: failed to assign [mem size 0x00040000 pref]
kernel: pci 0000:03:00.0: BAR 4: no space for [mem size 0x00004000 64bit pref]
kernel: pci 0000:03:00.0: BAR 4: failed to assign [mem size 0x00004000 64bit pref]
kernel: pci 0000:03:00.0: BAR 1: no space for [mem size 0x00001000]
kernel: pci 0000:03:00.0: BAR 1: failed to assign [mem size 0x00001000]
kernel: virtio-pci 0000:03:00.0: virtio_pci: leaving for legacy driver
|