Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1647607

Summary: RHV host passthrough of USB3 disk device stops VM from booting.
Product: Red Hat Enterprise Virtualization Manager Reporter: Frank DeLorey <fdelorey>
Component: vdsmAssignee: Shmuel Melamud <smelamud>
Status: CLOSED ERRATA QA Contact: Nisim Simsolo <nsimsolo>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 4.2.6CC: dblechte, dyuan, fdelorey, hhan, jiyan, lmen, lsurette, mavital, michal.skrivanek, mtessun, mzhan, nsimsolo, rbarry, rdlugyhe, smaudet, smelamud, srevivo, xuzhang, ycui
Target Milestone: ovirt-4.3.3Keywords: TestOnly
Target Release: 4.3.0Flags: lsvaty: testing_plan_complete-
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Previously, an incorrectly named USB3 controller, "qemu_xhci," prevented virtual machines from booting if they used a host passthrough with this controller. The current release corrects the controller name to "qemu-xhci," which resolves the booting issue.
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-05-08 12:36:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Comment 2 Ryan Barry 2018-11-12 13:18:13 UTC
Shmuel -

This looks like an intentional change from platform (the speed mismatch). Can you ensure that we have XHCI support merged into engine? There's a fix for master, but it doesn't appear to be present on 4.2: https://gerrit.ovirt.org/#/c/89444/

Comment 5 Han Han 2018-11-13 08:10:38 UTC
Could you please provide the libusb version of the case?

Comment 7 Han Han 2018-11-13 10:06:05 UTC
This issue is NOT reproduced via libvirt as following.
Version:
libvirt-3.9.0-14.el7_5.7.x86_64
qemu-kvm-rhev-2.10.0-21.el7_5.4.x86_64
libusbx-1.0.21-1.el7.x86_64
kernel-3.10.0-768.el7.x86_64

1. Prepare a usb3 disk on host
# lsusb -v
Bus 004 Device 003: ID 1f75:0917 Innostor Technology Corporation 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00


2. Start a vm with following xml:
   <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
    </controller>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source startupPolicy='requisite'>
        <address bus='4' device='3'/>
      </source>
      <address type='usb' bus='0' port='5'/>
    </hostdev>

# virsh start usb3

3. Check the usb device in VM
(vm) # lsusb -v|head

Bus 001 Device 002: ID 1f75:0917 Innostor Technology Corporation 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64

Comment 9 Michal Skrivanek 2018-11-13 10:07:57 UTC
based on comment #7 if they would use a hostdev passthrough then indeed it should all work

Comment 16 Ryan Barry 2019-01-21 14:53:49 UTC
Re-targeting to 4.3.1 since it is missing a patch, an acked blocker flag, or both

Comment 18 Nisim Simsolo 2019-03-05 09:32:06 UTC
Verified:
ovirt-engine-4.3.1.2-0.0.master.20190301101852.gita03a284.el7
vdsm-4.40.0-27.git8414ae9.el7.x86_64
libvirt-client-4.5.0-10.el7_6.4.x86_64
qemu-kvm-ev-2.12.0-18.el7_6.3.1.x86_64

Verification scenario:
1. Boot VM with passthrough bootable USB3 DOK (in order to see DOK in the VM bootable devices options, use run once and pin VM to host with DOK).
Verify DOK is bootable and OS installation starts.
2. Boot VM with USB3 DOK selected from Spice console -> File -> USB device selection.
Verify DOK is bootable and OS installation starts.
3 For both test cases, After installation is completed, verify USB is accessible from the VM:
[VM1@localhost ~]$  lsusb -v|head
Bus 001 Device 002: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
[VM1@localhost ~]$  mount | grep Fedora
/dev/sdb1 on /run/media/VM1/Fedora-WS-Live-29-1-2 type iso9660 (ro,nosuid,nodev,relatime,nojoliet,check=s,map=n,blocksize=2048,uid=1000,gid=1000,dmode=500,fmode=400,uhelper=udisks2)
[VM1@localhost ~]$

Comment 21 errata-xmlrpc 2019-05-08 12:36:02 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.

https://access.redhat.com/errata/RHBA-2019:1077

Comment 22 Daniel Gur 2019-08-28 13:14:46 UTC
sync2jira

Comment 23 Daniel Gur 2019-08-28 13:19:48 UTC
sync2jira