Red Hat Bugzilla – Bug 1110189
migration can not finish with 1024k 'remaining ram' left after hotunplug 4 nics
Last modified: 2014-07-23 12:18:21 EDT
This bug has been copied from bug #1074913 and has been proposed to be backported to 7.0 z-stream (EUS).
Fix included in qemu-kvm-1.5.3-60.el7_0.3
Reproduce this bug using the following version: qemu-kvm-1.5.3-60.el7.x86_64 kernel-3.10.0-128.el7.x86_64 Steps to Reproduce: 1. boot a win8-32 guest on src host /usr/libexec/qemu-kvm \ -M pc \ -cpu SandyBridge,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff \ -m 2G \ -smp 4,sockets=2,cores=2,threads=1,maxcpus=16 \ -enable-kvm \ -name win8 \ -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \ -smbios type=1,manufacturer='Red Hat',product='RHEV Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3-e63fcdb67170 \ -k en-us \ -rtc base=localtime,clock=host,driftfix=slew \ -nodefaults \ -monitor stdio \ -qmp tcp:localhost:6666,server,nowait \ -boot menu=on \ -bios /usr/share/seabios/bios.bin \ -vga cirrus \ -vnc :0 \ -drive file=/home/win8-32-virtio.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=0 \ -netdev tap,id=hostnet0,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:13:10:10,bus=pci.0,addr=0x4 \ -netdev tap,id=hostnet1,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest1 \ -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:13:10:11,bus=pci.0,addr=0x5 \ -netdev tap,id=hostnet2,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest2 \ -device virtio-net-pci,netdev=hostnet2,id=net2,mac=52:54:00:13:10:12,bus=pci.0,addr=0x6 \ -netdev tap,id=hostnet3,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest3 \ -device virtio-net-pci,netdev=hostnet3,id=net3,mac=52:54:00:13:10:13,bus=pci.0,addr=0x7 \ 2. unhotplug four nics # telnet localhost 6666 Trying ::1... Connected to localhost. Escape character is '^]'. {"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, "package": " (qemu-kvm-1.5.3-60.el7)"}, "capabilities": []}} {"execute":"qmp_capabilities"} {"return": {}} {"execute": "device_del", "arguments": {"id": "net0"}} {"return": {}} {"timestamp": {"seconds": 1403250008, "microseconds": 416150}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net0/virtio-backend"}} {"timestamp": {"seconds": 1403250008, "microseconds": 416302}, "event": "DEVICE_DELETED", "data": {"device": "net0", "path": "/machine/peripheral/net0"}} {"execute": "device_del", "arguments": {"id": "net1"}} {"return": {}} {"timestamp": {"seconds": 1403250012, "microseconds": 251351}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net1/virtio-backend"}} {"timestamp": {"seconds": 1403250012, "microseconds": 251507}, "event": "DEVICE_DELETED", "data": {"device": "net1", "path": "/machine/peripheral/net1"}} {"execute": "device_del", "arguments": {"id": "net2"}} {"return": {}} {"timestamp": {"seconds": 1403250017, "microseconds": 624422}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net2/virtio-backend"}} {"timestamp": {"seconds": 1403250017, "microseconds": 624588}, "event": "DEVICE_DELETED", "data": {"device": "net2", "path": "/machine/peripheral/net2"}} {"execute": "device_del", "arguments": {"id": "net3"}} {"return": {}} {"timestamp": {"seconds": 1403250021, "microseconds": 721016}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net3/virtio-backend"}} {"timestamp": {"seconds": 1403250021, "microseconds": 721165}, "event": "DEVICE_DELETED", "data": {"device": "net3", "path": "/machine/peripheral/net3"}} {"execute": "netdev_del", "arguments": {"id": "hostnet0"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet1"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet2"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet3"}} {"return": {}} 3. do migration (qemu) migrate -d tcp:10.66.9.152:5800 4. check migration status in src qemu-kvm Actual results: migration can not finish with 1024k 'remaining ram' left (qemu) info migrate capabilities: xbzrle: off x-rdma-pin-all: off auto-converge: off zero-blocks: off Migration status: active total time: 298815 milliseconds expected downtime: 30 milliseconds setup: 10 milliseconds transferred ram: 1346813 kbytes throughput: 41.92 mbps remaining ram: 1024 kbytes total ram: 2113872 kbytes duplicate: 388816 pages skipped: 0 pages normal: 139652 pages normal bytes: 558608 kbytes Additional info: I also test rhel7 guest, also hit this issue.
Reproduce this bug using the following version: qemu-kvm-1.5.3-64.el7.x86_64 kernel-3.10.0-128.el7.x86_64 Steps to Reproduce: 1. boot a win8-32 guest on src host /usr/libexec/qemu-kvm \ -M pc \ -cpu SandyBridge,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff \ -m 2G \ -smp 4,sockets=2,cores=2,threads=1,maxcpus=16 \ -enable-kvm \ -name win8 \ -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \ -smbios type=1,manufacturer='Red Hat',product='RHEV Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3-e63fcdb67170 \ -k en-us \ -rtc base=localtime,clock=host,driftfix=slew \ -nodefaults \ -monitor stdio \ -qmp tcp:localhost:6666,server,nowait \ -boot menu=on \ -bios /usr/share/seabios/bios.bin \ -vga cirrus \ -vnc :0 \ -drive file=/home/win8-32-virtio.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=0 \ -netdev tap,id=hostnet0,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:13:10:10,bus=pci.0,addr=0x4 \ -netdev tap,id=hostnet1,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest1 \ -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:13:10:11,bus=pci.0,addr=0x5 \ -netdev tap,id=hostnet2,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest2 \ -device virtio-net-pci,netdev=hostnet2,id=net2,mac=52:54:00:13:10:12,bus=pci.0,addr=0x6 \ -netdev tap,id=hostnet3,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest3 \ -device virtio-net-pci,netdev=hostnet3,id=net3,mac=52:54:00:13:10:13,bus=pci.0,addr=0x7 \ 2. unhotplug four nics # telnet localhost 6666 Trying ::1... Connected to localhost. Escape character is '^]'. {"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, "package": " (qemu-kvm-1.5.3-60.el7)"}, "capabilities": []}} {"execute":"qmp_capabilities"} {"return": {}} {"execute": "device_del", "arguments": {"id": "net0"}} {"return": {}} {"timestamp": {"seconds": 1403250008, "microseconds": 416150}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net0/virtio-backend"}} {"timestamp": {"seconds": 1403250008, "microseconds": 416302}, "event": "DEVICE_DELETED", "data": {"device": "net0", "path": "/machine/peripheral/net0"}} {"execute": "device_del", "arguments": {"id": "net1"}} {"return": {}} {"timestamp": {"seconds": 1403250012, "microseconds": 251351}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net1/virtio-backend"}} {"timestamp": {"seconds": 1403250012, "microseconds": 251507}, "event": "DEVICE_DELETED", "data": {"device": "net1", "path": "/machine/peripheral/net1"}} {"execute": "device_del", "arguments": {"id": "net2"}} {"return": {}} {"timestamp": {"seconds": 1403250017, "microseconds": 624422}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net2/virtio-backend"}} {"timestamp": {"seconds": 1403250017, "microseconds": 624588}, "event": "DEVICE_DELETED", "data": {"device": "net2", "path": "/machine/peripheral/net2"}} {"execute": "device_del", "arguments": {"id": "net3"}} {"return": {}} {"timestamp": {"seconds": 1403250021, "microseconds": 721016}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net3/virtio-backend"}} {"timestamp": {"seconds": 1403250021, "microseconds": 721165}, "event": "DEVICE_DELETED", "data": {"device": "net3", "path": "/machine/peripheral/net3"}} {"execute": "netdev_del", "arguments": {"id": "hostnet0"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet1"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet2"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet3"}} {"return": {}} 3. do migration (qemu) migrate -d tcp:10.66.9.152:5800 4. check migration status in src qemu-kvm Actual results: migration can finish normally, remaining ram is 0k. (qemu) info migrate capabilities: xbzrle: off x-rdma-pin-all: off auto-converge: off zero-blocks: off Migration status: completed total time: 57862 milliseconds downtime: 32 milliseconds setup: 10 milliseconds transferred ram: 663613 kbytes throughput: 98.01 mbps remaining ram: 0 kbytes total ram: 2113872 kbytes duplicate: 452422 pages skipped: 0 pages normal: 164586 pages normal bytes: 658344 kbytes (qemu) info status VM status: paused (postmigrate) Additional info: I also test the following scenarios, migration can finish normally, remaining ram is 0k. 1). boot win8-32 guest, unhotplug 5/6 nics then do migration 2). boot rhel7 guest, unhotplug 4/5/6 nics then do migration
(In reply to huiqingding from comment #6) > Reproduce this bug using the following version: > qemu-kvm-1.5.3-64.el7.x86_64 > kernel-3.10.0-128.el7.x86_64 > sorry, "Reproduce" should be "Verify" > Steps to Reproduce: should be: Steps to Verify: > 1. boot a win8-32 guest on src host > /usr/libexec/qemu-kvm \ > -M pc \ > -cpu SandyBridge,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff \ > -m 2G \ > -smp 4,sockets=2,cores=2,threads=1,maxcpus=16 \ > -enable-kvm \ > -name win8 \ > -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \ > -smbios type=1,manufacturer='Red Hat',product='RHEV > Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3- > e63fcdb67170 \ > -k en-us \ > -rtc base=localtime,clock=host,driftfix=slew \ > -nodefaults \ > -monitor stdio \ > -qmp tcp:localhost:6666,server,nowait \ > -boot menu=on \ > -bios /usr/share/seabios/bios.bin \ > -vga cirrus \ > -vnc :0 \ > -drive > file=/home/win8-32-virtio.qcow2,if=none,id=drive-virtio-disk0,format=qcow2, > cache=none,werror=stop,rerror=stop,aio=threads \ > -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0, > id=virtio-disk0,bootindex=0 \ > -netdev > tap,id=hostnet0,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest0 \ > -device > virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:13:10:10,bus=pci.0, > addr=0x4 \ > -netdev > tap,id=hostnet1,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest1 \ > -device > virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:13:10:11,bus=pci.0, > addr=0x5 \ > -netdev > tap,id=hostnet2,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest2 \ > -device > virtio-net-pci,netdev=hostnet2,id=net2,mac=52:54:00:13:10:12,bus=pci.0, > addr=0x6 \ > -netdev > tap,id=hostnet3,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest3 \ > -device > virtio-net-pci,netdev=hostnet3,id=net3,mac=52:54:00:13:10:13,bus=pci.0, > addr=0x7 \ > 2. unhotplug four nics > # telnet localhost 6666 > Trying ::1... > Connected to localhost. > Escape character is '^]'. > {"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, > "package": " (qemu-kvm-1.5.3-60.el7)"}, "capabilities": []}} > {"execute":"qmp_capabilities"} > {"return": {}} > {"execute": "device_del", "arguments": {"id": "net0"}} > {"return": {}} > {"timestamp": {"seconds": 1403250008, "microseconds": 416150}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net0/virtio-backend"}} > {"timestamp": {"seconds": 1403250008, "microseconds": 416302}, "event": > "DEVICE_DELETED", "data": {"device": "net0", "path": > "/machine/peripheral/net0"}} > {"execute": "device_del", "arguments": {"id": "net1"}} > {"return": {}} > {"timestamp": {"seconds": 1403250012, "microseconds": 251351}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net1/virtio-backend"}} > {"timestamp": {"seconds": 1403250012, "microseconds": 251507}, "event": > "DEVICE_DELETED", "data": {"device": "net1", "path": > "/machine/peripheral/net1"}} > {"execute": "device_del", "arguments": {"id": "net2"}} > {"return": {}} > {"timestamp": {"seconds": 1403250017, "microseconds": 624422}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net2/virtio-backend"}} > {"timestamp": {"seconds": 1403250017, "microseconds": 624588}, "event": > "DEVICE_DELETED", "data": {"device": "net2", "path": > "/machine/peripheral/net2"}} > {"execute": "device_del", "arguments": {"id": "net3"}} > {"return": {}} > {"timestamp": {"seconds": 1403250021, "microseconds": 721016}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net3/virtio-backend"}} > {"timestamp": {"seconds": 1403250021, "microseconds": 721165}, "event": > "DEVICE_DELETED", "data": {"device": "net3", "path": > "/machine/peripheral/net3"}} > {"execute": "netdev_del", "arguments": {"id": "hostnet0"}} > {"return": {}} > {"execute": "netdev_del", "arguments": {"id": "hostnet1"}} > {"return": {}} > {"execute": "netdev_del", "arguments": {"id": "hostnet2"}} > {"return": {}} > {"execute": "netdev_del", "arguments": {"id": "hostnet3"}} > {"return": {}} > 3. do migration > (qemu) migrate -d tcp:10.66.9.152:5800 > 4. check migration status in src qemu-kvm > > Actual results: > migration can finish normally, remaining ram is 0k. > (qemu) info migrate > capabilities: xbzrle: off x-rdma-pin-all: off auto-converge: off > zero-blocks: off > Migration status: completed > total time: 57862 milliseconds > downtime: 32 milliseconds > setup: 10 milliseconds > transferred ram: 663613 kbytes > throughput: 98.01 mbps > remaining ram: 0 kbytes > total ram: 2113872 kbytes > duplicate: 452422 pages > skipped: 0 pages > normal: 164586 pages > normal bytes: 658344 kbytes > (qemu) info status > VM status: paused (postmigrate) > > > Additional info: > I also test the following scenarios, migration can finish normally, > remaining ram is 0k. > 1). boot win8-32 guest, unhotplug 5/6 nics then do migration > 2). boot rhel7 guest, unhotplug 4/5/6 nics then do migration
(In reply to huiqingding from comment #6) > Reproduce this bug using the following version: > qemu-kvm-1.5.3-64.el7.x86_64 > kernel-3.10.0-128.el7.x86_64 > Correction: Reproduce this bug using the following version: qemu-kvm-1.5.3-60.el7_0.4.x86_64 kernel-3.10.0-128.el7.x86_64 Use the following steps, win8-32 and rhel7 guest can migration normally after hotunplug 4/5/6 nics. > Steps to Reproduce: > 1. boot a win8-32 guest on src host > /usr/libexec/qemu-kvm \ > -M pc \ > -cpu SandyBridge,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff \ > -m 2G \ > -smp 4,sockets=2,cores=2,threads=1,maxcpus=16 \ > -enable-kvm \ > -name win8 \ > -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \ > -smbios type=1,manufacturer='Red Hat',product='RHEV > Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3- > e63fcdb67170 \ > -k en-us \ > -rtc base=localtime,clock=host,driftfix=slew \ > -nodefaults \ > -monitor stdio \ > -qmp tcp:localhost:6666,server,nowait \ > -boot menu=on \ > -bios /usr/share/seabios/bios.bin \ > -vga cirrus \ > -vnc :0 \ > -drive > file=/home/win8-32-virtio.qcow2,if=none,id=drive-virtio-disk0,format=qcow2, > cache=none,werror=stop,rerror=stop,aio=threads \ > -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0, > id=virtio-disk0,bootindex=0 \ > -netdev > tap,id=hostnet0,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest0 \ > -device > virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:13:10:10,bus=pci.0, > addr=0x4 \ > -netdev > tap,id=hostnet1,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest1 \ > -device > virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:13:10:11,bus=pci.0, > addr=0x5 \ > -netdev > tap,id=hostnet2,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest2 \ > -device > virtio-net-pci,netdev=hostnet2,id=net2,mac=52:54:00:13:10:12,bus=pci.0, > addr=0x6 \ > -netdev > tap,id=hostnet3,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown, > ifname=guest3 \ > -device > virtio-net-pci,netdev=hostnet3,id=net3,mac=52:54:00:13:10:13,bus=pci.0, > addr=0x7 \ > 2. unhotplug four nics > # telnet localhost 6666 > Trying ::1... > Connected to localhost. > Escape character is '^]'. > {"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, > "package": " (qemu-kvm-1.5.3-60.el7)"}, "capabilities": []}} > {"execute":"qmp_capabilities"} > {"return": {}} > {"execute": "device_del", "arguments": {"id": "net0"}} > {"return": {}} > {"timestamp": {"seconds": 1403250008, "microseconds": 416150}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net0/virtio-backend"}} > {"timestamp": {"seconds": 1403250008, "microseconds": 416302}, "event": > "DEVICE_DELETED", "data": {"device": "net0", "path": > "/machine/peripheral/net0"}} > {"execute": "device_del", "arguments": {"id": "net1"}} > {"return": {}} > {"timestamp": {"seconds": 1403250012, "microseconds": 251351}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net1/virtio-backend"}} > {"timestamp": {"seconds": 1403250012, "microseconds": 251507}, "event": > "DEVICE_DELETED", "data": {"device": "net1", "path": > "/machine/peripheral/net1"}} > {"execute": "device_del", "arguments": {"id": "net2"}} > {"return": {}} > {"timestamp": {"seconds": 1403250017, "microseconds": 624422}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net2/virtio-backend"}} > {"timestamp": {"seconds": 1403250017, "microseconds": 624588}, "event": > "DEVICE_DELETED", "data": {"device": "net2", "path": > "/machine/peripheral/net2"}} > {"execute": "device_del", "arguments": {"id": "net3"}} > {"return": {}} > {"timestamp": {"seconds": 1403250021, "microseconds": 721016}, "event": > "DEVICE_DELETED", "data": {"path": > "/machine/peripheral/net3/virtio-backend"}} > {"timestamp": {"seconds": 1403250021, "microseconds": 721165}, "event": > "DEVICE_DELETED", "data": {"device": "net3", "path": > "/machine/peripheral/net3"}} > {"execute": "netdev_del", "arguments": {"id": "hostnet0"}} > {"return": {}} > {"execute": "netdev_del", "arguments": {"id": "hostnet1"}} > {"return": {}} > {"execute": "netdev_del", "arguments": {"id": "hostnet2"}} > {"return": {}} > {"execute": "netdev_del", "arguments": {"id": "hostnet3"}} > {"return": {}} > 3. do migration > (qemu) migrate -d tcp:10.66.9.152:5800 > 4. check migration status in src qemu-kvm > > Actual results: > migration can finish normally, remaining ram is 0k. > (qemu) info migrate > capabilities: xbzrle: off x-rdma-pin-all: off auto-converge: off > zero-blocks: off > Migration status: completed > total time: 57862 milliseconds > downtime: 32 milliseconds > setup: 10 milliseconds > transferred ram: 663613 kbytes > throughput: 98.01 mbps > remaining ram: 0 kbytes > total ram: 2113872 kbytes > duplicate: 452422 pages > skipped: 0 pages > normal: 164586 pages > normal bytes: 658344 kbytes > (qemu) info status > VM status: paused (postmigrate) > > > Additional info: > I also test the following scenarios, migration can finish normally, > remaining ram is 0k. > 1). boot win8-32 guest, unhotplug 5/6 nics then do migration > 2). boot rhel7 guest, unhotplug 4/5/6 nics then do migration
Please ignore comment8. The following is the verification steps. Verify this bug using the following version: qemu-kvm-1.5.3-60.el7_0.4.x86_64 kernel-3.10.0-128.el7.x86_64 Steps to Verify: 1. boot a win8-32 guest on src host /usr/libexec/qemu-kvm \ -M pc \ -cpu SandyBridge,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff \ -m 2G \ -smp 4,sockets=2,cores=2,threads=1,maxcpus=16 \ -enable-kvm \ -name win8 \ -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \ -smbios type=1,manufacturer='Red Hat',product='RHEV Hypervisor',version=el6,serial=koTUXQrb,uuid=feebc8fd-f8b0-4e75-abc3-e63fcdb67170 \ -k en-us \ -rtc base=localtime,clock=host,driftfix=slew \ -nodefaults \ -monitor stdio \ -qmp tcp:localhost:6666,server,nowait \ -boot menu=on \ -bios /usr/share/seabios/bios.bin \ -vga cirrus \ -vnc :0 \ -drive file=/home/win8-32-virtio.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=threads \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=0 \ -netdev tap,id=hostnet0,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:13:10:10,bus=pci.0,addr=0x4 \ -netdev tap,id=hostnet1,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest1 \ -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:13:10:11,bus=pci.0,addr=0x5 \ -netdev tap,id=hostnet2,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest2 \ -device virtio-net-pci,netdev=hostnet2,id=net2,mac=52:54:00:13:10:12,bus=pci.0,addr=0x6 \ -netdev tap,id=hostnet3,vhost=on,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,ifname=guest3 \ -device virtio-net-pci,netdev=hostnet3,id=net3,mac=52:54:00:13:10:13,bus=pci.0,addr=0x7 \ 2. unhotplug four nics # telnet localhost 6666 Trying ::1... Connected to localhost. Escape character is '^]'. {"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, "package": " (qemu-kvm-1.5.3-60.el7)"}, "capabilities": []}} {"execute":"qmp_capabilities"} {"return": {}} {"execute": "device_del", "arguments": {"id": "net0"}} {"return": {}} {"timestamp": {"seconds": 1403250008, "microseconds": 416150}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net0/virtio-backend"}} {"timestamp": {"seconds": 1403250008, "microseconds": 416302}, "event": "DEVICE_DELETED", "data": {"device": "net0", "path": "/machine/peripheral/net0"}} {"execute": "device_del", "arguments": {"id": "net1"}} {"return": {}} {"timestamp": {"seconds": 1403250012, "microseconds": 251351}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net1/virtio-backend"}} {"timestamp": {"seconds": 1403250012, "microseconds": 251507}, "event": "DEVICE_DELETED", "data": {"device": "net1", "path": "/machine/peripheral/net1"}} {"execute": "device_del", "arguments": {"id": "net2"}} {"return": {}} {"timestamp": {"seconds": 1403250017, "microseconds": 624422}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net2/virtio-backend"}} {"timestamp": {"seconds": 1403250017, "microseconds": 624588}, "event": "DEVICE_DELETED", "data": {"device": "net2", "path": "/machine/peripheral/net2"}} {"execute": "device_del", "arguments": {"id": "net3"}} {"return": {}} {"timestamp": {"seconds": 1403250021, "microseconds": 721016}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/net3/virtio-backend"}} {"timestamp": {"seconds": 1403250021, "microseconds": 721165}, "event": "DEVICE_DELETED", "data": {"device": "net3", "path": "/machine/peripheral/net3"}} {"execute": "netdev_del", "arguments": {"id": "hostnet0"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet1"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet2"}} {"return": {}} {"execute": "netdev_del", "arguments": {"id": "hostnet3"}} {"return": {}} 3. do migration (qemu) migrate -d tcp:10.66.9.152:5800 4. check migration status in src qemu-kvm Actual results: migration can finish normally, remaining ram is 0k. (qemu) info migrate capabilities: xbzrle: off x-rdma-pin-all: off auto-converge: off zero-blocks: off Migration status: completed total time: 57862 milliseconds downtime: 32 milliseconds setup: 10 milliseconds transferred ram: 663613 kbytes throughput: 98.01 mbps remaining ram: 0 kbytes total ram: 2113872 kbytes duplicate: 452422 pages skipped: 0 pages normal: 164586 pages normal bytes: 658344 kbytes (qemu) info status VM status: paused (postmigrate) Additional info: I also test the following scenarios, migration can finish normally, remaining ram is 0k. 1). boot win8-32 guest, unhotplug 5/6 nics then do migration 2). boot rhel7 guest, unhotplug 4/5/6 nics then do migration
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. http://rhn.redhat.com/errata/RHSA-2014-0927.html