Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 947042

Summary: fail to regonize the xhci controller in win2012 and win8 guest undere Q35
Product: Red Hat Enterprise Linux 7 Reporter: Sibiao Luo <sluo>
Component: qemu-kvmAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED CURRENTRELEASE QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.0CC: acathrow, alex.williamson, chayang, hhuang, juzhang, kraxel, michen, qzhang, rhod, shu, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 1.5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 10:09:27 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: 1046524    
Bug Blocks:    
Attachments:
Description Flags
Screenshot for xHCI from device manager. none

Description Sibiao Luo 2013-04-01 10:15:30 UTC
Description of problem:
As of December 2012, Windows 8 and Windows Server 2012 are shipped with Microsoft generic xHCI drivers. But i boot win2012/win8 guest with a usb-storage using xhci controller, it fail to regonize the xhci controller.

BTW, i also test the rhel7 guest, it have no such issue, it can detect the disk successully, but qemu have some prompt like(bug 903105):
(qemu) xhci_runtime_read: reg 0x4 unimplemented
xhci_runtime_read: reg 0x8 unimplemented
xhci_runtime_read: reg 0xc unimplemented
xhci_runtime_read: reg 0x10 unimplemented
xhci_runtime_read: reg 0x14 unimplemented
xhci_runtime_read: reg 0x18 unimplemented
xhci_runtime_read: reg 0x1c unimplemented
xhci_port_write (port 4): reg 0x4 unimplemented
xhci_port_write (port 3): reg 0x4 unimplemented
xhci_port_write (port 2): reg 0x4 unimplemented
xhci_port_write (port 1): reg 0x4 unimplemented

Version-Release number of selected component (if applicable):
host info:
kernel-3.9.0-0.rc4.45.el7.x86_64
qemu-kvm-1.4.0-1.el7.x86_64
seabios-1.7.2-0.2.gita810e4e7.el7.x86_64
guest info:
win2012/win8 64bit

How reproducible:
100%

Steps to Reproduce:
1.boot win2012/win8 guest with a usb-storage using xhci controller.
e.g:...-device nec-usb-xhci,id=xhci0 -drive file=/home/my-usb-storage.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=none,aio=native -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on
2.
3.
  
Actual results:
after guest boot up, fail to regonize the xhci controller, i will attach the screenshot later.

Expected results:
should can regonize the xhci controller successfully.

Additional info:

Comment 1 Sibiao Luo 2013-04-01 10:22:53 UTC
Created attachment 730234 [details]
Screenshot for xHCI from device manager.

Comment 2 Gerd Hoffmann 2013-04-05 13:08:04 UTC
add full qemu command line please (especially the machine type)

Comment 3 Sibiao Luo 2013-04-07 02:16:20 UTC
(In reply to comment #2)
> add full qemu command line please (especially the machine type)

yes, correct, thx for your kindly reminds. this issue only was hit undere Q35, it is ok for pc-i440fx-1.4 machine type.

e.g: # /usr/libexec/qemu-kvm -S -M q35 -cpu SandyBridge -enable-kvm -m 4096 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection -name sluo-test -uuid ed09fa10-6ffe-4811-a42f-0294afcb5a42 -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pcie.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/home/windows_server_2012_x64.qcow2,if=none,id=drive-system-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop,serial=QEMU-DISK1 -device virtio-scsi-pci,bus=pcie.0,addr=0x4,id=scsi0 -device scsi-hd,bus=scsi0.0,drive=drive-system-disk,id=system-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=off,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=08:2e:5f:0a:0d:b1,bus=pcie.0,addr=0x5,bootindex=2 -device virtio-balloon-pci,id=ballooning,bus=pcie.0,addr=0x6 -drive file=/home/my-data-disk.raw,if=none,id=drive-data-disk,format=raw,cache=none,aio=native,werror=stop,rerror=stop,serial=QEMU-DISK2 -device virtio-scsi-pci,bus=pcie.0,addr=0x7,id=scsi1 -device scsi-hd,bus=scsi1.0,drive=drive-data-disk,id=data-disk -readconfig /home/ich9-ehci-uhci.cfg -device usb-tablet,id=input0 -device usb-mouse,id=mouse -device nec-usb-xhci,id=xhci0 -drive file=/home/my-usb-storage.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=none,aio=native -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -serial unix:/tmp/ttyS0,server,nowait -qmp tcp:0:4444,server,nowait -k en-us -boot menu=on -vnc :1 -spice disable-ticketing,port=5931 -monitor stdio

Comment 4 Sibiao Luo 2013-04-08 10:39:45 UTC
passthrough the USB3.0 using the xHCI controller to windows guest under Q35 also hit this issue, it fail to regonize the xhci controller.

Comment 5 Gerd Hoffmann 2013-04-15 06:57:47 UTC
Alex submitted a pcie patch mentioning something simliar in the commit message.  I can't reproduce this in current master.  So I think this one is fixed already (and qemu 1.5 should carry the fix).

Alex, please correct me if I'm wrong.

Comment 6 Alex Williamson 2013-04-15 13:11:12 UTC
(In reply to comment #5)
> Alex submitted a pcie patch mentioning something simliar in the commit
> message.  I can't reproduce this in current master.  So I think this one is
> fixed already (and qemu 1.5 should carry the fix).
> 
> Alex, please correct me if I'm wrong.

Yes, Windows is particular about the PCIe type and won't load drivers for Endpoints connected to the Root Complex bus.  I saw this even on Windows 7.  The xHCI device can either be connected behind a PCIe root port or QEMU 1.5 will include a fix to convert the PCIe type to an Integrated Root Complex Endpoint.

Comment 10 Shaolong Hu 2013-07-08 09:19:32 UTC
Try win8 64bit guest on qemu-kvm-1.5.1-2.el7.x86_64:

The "Renesas USB 3.0 eXtensible Host Controller - 0100(Microsoft)" works great, and the usb storage attached on it functions well.

Comment 14 juzhang 2014-02-26 05:50:59 UTC
Hi Gerd,

Could you have a look comment13 and add your suggestions?

Best Regards,
Junyi

Comment 15 Gerd Hoffmann 2014-02-26 09:56:27 UTC
Hmm, why blocks bz1046524 the verification?   That bug is about usb passthrough (aka usb-host), whereas the original report is about usb-storage.

Also comment 10 looks like the bug was verified successfully.

Comment 16 Sibiao Luo 2014-02-26 10:46:17 UTC
(In reply to Gerd Hoffmann from comment #15)
> Hmm, why blocks bz1046524 the verification?   That bug is about usb
> passthrough (aka usb-host), whereas the original report is about usb-storage.
> 
> Also comment 10 looks like the bug was verified successfully.

Yes, thanks for your confirms. I verified this issue with the latest the qemu-kvm version.

host info:
# uname -r && rpm -q qemu-kvm-rhev
3.10.0-95.el7.x86_64
qemu-kvm-rhev-1.5.3-49.el7.x86_64
guest info:
win2012-64bit

Steps:
the same to comment #0.

qemu-kvm command line:
# /usr/libexec/qemu-kvm -S -M q35 -cpu SandyBridge -enable-kvm -m 4096 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection...-device nec-usb-xhci,id=xhci0 -drive file=/home/my-usb-storage.qcow2,if=none,id=drive-usb-0-1,media=disk,format=qcow2,cache=none,aio=native -device usb-storage,drive=drive-usb-0-1,id=usb-0-1,removable=on 

Results:
it regonized the xhci controller correctly, the usb-storage can be detected correctly in guest and can be formated successfully.

So, Move to VERIFIED status, thanks.

Best Regards,
sluo

Comment 17 Ludek Smid 2014-06-13 10:09:27 UTC
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.