| Summary: | [virtio-win][vioser] virtio-serial driver fail to work without rebooting guest after install guest-agent for some windows os | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Sibiao Luo <sluo> |
| Component: | virtio-win | Assignee: | Gal Hammer <ghammer> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.0 | CC: | acathrow, bcao, bsarathy, chayang, juzhang, michen, qzhang, rhod, sluo, tjamrisk, virt-maint, vrozenfe, xfu, yvugenfi |
| Target Milestone: | rc | Keywords: | Rebase, Reopened |
| Target Release: | 7.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | virtio-win-prewhql-0.1-74 | Doc Type: | Rebase: Bug Fixes and Enhancements |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-06-13 11:17:39 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: | |
My qemu-kvm command line: # /usr/libexec/qemu-kvm -M pc -S -cpu SandyBridge -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo -uuid 990ea161-6b67-47b2-b803-19fb01d30d30 -rtc base=localtime,clock=host,driftfix=slew -drive file=/home/win2008r2-64-virtio.qcow2,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pci.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=00:01:02:B6:40:21,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -k en-us -boot menu=on -qmp tcp:0:4444,server,nowait -serial unix:/tmp/ttyS0,server,nowait -vnc :1 -spice disable-ticketing,port=5931 -monitor stdio -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio-serial0.0,id=port1,nr=1 I'm not sure that understand what is the bug. If the qemu agent *service* (it is not a driver) runs and use its serial port then it is impossible for another application to use that port (hence the "access is denied" error). Is it possible that the agent's installer doesn't start the service after installation? What is the status of the service after installation is completed? (In reply to Gal Hammer from comment #2) > I'm not sure that understand what is the bug. hmm... > If the qemu agent *service* (it is not a driver) runs and use its serial > port then it is impossible for another application to use that port (hence > the "access is denied" error). No, you mistake it. At first, we met that the guest agent cann't use any at all after installation, then we have the steps to check whether the virtio-serial work well. Maybe i have to modify the title [virtio-win][serial]--->[virtio-win][qemu-ga] as the misleading. And why other windows guests can work well expect win2008r2-64bit and win7-64bit guest, see 'Additional info' section. > Is it possible that the agent's installer doesn't start the service after > installation? What is the status of the service after installation is > completed? No, the guest agent service was starting aotumatically after completed installation. Best Regards, sluo This request was not resolved in time for the current release. Red Hat invites you to ask your support representative to propose this request, if still desired, for consideration in the next release of Red Hat Enterprise Linux. (In reply to Sibiao Luo from comment #3) > (In reply to Gal Hammer from comment #2) > > I'm not sure that understand what is the bug. > hmm... > > If the qemu agent *service* (it is not a driver) runs and use its serial > > port then it is impossible for another application to use that port (hence > > the "access is denied" error). > No, you mistake it. At first, we met that the guest agent cann't use any at > all after installation, then we have the steps to check whether the > virtio-serial work well. Maybe i have to modify the title > [virtio-win][serial]--->[virtio-win][qemu-ga] as the misleading. > And why other windows guests can work well expect win2008r2-64bit and > win7-64bit guest, see 'Additional info' section. Yes, I didn't understand that you were trying to see if the virtio-serial is working. Sorry. > > Is it possible that the agent's installer doesn't start the service after > > installation? What is the status of the service after installation is > > completed? > No, the guest agent service was starting aotumatically after completed > installation. The problem was that after a first-time installation (and it seems that not on all Windows versions) the port is released and then plugged-in back again. This cause the driver to disable the input virt queue's interrupt. So when someone writes to the port everything worked but when qga is executed (and read from the port), it didn't work. Pls verified it on build74 (In reply to Mike Cao from comment #8) > Pls verified it on build74 Verify this issue on virtio-win-prewhql-0.1-74 with the same testing as comment#0. host info: # uname -r && rpm -q qemu-kvm-rhev 2.6.32-425.el6.x86_64 qemu-kvm-rhev-0.12.1.2-2.415.el6.x86_64 guest info: win2008r2-64bit & win7-64bit virtio-win-prewhql-0.1-74 Steps: the same to comment #0. qemu-kvm command line: # /usr/libexec/qemu-kvm -M rhel6.4.0 -cpu SandyBridge -enable-kvm -m 4G -smp 4 -name rhel6.5 -rtc base=localtime,clock=host,driftfix=slew -uuid 6afa5f93-2d4f-420f-81c6-e5fdddbd1c83 -vnc :1 -monitor stdio -drive file=/home/win2008r2-64-virtio.qcow2,if=none,id=drive-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device ide-drive,bus=ide.0,unit=0,drive=drive-disk,id=system-disk -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio-serial0.0,id=port1,nr=1 Results: 1.We can chansfer the characters from guest to host via serial port *before* install guest agent driver in guest. 2.The serial port accesss was denied but the guest agent can work correctly *after* install guest agent driver in guest. # nc -U /tmp/helloworld1 {"execute":"guest-sync", "arguments":{"id":1234}} {"return": 1234} {"execute":"guest-ping"} {"return": {}} { "execute":"guest-shutdown","arguments":{"mode":"powerdown"}} <------------guest was poweroff successfully. Base on above, this issue has been fixed correctly, move to VERIFIED status. Best Regards, sluo (In reply to Sibiao Luo from comment #9) > (In reply to Mike Cao from comment #8) > > Pls verified it on build74 > Verify this issue on virtio-win-prewhql-0.1-74 with the same testing as > comment#0. > > host info: > # uname -r && rpm -q qemu-kvm-rhev > 2.6.32-425.el6.x86_64 > qemu-kvm-rhev-0.12.1.2-2.415.el6.x86_64 > guest info: > win2008r2-64bit & win7-64bit > virtio-win-prewhql-0.1-74 > > Steps: > the same to comment #0. > qemu-kvm command line: > # /usr/libexec/qemu-kvm -M rhel6.4.0 -cpu SandyBridge -enable-kvm -m 4G -smp > 4 -name rhel6.5 -rtc base=localtime,clock=host,driftfix=slew -uuid > 6afa5f93-2d4f-420f-81c6-e5fdddbd1c83 -vnc :1 -monitor stdio -drive > file=/home/win2008r2-64-virtio.qcow2,if=none,id=drive-disk,format=qcow2, > cache=none,aio=native,werror=stop,rerror=stop -device > ide-drive,bus=ide.0,unit=0,drive=drive-disk,id=system-disk -device > virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev > socket,id=channel1,path=/tmp/helloworld1,server,nowait -device > virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio- > serial0.0,id=port1,nr=1 > > Results: > 1.We can chansfer the characters from guest to host via serial port *before* > install guest agent driver in guest. > 2.The serial port accesss was denied but the guest agent can work correctly > *after* install guest agent driver in guest. Did you use Administrator privileged cmd ? *** Bug 988390 has been marked as a duplicate of this bug. *** We ship build71 for virtio serial ,so this bug is not visible to customers ,Reopen This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |
Description of problem: virtio-serial driver fail to work without rebooting guest after install guest-agent for some windows os(e.g: win2008r2-64bit and win7-64bit), but the virtio-serial and guest-agent can work well after reboot guest. Version-Release number of selected component (if applicable): host info: 2.6.32-425.el6.x86_64 qemu-kvm-0.12.1.2-2.415.el6.x86_64 virtio-win-1.6.7-2.el6.noarch(guest agent driver) guest info: win2008r2-64bit and win7-64bit virtio-win-prewhql-0.1-72(virtio-serial driver) How reproducible: 100% Steps to Reproduce: 1.boot a win2008r2-64bit guest with virtio serial. e.g:...-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio-serial0.0,id=port1,nr=1 2.install the virtio-serial driver from virtio-win-prewhql-0.1-72. 3.chansfer some characters from guest to host via serial port. guest:C:\Users\Administrator> echo "sluosluo" >> \\.\Global\.\org.qemu.guest_agent.0 host : # nc -U /tmp/helloworld1 4.install the guest agent driver in guest. /usr/share/virtio-win/guest-agent/qemu-ga-x64.msi 5.chansfer some characters from guest to host via serial port again. 6.uninstall the guest agent driver in guest. 7.reboot guest and retry the step 5 and do some basical actions with guest agent. Actual results: after step 3, it can chansfer the characters from guest to host via serial port successfully. host ]# nc -U /tmp/helloworld1 "sluosluo" after step 5, if fail to chansfer the characters from guest to host via serial port. guest:C:\Users\Administrator> echo "sluosluo" >> \\.\Global\.\org.qemu.guest_agent.0 Accesss is denied. after step 6, it can chansfer the characters from guest to host via serial port again if remove the guest agent driver. after step 7, virtio-serial and guest agent work well. # nc -U /tmp/helloworld1 {"execute":"guest-sync", "arguments":{"id":1234}} {"return": 1234} Expected results: virtio-serial driver should work well without rebooting guest after install guest-agent. Additional info: Tried the windows guest result lists as following: win8-64-virtio.qcow2 ------- work well win8-32-virtio.qcow2 ------- work well win2008r2-64-virtio.qcow2 ------- fail to work win7-32-virtio.qcow2 ------- work well win2008-32-virtio.qcow2 ------- work well win2008-64.qcow2 ------- work well serial win7-64-virtio.qcow2 ------- fail to work win2012-64-virtio.qcow2 ------- work well win2012r2-64-virtio.qcow2 ------- work well