-
Bug
-
Resolution: Not a Bug
-
Normal
-
None
-
rhel-8.10
-
None
-
Moderate
-
rhel-sst-virtualization
-
ssg_virtualization
-
None
-
QE ack
-
False
-
-
None
-
Red Hat Enterprise Linux
-
None
-
None
-
None
-
-
x86_64
-
Linux
-
None
What were you trying to do that didn't work?
After performing ping-pong migration (in both ways) it's not possible to hotunplug any DIMM or the virtio-balloon device, either it is present in the QEMU cmd or hotplugged after migration process.
Please provide the package NVR for which bug is seen:
Test environment
RHEL 8.10 host
kernel-4.18.0-537.el8.x86_64
qemu-kvm-6.2.0-46.module+el8.10.0+21144+ad14f781
edk2-ovmf-20220126gitbb1bba3d77-8.el8.noarch
Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz
RHEL 9.4 host
kernel-5.14.0-413.el9.x86_64
qemu-kvm-8.2.0-4.el9
edk2-ovmf-20231122-3.el9.noarch
Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz
VM
RHEL 8.10 OVMF
How reproducible:
100%
Steps to reproduce
1. Boot up source and destination VMs with the following QEMU cmd[1]
2. Perform ping-pong migration. Basically consists in migrating from source to destination and then migrating back to the source host (that has became destination as it needs to be stopped and include -incoming defer option)
3. Try to unplug the existing DIMM devices or hotplug a new one and try to hotunplug it
(qemu) info migrate globals: store-global-state: on only-migratable: off send-configuration: on send-section-footer: on decompress-error-check: on clear-bitmap-shift: 18 Migration status: completed total time: 0 ms (qemu) info memory-devices Memory device [dimm]: "dimm0" addr: 0x280000000 slot: 0 node: 0 size: 8589934592 memdev: /objects/mem1 hotplugged: false hotpluggable: true Memory device [dimm]: "dimm1" addr: 0x480000000 slot: 1 node: 0 size: 2147483648 memdev: /objects/mem2 hotplugged: false hotpluggable: true (qemu) device_del dimm0 (qemu) device_del dimm1 (qemu) info memory-devices Memory device [dimm]: "dimm0" addr: 0x280000000 slot: 0 node: 0 size: 8589934592 memdev: /objects/mem1 hotplugged: false hotpluggable: true Memory device [dimm]: "dimm1" addr: 0x480000000 slot: 1 node: 0 size: 2147483648 memdev: /objects/mem2 hotplugged: false hotpluggable: true
4. For virtio-balloon try to unplug or inflate/deflate it.
{"execute": "query-balloon"} {"return": {"actual": 19327352832}} {"execute": "balloon", "arguments":{"value": 2147483648}} {"return": {}} {"execute": "device_del", "arguments": {"id": "balloon0"}} {"return": {}} {"execute": "query-balloon"} {"return": {"actual": 19327352832}}
[1]
/usr/libexec/qemu-kvm \ -name 'vm1' \ -sandbox on \ -blockdev '{"node-name": "file_ovmf_code", "driver": "file", "filename": "/usr/share/OVMF/OVMF_CODE.secboot.fd", "auto-read-only": true, "discard": "unmap"}' \ -blockdev '{"node-name": "drive_ovmf_code", "driver": "raw", "read-only": true, "file": "file_ovmf_code"}' \ -blockdev '{"node-name": "file_ovmf_vars", "driver": "file", "filename": "/mnt/shared/avocado-vt-vm1_rhel8100-64-virtio-scsi-ovmf_qcow2_filesystem_VARS.raw", "auto-read-only": true, "discard": "unmap"}' \ -blockdev '{"node-name": "drive_ovmf_vars", "driver": "raw", "read-only": false, "file": "file_ovmf_vars"}' \ -machine pc-q35-rhel8.6.0,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars,nvdimm=on \ -device '{"id": "pcie-root-port-0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x1", "chassis": 1}' \ -device '{"id": "pcie-pci-bridge-0", "driver": "pcie-pci-bridge", "addr": "0x0", "bus": "pcie-root-port-0"}' \ -nodefaults \ -nographic \ -device '{"driver": "VGA", "bus": "pcie.0", "addr": "0x2"}' \ -device pvpanic,ioport=0x505,id=id5SK4co \ -device '{"id": "pcie-root-port-1", "port": 1, "driver": "pcie-root-port", "addr": "0x1.0x1", "bus": "pcie.0", "chassis": 2}' \ -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \ -device '{"id": "pcie-root-port-3", "port": 3, "driver": "pcie-root-port", "addr": "0x1.0x3", "bus": "pcie.0", "chassis": 4}' \ -device '{"id": "pcie-root-port-4", "port": 4, "driver": "pcie-root-port", "addr": "0x1.0x4", "bus": "pcie.0", "chassis": 5}' \ -device '{"id": "pcie-root-port-5", "port": 5, "driver": "pcie-root-port", "addr": "0x1.0x5", "bus": "pcie.0", "chassis": 6}' \ -device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie.0,addr=0x3 \ -drive id=drive_image1,if=none,snapshot=off,aio=threads,cache=none,format=qcow2,file=/mnt/shared/rhel8100-64-virtio-scsi-ovmf.qcow2 \ -device scsi-hd,id=image1,drive=drive_image1 \ -device '{"driver": "virtio-net-pci", "mac": "9a:6f:c3:79:a8:58", "id": "id1XH6qg", "netdev": "idhia6GM", "bus": "pcie-root-port-3", "addr": "0x0"}' \ -netdev tap,id=idhia6GM,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown,vhost=on \ -cpu 'Icelake-Server-noTSX' \ -smp 16,sockets=2,dies=1,cores=8,threads=1 \ -m 8G,slots=20,maxmem=24G \ -object '{"qom-type":"memory-backend-ram","id":"mem0","size": 8589934592}' \ -object '{"qom-type":"memory-backend-memfd","id":"mem1","reserve":true,"size":8589934592}' \ -object '{"qom-type":"memory-backend-file","id":"mem2","mem-path":"/dev/hugepages/mem2","size":2147483648}' \ -device '{"driver":"pc-dimm","id":"dimm0","memdev":"mem1"}' \ -numa node,memdev=mem0,cpus=0-15 \ -device '{"driver":"pc-dimm","id":"dimm1","memdev":"mem2"}'\ -vnc :1 \ -rtc base=utc,clock=host,driftfix=slew \ -boot order=cdn,once=c,menu=off,strict=off \ -enable-kvm \ -monitor stdio \ -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pcie-root-port-4","addr":"0x0"}' \ -serial tcp:0:1234,server,nowait \ -monitor unix:/tmp/monitor3,server,nowait \ -qmp tcp:0:3333,server,nowait
Expected results
DIMM and virtio-balloon-pci devices to be unplugged.
Actual results
Device unplug doesn't work and for virtio-balloon the resize neither works.