Bug 814896

Summary: [virtio-win][serial] virtio-serial does not work after s4 in win7-32/64 bit guests
Product: Red Hat Enterprise Linux 6 Reporter: langfang <flang>
Component: virtio-winAssignee: Yvugenfi <yvugenfi>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.3CC: acathrow, amit.shah, areis, bcao, bsarathy, dawu, dyasny, juzhang, michen, mkenneth, rhod, tburke, virt-maint, vrozenfe
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
It was a bug in the vioserial in the power management routine, when virtio queue was not properly reinitialized during resume. As the result, a port was dis-functional and was not able to handle read and write requests properly. The problem was fixed by adding proper virtual queue re-initialization on resume from hibernation.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 10:38: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:
Bug Depends On:    
Bug Blocks: 720669, 761491    
Attachments:
Description Flags
the script run on host
none
script run on guest
none
after resume S4,the error info about run guest script none

Description langfang 2012-04-21 03:58:25 UTC
Created attachment 579146 [details]
the script run on host

Description of problem:

after resume from win7-32 guest S4  the virtio- serial driver can not use anymore

Version-Release number of selected component (if applicable):
#uname -r
2.6.32-262.el6.x86_64
#rpm -qa |grep qemu-kvm
 qemu-kvm-0.12.1.2-2.277.el6.x86_64
guest :windows7-32
gruest virtio serial driver:

http://download.devel.redhat.com/brewroot/packages/virtio-win-
prewhql/0.1/26/win/virtio-win-prewhql-0.1.zip

How reproducible:

100%

Steps to Reproduce:
1.boot guest with virtio-serial device
/usr/libexec/qemu-kvm -M rhel6.3.0 -cpu Conroe -enable-kvm -m 2G -smp 2,sockets=1,cores=2,threads=1 -name rhel6.3 -uuid bc898f4c-93e8-48d7-b1f6-05eb4c611129 -rtc base=localtime,driftfix=slew -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:1a:4a:12:19:62,bus=pci.0,addr=0x3 -boot c -spice port=5930,disable-ticketing -vga qxl -global qxl-vga.vram_size=33554432 -qmp tcp:0:4444,server,nowait -drive file=/home/win7-32,format=qcow2,if=none,id=drive-virtio-disk0,werror=stop,rerror=stop,cache=none -device virtio-blk-pci,drive=drive-virtio-disk0,id=ide0-0-0,bootindex=1 -usb -device usb-tablet,id=input0 -monitor stdio -device virtio-balloon-pci,id=balloon0,bus=pci.0 -bios /usr/share/seabios/bios-pm.bin -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0 -chardev socket,id=channel0,host=127.0.0.1,port=12345,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=channel0,name=com.redhat.rhevm.vdsm,id=port1
2.trasfer data from guest to host
on host
#python serial-host-side.py
on guest
python VirtIoChannel.py

3.S4 on win7 guest
start-->Hibernate
  
Actual results:
after resume from S4,the guest can not transfer data
when run python VirtIoChannel.py,the error see attachment
but when disable and then enable driver ,the virtio driver is ok,can transfer data again.

Expected results:

after resume guest S4,the virtio-serial driver is ok.
Additional info:
the script see attachment

Comment 1 langfang 2012-04-21 04:00:28 UTC
Created attachment 579147 [details]
script run on guest

Comment 2 langfang 2012-04-21 04:01:59 UTC
Created attachment 579148 [details]
after resume S4,the error info about run guest script

Comment 4 Mike Cao 2012-04-23 07:39:52 UTC
Hi, langfang 

Could you reproduce this bug w/ vioser-test.exe (the tools is under the
directory which you installed the virtio serial driver)

Mike

Comment 5 langfang 2012-04-25 06:34:53 UTC
(In reply to comment #4)
> Hi, langfang 
> 
> Could you reproduce this bug w/ vioser-test.exe (the tools is under the
> directory which you installed the virtio serial driver)
> 
> Mike

i tried ,also have same problem,after guest S4,can not transfer data use virtio-serial driver.

Comment 8 Ronen Hod 2012-05-08 08:30:29 UTC
Too late for RHEL6.3. Postpone to 6.4.
Anyhow an S4 bug

Comment 11 Ronen Hod 2012-07-10 09:53:41 UTC
In work, test again in 2-3 weeks.

Comment 12 Mike Cao 2012-07-17 03:31:45 UTC
langfang ,

pls pls check whether this issue still occurs in virtio-win-prewhql30 
(for 32 bit guest pls) use driver in \\install\Wxp\x86 , 64 bit guests use driver located in \\install\Wnet\amd64 ).

Comment 13 langfang 2012-07-17 10:21:04 UTC
(In reply to comment #12)
> langfang ,
> 
> pls pls check whether this issue still occurs in virtio-win-prewhql30 
> (for 32 bit guest pls) use driver in \\install\Wxp\x86 , 64 bit guests use
> driver located in \\install\Wnet\amd64 ).

hi!Mike


i test this bug on the following version:
host:
# uname -r
2.6.32-284.el6.x86_64
# rpm -q qemu-kvm
qemu-kvm-0.12.1.2-2.295.el6.x86_64

virtio-win:virtio-win-prewhql30
 
guest:win7-32/win7-64

results:
also have the same problem.

addinfo: the steps are the same as reproduce.

Comment 16 dawu 2012-10-14 08:53:17 UTC
Reproduce this bug on build virtio-win-prewhql-26, Verified this bug on build virtio-win-prewhql-41 with the same steps in comment0

CLI: /usr/libexec/qemu-kvm -cpu host -m 2G -smp 2 -boot dc -drive file=win7-32.qcow2,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none,format=qcow2,media=disk -device ide-drive,drive=drive-ide0-0-0,id=ide0-0-0 -drive file=en_windows_7_ultimate_with_sp1_x86_dvd_619077.iso,if=none,id=drive-ide0-0-1,werror=stop,rerror=stop,cache=none,format=raw,media=cdrom -device ide-drive,drive=drive-ide0-0-1,id=ide0-0-1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup0 -device e1000,netdev=hostnet0,mac=00:22:5a:13:78:06,bus=pci.0,addr=0x4,id=net0 -uuid b2b6f616-0b80-4b41-af4e-985737e9ffbf -spice disable-ticketing,port=5931 -vga qxl -rtc base=localtime,clock=host,driftfix=slew -bios /usr/share/seabios/bios-pm.bin -monitor stdio -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=4,bus=pci.0 -chardev socket,server,host=0.0.0.0,port=12345,id=channel0,nowait -device virtserialport,chardev=channel0,nr=1,id=serialport.1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0

Actually Results:

On version virtio-win-prewhql-26, issue reproduced.
On version virtio-win-prewhql-41, data can transfer successfully without any error after S4

additional info: this issue also been verified with vioser-test.exe, got the same results.

Based on above, this issue has been fixed.

Thanks for developer's efforts!
Best Regards,
Dawn

Comment 17 Mike Cao 2012-10-15 03:19:15 UTC
Based on comment #16 ,move status to verified .

Since this bug has been fixed already ,move product flag to rhel6.4.0

Comment 18 errata-xmlrpc 2013-02-21 10:38:31 UTC
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/RHBA-2013-0441.html