Bug 1357765

Summary: windows10 guest hangs after migration
Product: Red Hat Enterprise Linux 7 Reporter: yduan
Component: qemu-kvm-rhevAssignee: Amit Shah <amit.shah>
Status: CLOSED DUPLICATE QA Contact: Qianqian Zhu <qizhu>
Severity: high Docs Contact:
Priority: high    
Version: 7.3CC: amit.shah, chayang, dgilbert, jasowang, jinzhao, juzhang, knoel, mst, pezhang, qizhu, quintela, virt-maint, xfu, yduan
Target Milestone: rc   
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: 2016-09-27 11:25:31 UTC Type: Bug
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 Flags
destination guest hangs
none
Not reproducible with '-machine pc' machine type none

Description yduan 2016-07-19 06:15:47 UTC
Created attachment 1181414 [details]
destination guest hangs

Description of problem:
After migration completed, windows10 guest hangs with no any error prompt.

Version-Release number of selected component (if applicable):
Host:
  kernel: 3.10.0-469.el7.x86_64
  qemu-kvm-rhev-2.6.0-13.el7.x86_64
Guest:
  windows 10

How reproducible:
100%

Steps to Reproduce:
1.Start VM with following commands:
/usr/libexec/qemu-kvm \
 -S \
 -name 'rhel7.3' \
 -machine q35,accel=kvm,vmport=off \
 -m 4096 \
 -smp 4,maxcpus=4,sockets=1,cores=2,threads=2 \
 -cpu SandyBridge,enforce \
 -rtc base=localtime,clock=host,driftfix=slew \
 -nodefaults \
 -vga qxl \
 -device AC97,bus=pcie.0 \
 -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmpmonitor1-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_qmpmonitor1,mode=control \
 -chardev socket,id=qmp_id_catch_monitor,path=/tmp/monitor-catch_monitor-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_catch_monitor,mode=control \
 -device pvpanic,ioport=0x505,id=idSWJ5gV \
 -chardev socket,id=serial_id_serial0,path=/tmp/serial-serial0-20151214-111528-C6FB1EaX,server,nowait \
 -device isa-serial,chardev=serial_id_serial0 \
 -chardev socket,id=seabioslog_log,path=/tmp/seabios-log,server,nowait \
 -device isa-debugcon,chardev=seabioslog_log,iobase=0x402 \
 -device ich9-usb-ehci1,id=usb1,addr=1d.7,multifunction=on,bus=pcie.0 \
 -device ich9-usb-uhci1,id=usb1.0,multifunction=on,masterbus=usb1.0,addr=1d.0,firstport=0,bus=pcie.0 \
 -device ich9-usb-uhci2,id=usb1.1,multifunction=on,masterbus=usb1.0,addr=1d.2,firstport=2,bus=pcie.0 \
 -device ich9-usb-uhci3,id=usb1.2,multifunction=on,masterbus=usb1.0,addr=1d.4,firstport=4,bus=pcie.0 \
 -device usb-tablet,id=usb-tablet1 \
 -boot menu=on \
 -enable-kvm \
 -monitor stdio \
 -spice port=5900,disable-ticketing \
 -qmp tcp:0:9999,server,nowait \
 -drive file=/home/win10-seabios-sysdisk.qcow2,format=qcow2,id=drive_sysdisk,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device ide-drive,drive=drive_sysdisk,bus=ide.0,id=device_sysdisk,bootindex=0,physical_block_size=4096,logical_block_size=512 \
 -netdev tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
 -device virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,bus=pcie.0 \
 -device ioh3420,bus=pcie.0,id=root.0,slot=0 \
 -device virtio-scsi-pci,bus=root.0,id=scsi_pci_bus,disable-legacy=on,disable-modern=off \
 -drive file=/home/datadisk5G.qcow2,format=qcow2,id=drive_datadisk5G,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_datadisk5G,bus=scsi_pci_bus.0,id=device_datadisk5G,physical_block_size=4096,logical_block_size=4096 \
 -drive file=/home/cdimg.iso,if=none,media=cdrom,id=drive_cd,readonly=on \
 -device scsi-cd,bus=scsi_pci_bus.0,drive=drive_cd,id=device_cd \
 -device ioh3420,bus=pcie.0,id=root.1,slot=1 \
 -device ioh3420,bus=pcie.0,id=root.2,slot=2 \
 -device x3130-upstream,bus=root.2,id=upstream0 \
 -device xio3130-downstream,bus=upstream0,id=downstream0,chassis=1 \
 -device xio3130-downstream,bus=upstream0,id=downstream1,chassis=2 \
 -device virtio-scsi-pci,bus=downstream0,id=scsi_pci_bus0 \
 -drive file=/home/backup/en_windows_10_enterprise_version_1511_updated_feb_2016_x64_dvd_8378876.iso,if=none,media=cdrom,id=drive_syscd,readonly=on,format=raw \
 -device scsi-disk,bus=scsi_pci_bus0.0,drive=drive_syscd,id=device_syscd,bootindex=1 \
 -device virtio-scsi-pci,bus=downstream1,id=scsi_pci_bus1,disable-legacy=on,disable-modern=off \
 -drive file=/home/datadisk2G.qcow2,format=qcow2,id=drive_datadisk2G,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_datadisk2G,bus=scsi_pci_bus1.0,id=device_datadisk2G,physical_block_size=512,logical_block_size=512 \

2.Boot the guest on destination host with incoming option:
/usr/libexec/qemu-kvm \
 -S \
 -name 'rhel7.3' \
 -machine q35,accel=kvm,vmport=off \
 -m 4096 \
 -smp 4,maxcpus=4,sockets=1,cores=2,threads=2 \
 -cpu SandyBridge,enforce \
 -rtc base=localtime,clock=host,driftfix=slew \
 -nodefaults \
 -vga qxl \
 -device AC97,bus=pcie.0 \
 -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmpmonitor1-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_qmpmonitor1,mode=control \
 -chardev socket,id=qmp_id_catch_monitor,path=/tmp/monitor-catch_monitor-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_catch_monitor,mode=control \
 -device pvpanic,ioport=0x505,id=idSWJ5gV \
 -chardev socket,id=serial_id_serial0,path=/tmp/serial-serial0-20151214-111528-C6FB1EaX,server,nowait \
 -device isa-serial,chardev=serial_id_serial0 \
 -chardev socket,id=seabioslog_log,path=/tmp/seabios-log,server,nowait \
 -device isa-debugcon,chardev=seabioslog_log,iobase=0x402 \
 -device ich9-usb-ehci1,id=usb1,addr=1d.7,multifunction=on,bus=pcie.0 \
 -device ich9-usb-uhci1,id=usb1.0,multifunction=on,masterbus=usb1.0,addr=1d.0,firstport=0,bus=pcie.0 \
 -device ich9-usb-uhci2,id=usb1.1,multifunction=on,masterbus=usb1.0,addr=1d.2,firstport=2,bus=pcie.0 \
 -device ich9-usb-uhci3,id=usb1.2,multifunction=on,masterbus=usb1.0,addr=1d.4,firstport=4,bus=pcie.0 \
 -device usb-tablet,id=usb-tablet1 \
 -boot menu=on \
 -enable-kvm \
 -monitor stdio \
 -spice port=5800,disable-ticketing \
 -qmp tcp:0:8888,server,nowait \
 -drive file=/home/win10-seabios-sysdisk.qcow2,format=qcow2,id=drive_sysdisk,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device ide-drive,drive=drive_sysdisk,bus=ide.0,id=device_sysdisk,bootindex=0,physical_block_size=4096,logical_block_size=512 \
 -netdev tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
 -device virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,bus=pcie.0 \
 -device ioh3420,bus=pcie.0,id=root.0,slot=0 \
 -device virtio-scsi-pci,bus=root.0,id=scsi_pci_bus,disable-legacy=on,disable-modern=off \
 -drive file=/home/datadisk5G.qcow2,format=qcow2,id=drive_datadisk5G,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_datadisk5G,bus=scsi_pci_bus.0,id=device_datadisk5G,physical_block_size=4096,logical_block_size=4096 \
 -drive file=/home/cdimg.iso,if=none,media=cdrom,id=drive_cd,readonly=on \
 -device scsi-cd,bus=scsi_pci_bus.0,drive=drive_cd,id=device_cd \
 -device ioh3420,bus=pcie.0,id=root.1,slot=1 \
 -device ioh3420,bus=pcie.0,id=root.2,slot=2 \
 -device x3130-upstream,bus=root.2,id=upstream0 \
 -device xio3130-downstream,bus=upstream0,id=downstream0,chassis=1 \
 -device xio3130-downstream,bus=upstream0,id=downstream1,chassis=2 \
 -device virtio-scsi-pci,bus=downstream0,id=scsi_pci_bus0 \
 -drive file=/home/backup/en_windows_10_enterprise_version_1511_updated_feb_2016_x64_dvd_8378876.iso,if=none,media=cdrom,id=drive_syscd,readonly=on,format=raw \
 -device scsi-disk,bus=scsi_pci_bus0.0,drive=drive_syscd,id=device_syscd,bootindex=1 \
 -device virtio-scsi-pci,bus=downstream1,id=scsi_pci_bus1,disable-legacy=on,disable-modern=off \
 -drive file=/home/datadisk2G.qcow2,format=qcow2,id=drive_datadisk2G,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_datadisk2G,bus=scsi_pci_bus1.0,id=device_datadisk2G,physical_block_size=512,logical_block_size=512 \
 -incoming tcp:0:1234

3.Migrate to the destination:
{"execute": "migrate","arguments":{"uri": "tcp:0:1234"}}

Actual results:
In source HMP:
(qemu) info migrate
capabilities: xbzrle: off rdma-pin-all: off auto-converge: off zero-blocks: off compress: off events: off postcopy-ram: off 
Migration status: completed
total time: 103948 milliseconds
downtime: 14 milliseconds
setup: 17 milliseconds
transferred ram: 3414497 kbytes
throughput: 269.11 mbps
remaining ram: 0 kbytes
total ram: 4326224 kbytes
duplicate: 793549 pages
skipped: 0 pages
normal: 850218 pages
normal bytes: 3400872 kbytes
dirty sync count: 25
(qemu) 
(qemu) info status
VM status: paused (postmigrate)

In dest HMP:
(qemu) info status
VM status: running

When migration is completed, destination guest hangs as attachment.

Expected results:
Destination guest should work after migration.

Additional info:
With qemu-kvm-rhev-2.3.0-31.el7_2.18.x86_64
(qemu) migrate -d tcp:0:1234
migrate: State blocked by non-migratable device '0000:00:1f.2/ich9_ahci'

Comment 2 yduan 2016-07-25 07:56:54 UTC
Additional info:
  Not reproducible with '-machine pc' machine type.
  CMD is as attachment.

Comment 3 yduan 2016-07-25 07:57:38 UTC
Created attachment 1183613 [details]
Not reproducible with '-machine pc' machine type

Comment 4 Amit Shah 2016-08-03 07:33:47 UTC
Can you please try with the latest qemu-kvm-rhev?

Also, let me know if it reproduces - I'd like access to your test systems.

Comment 6 yduan 2016-08-04 07:21:23 UTC
Migration succeed when without CMD below:

 -netdev tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
 -device virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,bus=pcie.0 \

Comment 7 Dr. David Alan Gilbert 2016-08-04 08:16:30 UTC
(In reply to yduan from comment #6)
> Migration succeed when without CMD below:
> 
>  -netdev
> tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
>  -device
> virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,
> bus=pcie.0 \


It might be worth trying just changing that to vhost=off ?

Dave

Comment 8 Amit Shah 2016-08-11 07:01:22 UTC
(In reply to yduan from comment #6)
> Migration succeed when without CMD below:
> 
>  -netdev
> tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
>  -device
> virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,
> bus=pcie.0 \

Thanks for digging into this!

Can you please try vhost=off as Dave mentions above?

Michael, Jason, are you aware of any virtio or vhost related regressions that should be backported?

Comment 9 yduan 2016-08-12 01:05:35 UTC
(In reply to Amit Shah from comment #8)
> (In reply to yduan from comment #6)
> > Migration succeed when without CMD below:
> > 
> >  -netdev
> > tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
> >  -device
> > virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,
> > bus=pcie.0 \
> 
> Can you please try vhost=off as Dave mentions above?
> 

Using the latest qemu-kvm-rhev, the destination qemu monitor quits with following prompts as soon as migration starts in the source, no matter what "vhost" is set ("on" or "off").

(qemu) qemu-kvm: Missing section footer for 0000:00:03.0/virtio-net
qemu-kvm: load of migration failed: Invalid argument
red_channel_client_disconnect_dummy: rcc=0x7f908f903000 (channel=0x7f90918ec260 type=5 id=0)
snd_channel_put: SndChannel=0x7f909129a000 freed
red_channel_client_disconnect_dummy: rcc=0x7f90915e0000 (channel=0x7f90918ec100 type=6 id=0)
snd_channel_put: SndChannel=0x7f90902dc000 freed
red_channel_client_disconnect: rcc=0x7f9091252000 (channel=0x7f908fd26c00 type=2 id=0)
qemu-kvm: network script /etc/ifdown_script failed with status 256
red_channel_client_disconnect: rcc=0x7f9090112000 (channel=0x7f90900bfb80 type=4 id=0)


[root@dhcp-9-49 backup]# uname -r
3.10.0-489.el7.x86_64
[root@dhcp-9-49 backup]# rpm -q qemu-kvm-rhev
qemu-kvm-rhev-2.6.0-20.el7.x86_64

Comment 10 jason wang 2016-08-12 01:42:21 UTC
(In reply to Amit Shah from comment #8)
> (In reply to yduan from comment #6)
> > Migration succeed when without CMD below:
> > 
> >  -netdev
> > tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
> >  -device
> > virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,
> > bus=pcie.0 \
> 
> Thanks for digging into this!
> 
> Can you please try vhost=off as Dave mentions above?
> 
> Michael, Jason, are you aware of any virtio or vhost related regressions
> that should be backported?

Seems not.

Comment 11 Michael S. Tsirkin 2016-08-12 01:44:32 UTC
No - how about disabling the modern interface and using the legacy one?
Does this work around the issue?

Comment 12 yduan 2016-08-12 02:02:18 UTC
(In reply to Michael S. Tsirkin from comment #11)
> No - how about disabling the modern interface and using the legacy one?
> Does this work around the issue?

There is no difference without "disable-legacy=on,disable-modern=off".

(qemu) qemu-kvm: Missing section footer for 0000:00:03.0/virtio-net
qemu-kvm: load of migration failed: Invalid argument
red_channel_client_disconnect_dummy: rcc=0x7f4efdc53000 (channel=0x7f4effc3c260 type=5 id=0)
snd_channel_put: SndChannel=0x7f4efe79e000 freed
red_channel_client_disconnect_dummy: rcc=0x7f4eff7a6000 (channel=0x7f4effc3c100 type=6 id=0)
snd_channel_put: SndChannel=0x7f4efe5c8000 freed
red_channel_client_disconnect: rcc=0x7f4eff9e4000 (channel=0x7f4efe076c00 type=2 id=0)
red_channel_client_disconnect: rcc=0x7f4eff616000 (channel=0x7f4efe40fb80 type=4 id=0)
qemu-kvm: network script /etc/ifdown_script failed with status 256

[root@dhcp-9-49 backup]# uname -r
3.10.0-489.el7.x86_64
[root@dhcp-9-49 backup]# rpm -q qemu-kvm-rhev
qemu-kvm-rhev-2.6.0-20.el7.x86_64

Comment 14 Dr. David Alan Gilbert 2016-08-12 16:00:44 UTC
I think the problem here could be due to us missing two backports, so can you please try:

https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11568745

Michael, Jason, this has the following two commits added:
62cee1a28aada2cce4b0e1fb835d8fc830aed7ac 
6c6668232e71b7cf7ff39fa1a7abf660c40f9cea

Comment 15 yduan 2016-08-15 06:05:58 UTC
(In reply to Dr. David Alan Gilbert from comment #14)
> I think the problem here could be due to us missing two backports, so can
> you please try:
> 
> https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11568745
> 

virtio-win-prewhql-0.1-125
# uname -r
3.10.0-489.el7.x86_64
# rpm -q qemu-kvm-rhev
qemu-kvm-rhev-2.6.0-20.el7.1365747a.x86_64

After migration completed, windows10 guest hangs with no any error prompt.

Comment 17 yduan 2016-08-15 07:14:06 UTC
# uname -r
3.10.0-489.el7.x86_64
# rpm -q qemu-kvm-rhev
**qemu-kvm-rhev-2.6.0-20.el7.1365747a.x86_64**

Migration succeeds after updating network adapter driver to latest **virtio-win-prewhql-0.1-126**.

Comment 18 Dr. David Alan Gilbert 2016-08-15 08:07:07 UTC
(In reply to yduan from comment #17)
> # uname -r
> 3.10.0-489.el7.x86_64
> # rpm -q qemu-kvm-rhev
> **qemu-kvm-rhev-2.6.0-20.el7.1365747a.x86_64**
> 
> Migration succeeds after updating network adapter driver to latest
> **virtio-win-prewhql-0.1-126**.

Do you know exactly which version you had previously?

Comment 19 yduan 2016-08-15 09:41:05 UTC
(In reply to Dr. David Alan Gilbert from comment #18)
> (In reply to yduan from comment #17)
> > # uname -r
> > 3.10.0-489.el7.x86_64
> > # rpm -q qemu-kvm-rhev
> > **qemu-kvm-rhev-2.6.0-20.el7.1365747a.x86_64**
> > 
> > Migration succeeds after updating network adapter driver to latest
> > **virtio-win-prewhql-0.1-126**.
> 
> Do you know exactly which version you had previously?

I think you are asking for virtio-win version.

As metioned in comment 15, it is virtio-win-prewhql-0.1-125.

Comment 20 Dr. David Alan Gilbert 2016-08-16 11:48:17 UTC
OK, that set of fixes that was in that test brew are in qemu-kvm-rhev-2.6.0-21.el7, so if that works in combination with the -126 driver then I think it's probably worth closing this, however please run the test a few times since I suspect we might have more intermittent bugs.

Comment 21 yduan 2016-08-17 08:38:55 UTC
# uname -r
3.10.0-492.el7.x86_64
# rpm -q qemu-kvm-rhev
qemu-kvm-rhev-2.6.0-21.el7.x86_64

virtio-win-prewhql-0.1-126

It is not reproducible when windows 10 guest is installed from en_windows_10_enterprise_version_1511_updated_apr_2016_x64_dvd_8711771.iso (ISO link: http://tree.englab.nay.redhat.com/pub/windows/win10/en_windows_10_enterprise_version_1511_updated_apr_2016_x64_dvd_8711771.iso).

It is reproducible when windows 10 guest is installed from en_windows_10_enterprise_version_1607_updated_jul_2016_x64_dvd_9054264.iso (ISO link: http://tree.englab.nay.redhat.com/pub/windows/win10/en_windows_10_enterprise_version_1607_updated_jul_2016_x64_dvd_9054264.iso).

CMD:
/usr/libexec/qemu-kvm \
 -S \
 -name 'rhel7.3' \
 -machine q35,accel=kvm,vmport=off \
 -m 4096 \
 -smp 4,maxcpus=4,sockets=1,cores=2,threads=2 \
 -cpu SandyBridge,enforce \
 -rtc base=localtime,clock=host,driftfix=slew \
 -nodefaults \
 -vga qxl \
 -device AC97,bus=pcie.0 \
 -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmpmonitor1-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_qmpmonitor1,mode=control \
 -chardev socket,id=qmp_id_catch_monitor,path=/tmp/monitor-catch_monitor-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_catch_monitor,mode=control \
 -device pvpanic,ioport=0x505,id=idSWJ5gV \
 -chardev socket,id=serial_id_serial0,path=/tmp/serial-serial0-20151214-111528-C6FB1EaX,server,nowait \
 -device isa-serial,chardev=serial_id_serial0 \
 -chardev socket,id=seabioslog_log,path=/tmp/seabios-log,server,nowait \
 -device isa-debugcon,chardev=seabioslog_log,iobase=0x402 \
 -device ich9-usb-ehci1,id=usb1,addr=1d.7,multifunction=on,bus=pcie.0 \
 -device ich9-usb-uhci1,id=usb1.0,multifunction=on,masterbus=usb1.0,addr=1d.0,firstport=0,bus=pcie.0 \
 -device ich9-usb-uhci2,id=usb1.1,multifunction=on,masterbus=usb1.0,addr=1d.2,firstport=2,bus=pcie.0 \
 -device ich9-usb-uhci3,id=usb1.2,multifunction=on,masterbus=usb1.0,addr=1d.4,firstport=4,bus=pcie.0 \
 -device usb-tablet,id=usb-tablet1 \
 -boot menu=on \
 -enable-kvm \
 -monitor stdio \
 -spice port=5900,disable-ticketing \
 -qmp tcp:0:9999,server,nowait \
 -netdev tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
 -device virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,bus=pcie.0 \
 -drive file=/home/backup/virtio-win-prewhql-0.1-126.iso,if=none,media=cdrom,id=drive_wincd,readonly=on,format=raw \
 -device ide-cd,bus=ide.0,drive=drive_wincd,id=device_wincd \
 -device ioh3420,bus=pcie.0,id=root.0,slot=0 \
 -device ioh3420,bus=pcie.0,id=root.1,slot=1 \
 -device ioh3420,bus=pcie.0,id=root.2,slot=2 \
 -device x3130-upstream,bus=root.2,id=upstream0 \
 -device xio3130-downstream,bus=upstream0,id=downstream0,chassis=1 \
 -device xio3130-downstream,bus=upstream0,id=downstream1,chassis=2 \
 -device virtio-scsi-pci,bus=downstream0,id=scsi_pci_bus0,disable-legacy=on,disable-modern=off \
 -drive file=/home/sysdisk.qcow2,format=qcow2,id=drive_sysdisk,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_sysdisk,bus=scsi_pci_bus0.0,id=device_sysdisk,bootindex=0,physical_block_size=4096,logical_block_size=512 \
 -drive file=/home/backup/en_windows_10_enterprise_version_1511_updated_apr_2016_x64_dvd_8711771.iso,if=none,media=cdrom,id=drive_syscd,readonly=on,format=raw \
 -device scsi-disk,bus=scsi_pci_bus0.0,drive=drive_syscd,id=device_syscd,bootindex=1 \

Comment 22 yduan 2016-08-25 09:59:37 UTC
I met this issue both "q35" and "pc" recently, so i retry two cases here.

virtio-win-prewhql-0.1-126
# uname -r
3.10.0-492.el7.x86_64
# rpm -q qemu-kvm-rhev
qemu-kvm-rhev-2.6.0-22.el7.x86_64

Description of problem:
After migration completed, windows10 guest hangs with no any error prompt.

Q35 How reproducible:
2/2

PC How reproducible:
2/2

Q35 CMD:
/usr/libexec/qemu-kvm \
 -S \
 -name 'Win10-x64' \
 -machine q35,accel=kvm,vmport=off \
 -m 4096 \
 -smp 4,maxcpus=4,sockets=1,cores=4,threads=1 \
 -cpu Opteron_G5,enforce \
 -rtc base=localtime,clock=host,driftfix=slew \
 -nodefaults \
 -vga qxl \
 -device AC97,bus=pcie.0 \
 -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmpmonitor1-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_qmpmonitor1,mode=control \
 -chardev socket,id=qmp_id_catch_monitor,path=/tmp/monitor-catch_monitor-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_catch_monitor,mode=control \
 -device pvpanic,ioport=0x505,id=idSWJ5gV \
 -chardev socket,id=serial_id_serial0,path=/tmp/serial-serial0-20151214-111528-C6FB1EaX,server,nowait \
 -device isa-serial,chardev=serial_id_serial0 \
 -chardev socket,id=seabioslog_log,path=/tmp/seabios-log,server,nowait \
 -device isa-debugcon,chardev=seabioslog_log,iobase=0x402 \
 -device ich9-usb-ehci1,id=usb1,addr=1d.7,multifunction=on,bus=pcie.0 \
 -device ich9-usb-uhci1,id=usb1.0,multifunction=on,masterbus=usb1.0,addr=1d.0,firstport=0,bus=pcie.0 \
 -device ich9-usb-uhci2,id=usb1.1,multifunction=on,masterbus=usb1.0,addr=1d.2,firstport=2,bus=pcie.0 \
 -device ich9-usb-uhci3,id=usb1.2,multifunction=on,masterbus=usb1.0,addr=1d.4,firstport=4,bus=pcie.0 \
 -device usb-tablet,id=usb-tablet1 \
 -boot menu=on \
 -enable-kvm \
 -monitor stdio \
 -spice port=5900,disable-ticketing \
 -qmp tcp:0:9999,server,nowait \
 -netdev tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
 -device virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,bus=pcie.0 \
 -drive file=/home/virtio-win-prewhql-0.1-126.iso,if=none,media=cdrom,id=drive_wincd,readonly=on,format=raw \
 -device ide-cd,bus=ide.0,drive=drive_wincd,id=device_wincd \
 -device ioh3420,bus=pcie.0,id=root.0,slot=0 \
 -device ioh3420,bus=pcie.0,id=root.1,slot=1 \
 -device ioh3420,bus=pcie.0,id=root.2,slot=2 \
 -device x3130-upstream,bus=root.2,id=upstream0 \
 -device xio3130-downstream,bus=upstream0,id=downstream0,chassis=1 \
 -device xio3130-downstream,bus=upstream0,id=downstream1,chassis=2 \
 -device virtio-scsi-pci,bus=downstream0,id=scsi_pci_bus0 \
 -drive file=/mnt/sysdisk.qcow2,format=qcow2,id=drive_sysdisk,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_sysdisk,bus=scsi_pci_bus0.0,id=device_sysdisk,bootindex=0 \
 -drive file=/home/en_windows_10_enterprise_version_1607_updated_jul_2016_x64_dvd_9054264.iso,if=none,media=cdrom,id=drive_syscd,readonly=on,format=raw \
 -device scsi-disk,bus=scsi_pci_bus0.0,drive=drive_syscd,id=device_syscd,bootindex=1 \



PC CMD:
/usr/libexec/qemu-kvm \
 -S \
 -name 'win10' \
 -machine pc \
 -m 4096 \
 -smp 4,maxcpus=4,sockets=1,cores=4,threads=1 \
 -cpu Opteron_G5,check \
 -rtc base=localtime,clock=host,driftfix=slew \
 -nodefaults \
 -vga qxl \
 -device AC97,bus=pci.0 \
 -chardev socket,id=qmp_id_qmpmonitor1,path=/tmp/monitor-qmpmonitor1-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_qmpmonitor1,mode=control \
 -chardev socket,id=qmp_id_catch_monitor,path=/tmp/monitor-catch_monitor-20151214-111528-C6FB1EaX,server,nowait \
 -mon chardev=qmp_id_catch_monitor,mode=control \
 -device pvpanic,ioport=0x505,id=idSWJ5gV \
 -chardev socket,id=serial_id_serial0,path=/tmp/serial-serial0-20151214-111528-C6FB1EaX,server,nowait \
 -device isa-serial,chardev=serial_id_serial0 \
 -chardev socket,id=seabioslog_log,path=/tmp/seabios-log,server,nowait \
 -device isa-debugcon,chardev=seabioslog_log,iobase=0x402 \
 -device ich9-usb-ehci1,id=usb1,addr=1d.7,multifunction=on,bus=pci.0 \
 -device ich9-usb-uhci1,id=usb1.0,multifunction=on,masterbus=usb1.0,addr=1d.0,firstport=0,bus=pci.0 \
 -device ich9-usb-uhci2,id=usb1.1,multifunction=on,masterbus=usb1.0,addr=1d.2,firstport=2,bus=pci.0 \
 -device ich9-usb-uhci3,id=usb1.2,multifunction=on,masterbus=usb1.0,addr=1d.4,firstport=4,bus=pci.0 \
 -device usb-tablet,id=usb-tablet1 \
 -boot menu=on \
 -enable-kvm \
 -monitor stdio \
 -spice port=5900,disable-ticketing \
 -qmp tcp:0:9999,server,nowait \
 -netdev tap,id=netdev0,vhost=on,script=/etc/qemu-ifup,downscript=/etc/ifdown_script \
 -device virtio-net-pci,mac=BA:BC:13:83:4F:BD,id=net0,netdev=netdev0,status=on,bus=pci.0 \
 -drive file=/home/virtio-win-prewhql-0.1-126.iso,if=none,cache=none,media=cdrom,id=drive_wincd,readonly=on,format=raw \
 -device ide-cd,bus=ide.0,drive=drive_wincd,id=device_wincd \
 -device virtio-scsi-pci,id=scsi_pci_bus0 \
 -drive file=/mnt/sysdisk.qcow2,format=qcow2,id=drive_sysdisk,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_sysdisk,bus=scsi_pci_bus0.0,id=device_sysdisk,bootindex=0 \
 -drive file=/home/en_windows_10_enterprise_version_1607_updated_jul_2016_x64_dvd_9054264.iso,if=none,cache=none,media=cdrom,id=drive_syscd,readonly=on,format=raw \
 -device scsi-disk,bus=scsi_pci_bus0.0,drive=drive_syscd,id=device_syscd,bootindex=1 \

Comment 23 yduan 2016-08-25 10:07:03 UTC
(In reply to yduan from comment #22)
> I met this issue both "q35" and "pc" recently, so i retry two cases here.
> 
> virtio-win-prewhql-0.1-126
> # uname -r
> 3.10.0-492.el7.x86_64
> # rpm -q qemu-kvm-rhev
> qemu-kvm-rhev-2.6.0-22.el7.x86_64
> 
> Description of problem:
> After migration completed, windows10 guest hangs with no any error prompt.
> 

  In this situation, guest works well after "system_reset" in HMP.

Comment 24 Pei Zhang 2016-09-24 02:32:19 UTC
FYI.

In this testing, the windows 10 migration works well.

Versions:
Host:
3.10.0-510.el7.x86_64
qemu-kvm-rhev-2.6.0-27.el7.x86_64

Guest:
Windows10

Steps:
1. Boot win10 guest
/usr/libexec/qemu-kvm -name win10 \
-cpu SandyBridge -m 4G -numa node \
-smp 4,sockets=2,cores=2,threads=1 \
-netdev tap,id=SandyBridgenet0 \
-device virtio-net-pci,netdev=SandyBridgenet0,id=net0,mac=12:54:00:5c:77:01 \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16 \
-spice port=5902,addr=0.0.0.0,disable-ticketing,image-compression=off,seamless-migration=on \
-monitor stdio \
-serial unix:/tmp/monitor,server,nowait \
-qmp tcp:0:5551,server,nowait \
-drive file=/mnt/win10-64-virtio.qcow2,format=qcow2,if=none,id=drive-virtio-blk0,werror=stop,rerror=stop \
-device virtio-blk-pci,drive=drive-virtio-blk0,id=virtio-blk0,ioeventfd=off \
-usbdevice tablet

2. Boot guest in des with '-incoming'
<same as step1>
-incoming tcp:0:5555 \

3. Do migrate
(qemu) migrate -d tcp:10.73.72.154:5555

4. After migration, check guest status, works well.

5. Reboot guest several times and check guest status, works well.
# reboot

network keeps working well
# ping google.com
PING google.com (216.58.196.174) 56(84) bytes of data.
64 bytes from sin04s05-in-f174.1e100.net (216.58.196.174): icmp_seq=1 ttl=49 time=68.6 ms
...

Comment 25 Amit Shah 2016-09-27 11:25:31 UTC
Great, thanks for confirming!

So It looks like Dave's fix worked for this bug too.  I'll close it as a dup.

*** This bug has been marked as a duplicate of bug 1377920 ***