[Bug 205549] bhyve pci passthru stops working after guest is restarted

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Dec 23 19:32:15 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205549

            Bug ID: 205549
           Summary: bhyve pci passthru stops working after guest is
                    restarted
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: sm at ara-ler.com

This is 100% reproducible in Thinkpad T430 with FreeBSD 11-CURRENT base r292595
(Dec 22, 2015).

I pass trough a PCI device (USB controller) to a Linux guest. When I boot
Linux VM, it fully controls the USB controller and those USB ports, and I see
e.g. the USB flash in Linux when plug it in. As soon as I shut down Linux, the
host takes the control over, and the USB flash drive appears as /dev/da0 in
FreeBSD. 

The bhyve guest (re)started then does has no control on that PCI device
although it shows it:

$ lspci -v
00:07.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset
Family USB xHCI Host Controller (rev 04) (prog-if 30 [XHCI])
        Subsystem: Lenovo Device 21f3
        Flags: bus master, medium devsel, latency 0, IRQ 24
        Memory at c0010000 (64-bit, prefetchable) [size=64K]
        Capabilities: [70] Power Management version 2
        Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
        Kernel driver in use: xhci_hcd

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

This behavior does not depend on the time when the USB device is plugged:
before guest is booted or after, unplugged before shutdown or after.

The host FreeBSD has the same device description before or after the issue:

$ pciconf -vl
....
ppt0 at pci0:0:20:0:       class=0x0c0330 card=0x21f317aa chip=0x1e318086
rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '7 Series/C210 Series Chipset Family USB xHCI Host
Controller'
    class      = serial bus
    subclass   = USB
....

When the USB device appears in the host device list it looks as:

$ devinfo | grep -B15 mass
pcib1
  pci1
    sdhci_pci0
pcib2
  pci2
    iwn0
pcib3
  pci3
ehci1
  usbus1
    uhub1
      uhub3
        umass0    <==

Since it's a XHCI controller I tried to run FreeBSD kernel with xhci driver not
compiled-in. It does not help. Most likely the USB controller can be also
handled by ehci driver.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list