Bug 1721403
Summary: | After hot unplug virtio-net and vfio nic, hot plug vfio-pci device fails in Win2019 guest | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Lei Yang <leiyang> |
Component: | qemu-kvm-rhev | Assignee: | Julia Suvorova <jsuvorov> |
Status: | CLOSED ERRATA | QA Contact: | Yanghang Liu <yanghliu> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 7.7 | CC: | ailan, chayang, jinzhao, juzhang, mrezanin, pezhang, virt-maint, yanghliu, yvugenfi |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-rhev-2.12.0-45.el7 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | 1710667 | Environment: | |
Last Closed: | 2020-08-03 07:23:25 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: | |||
Bug Depends On: | 1710667 | ||
Bug Blocks: | 1797441 |
Comment 3
Lei Yang
2019-06-18 08:48:44 UTC
Hi, I will still encounter this issue using the latest qemu-kvm-rhev version and kernel version in RHEL7.7 Version-Release number of selected component (if applicable): qemu-kvm-rhev-2.12.0-33.el7_7.5.x86_64 3.10.0-1062.4.1.el7.x86_64 virtio-win-1.9.8-6.el7.noarch How reproducible: 100% Steps to Reproduce (1)start the Win2019 guest with a virtio-net-pci device and a vfio-pci device. The qemu cmd line is as followed: /usr/libexec/qemu-kvm -name Win2019 \ -M q35,kernel-irqchip=split -m 4G \ -cpu Haswell-noTSX \ -nodefaults \ -device intel-iommu,intremap=on,caching-mode=on \ -smp 4,sockets=1,cores=4,threads=1 \ -device pcie-root-port,id=root.1,chassis=1 \ -device pcie-root-port,id=root.2,chassis=2 \ -device pcie-root-port,id=root.3,chassis=3 \ -device pcie-root-port,id=root.4,chassis=4 \ -device pcie-root-port,id=root.5,chassis=5 \ -blockdev driver=file,cache.direct=off,cache.no-flush=on,filename=/home/images/win2019.qcow2,node-name=my_file \ -drive id=drive_cd1,if=none,snapshot=off,aio=native,cache=none,media=cdrom,file=/home/images/en_windows_server_2019_x64_dvd_4cb967d8.iso \ -blockdev driver=qcow2,node-name=my,file=my_file \ -device virtio-blk-pci,drive=my,id=virtio-blk0,bus=root.1 \ -device ide-cd,id=cd1,drive=drive_cd1,bus=ide.0,unit=0 \ -drive id=drive_winutils,if=none,snapshot=off,aio=native,cache=none,media=cdrom,file=/usr/share/virtio-win/virtio-win-1.9.8.iso \ -device ide-cd,id=winutils,drive=drive_winutils,bus=ide.1,unit=0 \ -vnc :0 \ -vga qxl \ -monitor stdio \ -qmp tcp:0:5555,server,nowait \ -usb -device usb-tablet \ -boot menu=on \ -device vfio-pci,host=0000:04:00.0,id=pf,bus=root.3 \ -device virtio-net-pci,netdev=nic1,id=vnet0,mac=54:43:00:1a:11:33,bus=root.2 \ -netdev tap,id=nic1,script=/etc/qemu-ifup,vhost=on \ (2)hot unplug virtio-net-pci device hmp: (qemu) device_del vnet0 (qemu) netdev_del nic1 qmp: # telnet 10.73.73.73 5555 {"execute":"qmp_capabilities"} {"return": {}} {"execute": "device_del", "arguments": {"id": "vnet0"}} {"return": {}} {"timestamp": {"seconds": 1573566784, "microseconds": 650482}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/vnet0/virtio-backend"}} {"execute": "netdev_del", "arguments": {"id": "nic1"}} {"return": {}} (3)Hot unplug vfio-pci device hmp: (qemu) device_del pf qmp: {"execute": "device_del", "arguments": {"id": "pf"}} {"return": {}} (4)Hot plug vfio-pci device hmp: (qemu) device_add vfio-pci,host=0000:04:00.0,id=pf,bus=root.3 Duplicate ID 'pf' for device Try "help device_add" for more information qmp: {"execute": "device_add", "arguments": {"driver":"vfio-pci","host":"04:00.0","id":"pf","bus":"root.3"}} {"error": {"class": "GenericError", "desc": "Duplicate ID 'pf' for device"}} Actual results: The vfio-pci can not be hotplugged to the Win2019 guest after the Win2019 guest hotunplug a virtio-net nic and hotunplug a vfio nic, Expected results: The vfio-pci device can be hotpluged to a Win2019 guest successfully. Additional info: # lspci | grep -i 04:00.0 04:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) This BZ is solved by BZ#1708480 Verification: Versions: 3.10.0-1133.el7.x86_64 qemu-kvm-rhev-2.12.0-46.el7.x86_64 virtio-win-1.9.6-1.el7.noarch Steps: (1)start the Win2019 guest with a virtio-net-pci device and a vfio-pci device. /usr/libexec/qemu-kvm -name Win2019 \ -M q35,kernel-irqchip=split \ -m 4G \ -nodefaults \ -cpu Haswell-noTSX \ -smp 4,sockets=1,cores=4,threads=1 \ -device pcie-root-port,id=root.1,chassis=1,addr=0x2.0,multifunction=on \ -device pcie-root-port,id=root.2,chassis=2,addr=0x2.1 \ -device pcie-root-port,id=root.3,chassis=3,addr=0x2.2 \ -device pcie-root-port,id=root.4,chassis=4,addr=0x2.3 \ -device pcie-root-port,id=root.5,chassis=5,addr=0x2.4 \ -device pcie-root-port,id=root.6,chassis=6,addr=0x2.5 \ -device pcie-root-port,id=root.7,chassis=7,addr=0x2.6 \ -device pcie-root-port,id=root.8,chassis=8,addr=0x2.7 \ -device intel-iommu,intremap=on,caching-mode=on \ -blockdev driver=file,cache.direct=off,cache.no-flush=on,filename=/home/images/win2019.qcow2,node-name=my_file \ -blockdev driver=qcow2,node-name=my,file=my_file \ -device virtio-blk-pci,drive=my,id=virtio-blk0,bus=root.1 \ -drive id=drive_winutils,if=none,snapshot=off,aio=native,cache=none,media=cdrom,file=/usr/share/virtio-win/virtio-win-1.9.6.iso \ -device ide-cd,id=winutils,drive=drive_winutils,bus=ide.1,unit=0 \ -vnc :0 \ -vga qxl \ -monitor stdio \ -usb -device usb-tablet \ -boot menu=on \ -qmp tcp:0:5555,server,nowait \ -device virtio-net-pci,netdev=nic1,id=vnet0,mac=54:43:00:1a:11:33,bus=root.2 \ -netdev tap,id=nic1,script=/etc/qemu-ifup,vhost=on \ -device vfio-pci,host=0000:04:00.0,id=pf,bus=root.3 \ (2)hot unplug virtio-net-pci device qmp: # telnet 10.73.73.73 5555 {"execute":"qmp_capabilities"} {"return": {}} {"execute": "device_del", "arguments": {"id": "vnet0"}} {"return": {}} {"timestamp": {"seconds": 1586748999, "microseconds": 984905}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/vnet0/virtio-backend"}} {"timestamp": {"seconds": 1586749000, "microseconds": 43700}, "event": "DEVICE_DELETED", "data": {"device": "vnet0", "path": "/machine/peripheral/vnet0"}} {"execute": "netdev_del", "arguments": {"id": "nic1"}} {"return": {}} (3)hot unplug vfio-pci device qmp: {"execute": "device_del", "arguments": {"id": "pf"}} {"return": {}} {"timestamp": {"seconds": 1586749031, "microseconds": 847422}, "event": "DEVICE_DELETED", "data": {"device": "pf", "path": "/machine/peripheral/pf"}} (4)hot plug vfio-pci device qmp: {"execute": "device_add", "arguments": {"driver":"vfio-pci","host":"04:00.0","id":"pf","bus":"root.3"}} {"return": {}} (5)check vfio-pci device status in guest/on host The vfio-pci device can be hotpluged to a Win2019 guest successfully. According to the test result,this bug has been fixed well. According to comment 18 and comment 19 , move the bug status from MODIFIED to VERIFIED. 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. https://access.redhat.com/errata/RHSA-2020:3267 |