> Switching to the performance govenor, removing the drive and re-adding it worked around the bug.
>
> Something must be blocking power to the xhci when the cpu is saving power...?
I believe that USB autosuspend is the culprit here. I'm seeing this problem on Fedora Linux as well, so I suspect it's an upstream bug.
For those of you who are having this problem: please try disabling USB autosuspend on all USB devices, by running the following command as root:
$ for F in /sys/bus/usb/devices/*/power/control; do echo on >"${F}"; done
You can then verify that the power control status for all devices is "on", not "auto". E.g.:
James Cloos wrote in comment 34:
> Switching to the performance govenor, removing the drive and re-adding it worked around the bug.
>
> Something must be blocking power to the xhci when the cpu is saving power...?
I believe that USB autosuspend is the culprit here. I'm seeing this problem on Fedora Linux as well, so I suspect it's an upstream bug.
For those of you who are having this problem: please try disabling USB autosuspend on all USB devices, by running the following command as root:
$ for F in /sys/bus/ usb/devices/ */power/ control; do echo on >"${F}"; done
You can then verify that the power control status for all devices is "on", not "auto". E.g.:
$ grep . /sys/bus/ usb/devices/ */power/ control usb/devices/ 1-1/power/ control: on usb/devices/ 1-2/power/ control: on usb/devices/ 7-1/power/ control: on usb/devices/ 7-2/power/ control: on usb/devices/ usb1/power/ control: on usb/devices/ usb2/power/ control: on usb/devices/ usb3/power/ control: on usb/devices/ usb4/power/ control: on usb/devices/ usb5/power/ control: on usb/devices/ usb6/power/ control: on usb/devices/ usb7/power/ control: on usb/devices/ usb8/power/ control: on
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
/sys/bus/
If you do this, do your USB3 ports work properly?
(For me, on Fedora Linux, disabling USB autosuspend made all my USB ports work perfectly.)
Note: if you've already caused the xhci_hcd driver to die, you'll need to reboot first.