Bug 2004829
Summary: | [ovmf] The guest does not present hot-plugged disk | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | qing.wang <qinwang> | ||||
Component: | qemu-kvm | Assignee: | Gerd Hoffmann <kraxel> | ||||
qemu-kvm sub component: | virtio-blk,scsi | QA Contact: | qing.wang <qinwang> | ||||
Status: | CLOSED CURRENTRELEASE | Docs Contact: | |||||
Severity: | high | ||||||
Priority: | high | CC: | ani, coli, jinzhao, jusual, juzhang, kkiwi, kraxel, lijin, lkotek, menli, mst, phou, qzhang, virt-maint, xfu, xuwei, yanghliu, yfu, zhencliu | ||||
Version: | 9.0 | Keywords: | Regression, Triaged | ||||
Target Milestone: | rc | Flags: | kraxel:
needinfo-
|
||||
Target Release: | --- | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2022-01-20 02:18:49 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
qing.wang
2021-09-16 07:28:56 UTC
*** Bug 2004830 has been marked as a duplicate of this bug. *** Gerd, this looks important - care to take a look? I suspect that is more fallout coming from the pcie -> acpi hotplug switch. I don't see how we can fix this given that edk2 has no AML interpreter. Does it still happen with "-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off" added to the qemu command line? (In reply to Gerd Hoffmann from comment #3) > I suspect that is more fallout coming from the pcie -> acpi hotplug switch. > I don't see how we can fix this given that edk2 has no AML interpreter. > > Does it still happen with "-global > ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off" added to the qemu command > line? qemu-kvm: can't apply global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off: Property 'ICH9-LPC.acpi-pci-hotplug-with-bridge-support' not found > qemu-kvm: can't apply global
> ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off: Property
> 'ICH9-LPC.acpi-pci-hotplug-with-bridge-support' not found
Hmm? Working fine here with the version given in the initial report:
kraxel@xeni ~# rpm -q qemu-kvm
qemu-kvm-6.1.0-1.el9.x86_64
kraxel@xeni ~# /usr/libexec/qemu-kvm -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
VNC server running on ::1:5900
^Cqemu-kvm: terminating on signal 2
kraxel@xeni ~#
Please double-check.
(In reply to Gerd Hoffmann from comment #5) > > qemu-kvm: can't apply global > > ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off: Property > > 'ICH9-LPC.acpi-pci-hotplug-with-bridge-support' not found > > Hmm? Working fine here with the version given in the initial report: > > kraxel@xeni ~# rpm -q qemu-kvm > qemu-kvm-6.1.0-1.el9.x86_64 > kraxel@xeni ~# /usr/libexec/qemu-kvm -global > ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off > VNC server running on ::1:5900 > ^Cqemu-kvm: terminating on signal 2 > kraxel@xeni ~# > > Please double-check. work for very simple qemu line /usr/libexec/qemu-kvm \ -name 'avocado-vt-vm1' \ -sandbox on \ -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off \ but it still have same issue on full qemu line: /usr/libexec/qemu-kvm \ -name 'avocado-vt-vm1' \ -sandbox on \ -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off \ -blockdev node-name=file_ovmf_code,driver=file,filename=/usr/share/OVMF/OVMF_CODE.secboot.fd,auto-read-only=on,discard=unmap \ -blockdev node-name=drive_ovmf_code,driver=raw,read-only=on,file=file_ovmf_code \ -blockdev node-name=file_ovmf_vars,driver=file,filename=/home/kvm_autotest_root/images/avocado-vt-vm1_rhel850-64-virtio.qcow2_VARS.fd,auto-read-only=on,discard=unmap \ -blockdev node-name=drive_ovmf_vars,driver=raw,read-only=off,file=file_ovmf_vars \ -machine q35,memory-backend=mem-machine_mem,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars \ -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \ -device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \ -nodefaults \ -device VGA,bus=pcie.0,addr=0x2 \ -m 8g \ -object memory-backend-ram,size=8G,id=mem-machine_mem \ -smp 12,maxcpus=12,cores=6,threads=1,dies=1,sockets=2 \ -cpu 'Haswell-noTSX',+kvm_pv_unhalt \ -device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \ -device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/images/rhel850-64-virtio-ovmf.qcow2,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 \ -device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \ -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,write-cache=on,bus=pcie-root-port-2,addr=0x0 \ -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \ -device virtio-net-pci,mac=9a:1b:4e:74:10:e6,id=idIQPPEw,netdev=idANAOp6,bus=pcie-root-port-3,addr=0x0 \ -netdev tap,id=idANAOp6,vhost=on \ -vnc :5 \ -qmp tcp:0:5955,server,nowait \ -monitor stdio \ -rtc base=utc,clock=host,driftfix=slew \ -boot menu=off,order=cdn,once=c,strict=off \ -enable-kvm \ -device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=5 > work for very simple qemu line
> but it still have same issue on full qemu line:
Not reproducable here with full qemu cmd line either.
I still think your avocado runs use an older qemu binary.
The option was added in qemu 6.1, so when using a 6.0 (or older)
qemu build it'll complain the option doesn't exist.
(In reply to Gerd Hoffmann from comment #3) > I suspect that is more fallout coming from the pcie -> acpi hotplug switch. > I don't see how we can fix this given that edk2 has no AML interpreter. Essential information is only available in the DSDT (specifically which pci bridge got which bsel value). So writing a native efi driver -- talking directly to the hotplug registers instead of using the ACPI methods -- is impossible without host-side changes in qemu. Tested on Red Hat Enterprise Linux release 9.0 Beta (Plow) 5.14.0-11.el9.x86_64 qemu-kvm-6.1.0-6.el9.x86_64 seabios-bin-1.14.0-7.el9.noarch edk2-ovmf-20210527gite1999b264f1f-6.el9.noarch It does not reproduce after adding following option on VM command. -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off The question is "ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off" is necessary for the OVMF ? /usr/libexec/qemu-kvm \ -name 'avocado-vt-vm1' \ -sandbox on \ -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off \ -blockdev node-name=file_ovmf_code,driver=file,filename=/usr/share/OVMF/OVMF_CODE.secboot.fd,auto-read-only=on,discard=unmap \ -blockdev node-name=drive_ovmf_code,driver=raw,read-only=on,file=file_ovmf_code \ -blockdev node-name=file_ovmf_vars,driver=file,filename=/home/kvm_autotest_root/images/avocado-vt-vm1_rhel850-64-virtio-scsi.qcow2_VARS.fd,auto-read-only=on,discard=unmap \ -blockdev node-name=drive_ovmf_vars,driver=raw,read-only=off,file=file_ovmf_vars \ -machine q35,memory-backend=mem-machine_mem,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars \ -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \ -device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \ -nodefaults \ -device VGA,bus=pcie.0,addr=0x2 \ -m 8g \ -object memory-backend-ram,size=8G,id=mem-machine_mem \ -smp 12,maxcpus=12,cores=6,threads=1,dies=1,sockets=2 \ -cpu host,+kvm_pv_unhalt \ -device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \ -device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/images/rhel850-ovmf-64-virtio-scsi.qcow2,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 \ -device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \ -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,write-cache=on,bus=pcie-root-port-2,addr=0x0 \ -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \ -device virtio-net-pci,mac=9a:1b:4e:74:10:e6,id=idIQPPEw,netdev=idANAOp6,bus=pcie-root-port-3,addr=0x0 \ -netdev tap,id=idANAOp6,vhost=on \ -vnc :5 \ -qmp tcp:0:5955,server,nowait \ -monitor stdio \ -rtc base=utc,clock=host,driftfix=slew \ -boot menu=off,order=cdn,once=c,strict=off \ -enable-kvm \ -device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=5 > The question is "ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off" is
> necessary for the OVMF ?
That is the current state of affairs, yes.
Unlikely to change for 6.1.
The 6.2 rebase should make hotplug work
again with the default configuration.
*** Bug 2019314 has been marked as a duplicate of this bug. *** (In reply to Gerd Hoffmann from comment #10) > > The question is "ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off" is > > necessary for the OVMF ? > > That is the current state of affairs, yes. > Unlikely to change for 6.1. > > The 6.2 rebase should make hotplug work > again with the default configuration. Hi,Gerd, Do you mean it need to add "-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off \" on qemu command for 6.1 . But the option does not need to be added for qemu 6.2 or Future version? > Hi,Gerd, > Do you mean it need to add "-global > ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off \" on qemu command for 6.1 > . Yes. > But the option does not need to be added for qemu 6.2 or Future version? I hope so. (In reply to Gerd Hoffmann from comment #10) > > The question is "ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off" is > > necessary for the OVMF ? > > That is the current state of affairs, yes. > Unlikely to change for 6.1. > > The 6.2 rebase should make hotplug work > again with the default configuration. Gerd, I am curious, how is this going to be addressed in 6.2? I have not seen any discussions in the qemu-devel@ list. I am in the MAINTAINERS file for acpi/smbios subsystem. > Gerd, > I am curious, how is this going to be addressed in 6.2? I have not seen any > discussions in the qemu-devel@ list. I am in the MAINTAINERS file for > acpi/smbios subsystem. Well, there are basically two options. (1) first improve native pcie hotplug (see bug 2007129), then flip the default back to native pcie hotplug. (2) acpi people think it is possible to have both native pcie hotplug and acpi hotplug enabled and make have the guest os prefer acpi hotplug in that case somehow. no idea how this works in detail, also can't remember having seen any patches for that on qemu-devel, but this should also solve the problems we see because the firmware thinks the pcie root ports do not support hotplug. Not sure how realistic (2) is given that there are no (public) patches for this yet and we are in soft freeze already. The native pcie patches are not yet merged either, but at they are out for review for a while and QE hasn't found any issues so far. mst? I think it's reasonable to apply your patches and switch the default back for 6.2. The challenge would be to address all the compatibility things with 6.1. I did hope we can fix ACPI in 6.2 but I am not sure it is feasible at this point ... > The challenge would be to address all the compatibility things with 6.1.
Isn't that just ICH9-LPC.acpi-pci-hotplug-with-bridge-support=on for 6.1
and off for everything else?
Created attachment 1840901 [details]
patch: flip back default
Comment on attachment 1840901 [details]
patch: flip back default
could you please post this patch on the mailing list for upstream folks?
Gerd, any chance this was fixed on Qemu 6.2? Submitter, do you have any more repros with more recent builds? Not hit issue in testing as #0 on Red Hat Enterprise Linux release 8.6 Beta (Ootpa) 4.18.0-358.el8.x86_64 qemu-kvm-6.2.0-2.module+el8.6.0+13738+17338784.x86_64 seabios-bin-1.15.0-1.module+el8.6.0+13725+61ae1949.noarch edk2-ovmf-20210527gite1999b264f1f-3.el8.noarch virtio-win-prewhql-0.1-215.iso |