Bug 1038940

Summary: win8 with qxl guest desktop hung after migration
Product: Red Hat Enterprise Linux 7 Reporter: mazhang <mazhang>
Component: spiceAssignee: Default Assignee for SPICE Bugs <rh-spice-bugs>
Status: CLOSED NOTABUG QA Contact: Desktop QE <desktop-qa-list>
Severity: high Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, cfergeau, hhuang, juzhang, mazhang, michen, qzhang, rhod, uril, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-15 09:41:08 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:

Description mazhang 2013-12-06 08:21:26 UTC
Description of problem:
win8 with qxl desktop hung after migration,but guest network works well, ping guest got response.

Version-Release number of selected component (if applicable):

Host:
RHEL-7.0-20131127.1
qemu-img-1.5.3-21.el7.x86_64
qemu-kvm-common-rhev-1.5.3-21.el7.x86_64
qemu-kvm-rhev-debuginfo-1.5.3-21.el7.x86_64
qemu-kvm-rhev-1.5.3-21.el7.x86_64
kernel-3.10.0-57.el7.x86_64

Guest:
win8 32/64
qxlwddm-0.2

How reproducible:
100%

Steps to Reproduce:
1.CLI:
#/usr/libexec/qemu-kvm \
-M pc \
-cpu SandyBridge \
-m 4G \
-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:0:6666,server,nowait \
-boot menu=on \
-bios /usr/share/seabios/bios.bin \
-global PIIX4_PM.disable_s3=0 \
-global PIIX4_PM.disable_s4=0 \
-drive file=/home/win8-64.qcow2,if=none,id=drive-data-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop \
-device virtio-blk-pci,bus=pci.0,scsi=off,drive=drive-data-disk,id=data-disk \
-device virtio-balloon-pci,bus=pci.0,id=balloon0 \
-netdev tap,id=hostnet0,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:01:01:ef \
-device virtio-serial-pci,id=virtio-serial1 \
-chardev spicevmc,id=charchannel0,name=vdagent \
-device virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 \
-device intel-hda,id=sound0,bus=pci.0 -device hda-duplex \
-spice port=5900,disable-ticketing,seamless-migration=on \
-vga qxl \
-global qxl-vga.vram_size=67108864 \
-global qxl-vga.revision=3 \

2.Migrate guest to another host.

3.Connect destination by spice.

Actual results:
1 Guest desktop hung after migration finished, no response, but can able ping guest.
2 If not install qxl driver in guest, Guest desktop hung, but can move mouse in guest, ping guest got response.
3 Can not hit this problem without "qxl".
4 Win8-32 hist this problem.

Expected results:
Guest works well.

Additional info:
cpuinfo:
processor	: 23
vendor_id	: GenuineIntel
cpu family	: 6
model		: 45
model name	: Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz
stepping	: 7
microcode	: 0x710
cpu MHz		: 1514.218
cache size	: 15360 KB
physical id	: 1
siblings	: 12
core id		: 5
cpu cores	: 6
apicid		: 43
initial apicid	: 43
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid
bogomips	: 4004.48
clflush size	: 64
cache_alignment	: 64
address sizes	: 46 bits physical, 48 bits virtual
power management:

[root@ibm-x3650m4-05 ~]# free -g
             total       used       free     shared    buffers     cached
Mem:            46         33         13          0          0         31
-/+ buffers/cache:          1         45
Swap:           23          0         23

Comment 2 Christophe Fergeau 2014-01-14 13:28:57 UTC
(In reply to mazhang from comment #0)
> Guest:
> win8 32/64
> qxlwddm-0.2

As far as I know, 'qxlwddm-0.2' does not exist. Where did you get it from?

Comment 3 Uri Lublin 2014-01-14 15:04:24 UTC
I did a very quick test, and it works for me on RHEL-6.5:
  guest: win8.1preview (32) guest + qxlwddm-0.3-2
  qemu-kvm: from git, qemu-kvm-0.12.1.2-6414-g457171a
  qemu-kvm bios taken from qemu-kvm-rhev-0.12.1.2-2.355.el6_4.9.x86_64
  spice-server: spice-server-0.12.4-6.el6.x86_64
  both src and dst VMs running on the same host
  client was not connected during migration
  guest was doing nothing during migration


A few questions:
Does it work with qxlwddm-0.3-2 ?
Does it work on RHEL-6.5 machines ?
Why do you use "-global qxl-vga.revision=3" (just curious, I tested both with and without it) ?

Note that qxlwddm is in a _very_ early stage of development.

Comment 4 mazhang 2014-01-15 02:32:14 UTC
(In reply to Christophe Fergeau from comment #2)
> (In reply to mazhang from comment #0)
> > Guest:
> > win8 32/64
> > qxlwddm-0.2
> 
> As far as I know, 'qxlwddm-0.2' does not exist. Where did you get it from?

Sorry, it should be qxlwddm-0.2-1, I'll test with qxlwddm-0.3-2 and update later.

Comment 5 mazhang 2014-01-15 03:19:45 UTC
(In reply to Uri Lublin from comment #3)
> I did a very quick test, and it works for me on RHEL-6.5:
>   guest: win8.1preview (32) guest + qxlwddm-0.3-2
>   qemu-kvm: from git, qemu-kvm-0.12.1.2-6414-g457171a
>   qemu-kvm bios taken from qemu-kvm-rhev-0.12.1.2-2.355.el6_4.9.x86_64
>   spice-server: spice-server-0.12.4-6.el6.x86_64
>   both src and dst VMs running on the same host
>   client was not connected during migration
>   guest was doing nothing during migration
> 
> 
> A few questions:
> Does it work with qxlwddm-0.3-2 ?
> Does it work on RHEL-6.5 machines ?
> Why do you use "-global qxl-vga.revision=3" (just curious, I tested both
> with and without it) ?
> 
> Note that qxlwddm is in a _very_ early stage of development.

1. Just do a quick test with qxlwddm-0.3-2 on qemu-kvm-1.5.3-36.el7.x86_64, it works well.
2. Have not test on RHEL-6.5.
3. I can't install qxlwddm-0.2-1 without "-global qxl-vga.revision=3", its a workaround from my colleague, and sorry again :(

Comment 6 mazhang 2014-01-15 03:46:41 UTC
Update the latest qemu-kvm and qxlwddm package, this problem has gone.

Host:
kernel-3.10.0-69.el7.x86_64
qemu-kvm-1.5.3-36.el7.x86_64

Guest:
Both win8-32 win8-64 (win8 enterprise build 9200)

cli:
/usr/libexec/qemu-kvm \
-M pc \
-cpu Opteron_G1 \
-m 4G \
-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:0:6666,server,nowait \
-boot menu=on \
-bios /usr/share/seabios/bios.bin \
-global PIIX4_PM.disable_s3=0 \
-global PIIX4_PM.disable_s4=0 \
-drive file=/home/win8-64.qcow2,if=none,id=drive-data-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop \
-device virtio-blk-pci,bus=pci.0,scsi=off,drive=drive-data-disk,id=data-disk \
-device virtio-balloon-pci,bus=pci.0,id=balloon0 \
-device virtio-serial-pci,id=virtio-serial1 \
-chardev spicevmc,id=charchannel0,name=vdagent \
-device virtserialport,bus=virtio-serial1.0,nr=3,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 \
-device intel-hda,id=sound0,bus=pci.0 -device hda-duplex \
-spice port=5900,disable-ticketing,seamless-migration=on \
-vga qxl \
-global qxl-vga.vram_size=67108864 \
-netdev tap,id=hostnet0,vhost=on \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:39:13:2c \

Result:
Migrate guest with and without qxlwddm-0.3-2 about 5 times, guest works well, reboot and shutdown normal, both win8-32 and win8-64 not found the problem.

Comment 7 Uri Lublin 2014-01-15 09:41:08 UTC
(Following comment #3 and comment #6)
mazhang thanks for verifying it works with qxlwddm-0.3-2.

There was a problem with qxlwddm that got fixed, but qxlwddm is still
in early development phase and was never released.

It's not a spice bug.

Moving to CLOSED with resolution Not-A-Bug.
Even though a problem got fixed this seems to me the best resolution for the case.