As a result I no longer need to disable iommu in the BIOS or pass iommu=soft as kernel boot parameter.
However, I still get the following dmesg:
POWER DOWN CONNECTED DEVICE (Valve Index):
[77859.996165] retire_capture_urb: 99 callbacks suppressed
[77859.996475] usb 14-1.3: USB disconnect, device number 3
[77859.996479] usb 14-1.3.1: USB disconnect, device number 4
[77859.997165] usb 14-1.3.3: cannot submit urb (err = -19)
[77859.999429] usb 14-1: USB disconnect, device number 2
[77860.002716] usb 14-1.3.2: USB disconnect, device number 5
[77860.005249] usb 14-1.3.3: cannot submit urb 0, error -19: no device
[77860.009536] usb 14-1.3.3: USB disconnect, device number 6
[77860.013694] usb 14-1.3.5: USB disconnect, device number 7
[77860.737515] usb 15-1: USB disconnect, device number 2
[77860.737520] usb 15-1.1: USB disconnect, device number 3
POWER UP CONNECTED DEVICE
[77865.729313] xhci_hcd 0000:08:00.0: xHCI host not responding to stop endpoint command.
[77865.729989] xhci_hcd 0000:08:00.0: xHCI host controller not responding, assume dead
[77865.729995] xhci_hcd 0000:08:00.0: HC died; cleaning up
This reproduces 100% of the time.
Kernel: 5.6.0-rc7-lowlatlocxhci
This is 5.6.0-rc7 with a .config from a lowlatency kernel, ran through
make oldconfig; then localmodconfig to get rid of unused modules and
make menuconfig to turn xhci_hda and xhci_pci into kernel modules.
I can assure you however that this bug happens with any kernel and
any reasonable .config (I tried 4.15-general and several other kernels
and configs too).
Recovery is now possible with:
sudo rmmod xhci_pci
sudo modprobe xhci_pci
This allows me to recover without having to reboot, but also to
experiment with changes to the drivers.
I bought a PCI Express card (PEXUSB3S44V from Startech, see https:/ /www.startech. com/nl/ en/Cards- Adapters/ USB-3.0/ Cards/PCI- Express- USB-3-Card- 4-Dedicated- Channels- 4-Port~ PEXUSB3S44V) basically because it is the most expensive card you can get (I was hoping to rule out certain things with that).
As a result I no longer need to disable iommu in the BIOS or pass iommu=soft as kernel boot parameter.
However, I still get the following dmesg:
POWER DOWN CONNECTED DEVICE (Valve Index):
[77859.996165] retire_capture_urb: 99 callbacks suppressed
[77859.996475] usb 14-1.3: USB disconnect, device number 3
[77859.996479] usb 14-1.3.1: USB disconnect, device number 4
[77859.997165] usb 14-1.3.3: cannot submit urb (err = -19)
[77859.999429] usb 14-1: USB disconnect, device number 2
[77860.002716] usb 14-1.3.2: USB disconnect, device number 5
[77860.005249] usb 14-1.3.3: cannot submit urb 0, error -19: no device
[77860.009536] usb 14-1.3.3: USB disconnect, device number 6
[77860.013694] usb 14-1.3.5: USB disconnect, device number 7
[77860.737515] usb 15-1: USB disconnect, device number 2
[77860.737520] usb 15-1.1: USB disconnect, device number 3
POWER UP CONNECTED DEVICE
[77865.729313] xhci_hcd 0000:08:00.0: xHCI host not responding to stop endpoint command.
[77865.729989] xhci_hcd 0000:08:00.0: xHCI host controller not responding, assume dead
[77865.729995] xhci_hcd 0000:08:00.0: HC died; cleaning up
This reproduces 100% of the time.
Kernel: 5.6.0-rc7- lowlatlocxhci
This is 5.6.0-rc7 with a .config from a lowlatency kernel, ran through
make oldconfig; then localmodconfig to get rid of unused modules and
make menuconfig to turn xhci_hda and xhci_pci into kernel modules.
I can assure you however that this bug happens with any kernel and
any reasonable .config (I tried 4.15-general and several other kernels
and configs too).
Recovery is now possible with:
sudo rmmod xhci_pci
sudo modprobe xhci_pci
This allows me to recover without having to reboot, but also to
experiment with changes to the drivers.