Bug 1908633

Summary: [virtual network] Hot unplug rtl8139 nic issues on q35
Product: Red Hat Enterprise Linux 9 Reporter: Lei Yang <leiyang>
Component: qemu-kvmAssignee: ybendito
qemu-kvm sub component: Networking QA Contact: Lei Yang <leiyang>
Status: CLOSED CURRENTRELEASE Docs Contact:
Severity: medium    
Priority: medium CC: ailan, chayang, jinzhao, juzhang, mdean, virt-maint, ybendito, yvugenfi
Version: unspecifiedKeywords: Regression, Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-02-21 18:19:17 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:    
Bug Blocks: 1744438    

Description Lei Yang 2020-12-17 08:30:35 UTC
Description of problem:
Can not get a valid ip after hot plug/unplug rtl8139 nic on q35 machines. And when hot unplug the device, it will not disappear from the device manager, useing "scan for hardware changes", the device will disappear normally.

Version-Release number of selected component (if applicable):
qemu-kvm-5.2.0-1.module+el8.4.0+9091+650b220a.x86_64
kernel-4.18.0-262.el8.x86_64
virtio-win-prewhql-0.1-191.iso

How reproducible:
100%

Steps to Reproduce:
1.Boot a guest
/usr/libexec/qemu-kvm \
-name 'avocado-vt-vm1'  \
-sandbox on  \
-machine q35 \
-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 62464  \
-smp 16,maxcpus=16,cores=8,threads=1,dies=1,sockets=2  \
-cpu 'EPYC',hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0xfff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,+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 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
-device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-2,addr=0x0 \
-blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/images/win10-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 scsi-hd,id=image1,drive=drive_image1,write-cache=on \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
-device rtl8139,mac=9a:45:3a:24:29:0a,id=id3hq3Te,netdev=idvc6ke6,bus=pcie-root-port-3,addr=0x0  \
-netdev tap,id=idvc6ke6 \
-blockdev node-name=file_cd1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/iso/windows/winutils.iso,cache.direct=on,cache.no-flush=off \
-blockdev node-name=drive_cd1,driver=raw,read-only=on,cache.direct=on,cache.no-flush=off,file=file_cd1 \
-device scsi-cd,id=cd1,drive=drive_cd1,write-cache=on  \
-vnc :0  \
-rtc base=localtime,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 \
-monitor stdio \
-qmp tcp:0:5555,server,nowait \

2.Hot unplug device
{'execute': 'device_del', 'arguments': {'id': 'id3hq3Te'}}
{'execute': 'netdev_del', 'arguments': {'id': 'idvc6ke6'}}

3.Check the device status, it does not disappear from the device manager.


Actual results:
Hot unplug rtl8139 nic, it does not disappear from the device manager.

Expected results:
After hot unplug device,it will disappear from the device manager

Additional info:
RHEL guest works well,

Comment 1 ybendito 2020-12-17 13:13:31 UTC
I think the problem happens due to the fact that rtl8139 is not a PCIe device.
So the first question is whether RHEL should support hot plugging/unplugging of rtl8139 on q35.
Note that when/if qemu will include ACPI support for hot plug/unplug this problem will be solved.

Comment 2 Lei Yang 2021-05-10 03:01:30 UTC
Hit same issue when run the win10 guest on rhel8.5-av host.

Test Version:
qemu-kvm-6.0.0-16.module+el8.5.0+10848+2dccc46d.x86_64
kernel-4.18.0-305.3.el8.x86_64
virtio-win-prewhql-0.1-198.iso

Comment 3 Lei Yang 2021-08-09 01:38:17 UTC
Hit same issue when run the win2019 guest on rhel8.5-av host.

Test Version:
qemu-kvm-6.0.0-27.module+el8.5.0+12121+c40c8708.x86_64
kernel-4.18.0-328.el8.x86_64
virtio-win-prewhql-0.1-203.iso

Comment 4 John Ferlan 2021-09-09 12:29:45 UTC
Bulk update: Move RHEL-AV bugs to RHEL9. If necessary to resolve in RHEL8, then clone to the current RHEL8 release.

Comment 5 Lei Yang 2021-12-27 06:36:00 UTC
Hit same issue when run the win2019 guest on rhel9.0.0 host.

Test Version:
kernel-5.14.0-39.el9.x86_64
qemu-kvm-6.2.0-1.el9.x86_64
virtio-win-prewhql-0.1-215.iso