Bug 858697

Summary: virtio_serialports are sometimes missing in Windows XP guest
Product: [Fedora] Fedora Reporter: Lukáš Doktor <ldoktor>
Component: qemuAssignee: Vadim Rozenfeld <vrozenfe>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 17CC: amit.shah, berrange, cfergeau, dwmw2, itamar, knoel, pbonzini, rjones, scottt.tw, virt-maint, vrozenfe
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-09-25 10:00:34 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:

Description Lukáš Doktor 2012-09-19 12:49:54 UTC
Description of problem:
Sometimes when I boot the Windows XP guest some or all of virtio_serialports are missing in \\.\ and \\Device\. Guest reboot usually helps or leads to different missing ports.

Version-Release number of selected component (if applicable):
Guest:
   Windows XP SP3
   virtio-win-0.1-30

Host:
   Fedora 17,
   kernel 3.5.3-1.fc17.x86_64
   qemu-kvm-1.0.1-1.fc17.x86_64

How reproducible:
Very often. In over 60% cases some of the ports are missing and over 30% none of the ports is initialized. Some of the ports also disappear after the reboot.

Steps to Reproduce:
1. boot Windows XP guest with virtio_serialport
2. look for \\.\$symbolic_link or \\.\\{6FDE7547-1B65-48ae-B628-80BE62016026}#VIOSerialPort#.. or \\Device\vport* device ex. using WinObj.
  
Actual results:
Some or none of virtio_ports is present. CreateFile() with expected name fails.

Expected results:
All of virtio_ports should have GUID, vport and symbolic names and should be prepared for use.

Comment 1 Lukáš Doktor 2012-09-19 12:51:04 UTC
I used this command to run guest with 4 virtio_serialports:

/usr/bin/qemu-kvm -S -name vm1 -nodefaults -chardev
socket,id=hmp_id_hmp1,path=/tmp/monitor-hmp1-20120913-092500-jOJB65N
Y, se rve r,nowait -mon chardev=hmp_id_hmp1,mode=readline -chardev
socket,id=serial_id_20120913-092500-jOJB65NY,path=/tmp/serial-20120
913 -0 925 00-jOJB65NY,server,nowait -device
isa-serial,chardev=serial_id_20120913-092500-jOJB65NY -device
virtio-serial-pci,id=virtio_serial_pci0 -chardev
socket,id=devvc1,path=/tmp/virtio_port-vc1-20120913-092500-jOJB65NY,
se rv er, nowait -device
virtconsole,chardev=devvc1,name=com.redhat.spice.0,id=vc1,bus=virtio
_s er ial _pci0.0 -chardev
socket,id=devvc2,path=/tmp/virtio_port-vc2-20120913-092500-jOJB65NY,
se rv er, nowait -device
virtconsole,chardev=devvc2,name=com.redhat.spice.1,id=vc2,bus=virtio
_s er ial _pci0.0 -chardev
socket,id=seabioslog_id_20120913-092500-jOJB65NY,path=/tmp/seabios-2
01 20 913 -092500-jOJB65NY,server,nowait -device
isa-debugcon,chardev=seabioslog_id_20120913-092500-jOJB65NY,iobase=0
x4 02 -device ich9-usb-uhci1,id=usb1 -drive
file=/tmp/kvm_autotest_root/images/winXP-32.qcow2,index=0,if=ide,cac
he =n one -device
virtio-net-pci,netdev=id8yGdBy,mac=9a:a4:a5:a6:a7:a8,id=idPepC47
-netdev tap,id=id8yGdBy,fd=19 -m 512 -smp
1,cores=1,threads=1,sockets=1 -cpu Penryn -drive
file=/tmp/kvm_autotest_root/isos/windows/winutils.iso,media=cdrom,in
de x= 1 -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 -vnc :0
-vga std -rtc base=localtime,clock=host,driftfix=none -boot
order=cdn,once=c,menu=off -enable-kvm

Comment 2 Lukáš Doktor 2012-09-24 09:58:37 UTC
This problem disappeared in newer version http://download.devel.redhat.com/brewroot/packages/virtio-win-prewhql/0.1/37/win/virtio-win-prewhql-0.1.zip

Comment 3 Lukáš Doktor 2012-09-24 13:59:08 UTC
I tried max_serialport and max_serials_and_conosles boot tests and it works perfectly (30 serialports in the first test and 15+15 consoles and serialports in the second test).

Comment 4 Lukáš Doktor 2012-09-25 10:00:34 UTC
This problem disappeared in newer version http://download.devel.redhat.com/brewroot/packages/virtio-win-prewhql/0.1/37/win/virtio-win-prewhql-0.1.zip