On Sun, Dec 23, 2018 at 08:49:42AM -0500, Eric Blau wrote: > Hi folks, > > I noticed a regression introduced sometime after 4.19.4 in USB power > management. I have a 2015 MacBook Pro. When I try to do a suspend or a > suspend+hibernate, I get the following error messages trying to > suspend usb2 and the suspend fails. This works fine in 4.19.4: > > Dec 22 13:50:36 eric-macbookpro kernel: Freezing remaining freezable > tasks ... (elapsed 0.001 seconds) done. > Dec 22 13:50:36 eric-macbookpro kernel: Suspending console(s) (use > no_console_suspend to debug) > Dec 22 13:50:36 eric-macbookpro kernel: dpm_run_callback(): > usb_dev_freeze+0x0/0x10 returns -16 > Dec 22 13:50:36 eric-macbookpro kernel: PM: Device usb2 failed to > freeze async: error -16 > Dec 22 13:50:38 eric-macbookpro systemd[1]: > systemd-hybrid-sleep.service: Main process exited, code=exited, > status=1/FAILURE > Dec 22 13:50:38 eric-macbookpro systemd[1]: > systemd-hybrid-sleep.service: Failed with result 'exit-code'. > Dec 22 13:50:38 eric-macbookpro systemd[1]: Failed to start Hybrid > Suspend+Hibernate. > Dec 22 13:50:38 eric-macbookpro systemd[1]: Dependency failed for > Hybrid Suspend+Hibernate. > Dec 22 13:50:38 eric-macbookpro systemd[1]: hybrid-sleep.target: Job > hybrid-sleep.target/start failed with result 'dependency'. > Dec 22 13:50:38 eric-macbookpro systemd-logind[1573]: Operation > 'sleep' finished. > Dec 22 13:50:38 eric-macbookpro systemd[1]: Stopped target Sleep. > > The behavior exists in 4.19.8 and 4.19.11, the kernel versions I have > upgraded to with Arch Linux, so the regression was introduced sometime > between 4.19.4 and 4.19.8. Hibernate still works but when I resume > from hibernate, there is a ksoftirqd and kworker thread/process > together taking up 100% of one core. If I turn off auto power control > for usb1 and usb2, the threads stop spinning. i.e., > > echo 'on' > '/sys/bus/usb/devices/usb1/power/control > > Any suggestions as to where this regression was introduced and what > can be done to fix it? Sorry, this is a known issue, will be fixed in the next 4.19 release that should be out next week. If you are curious, it is fixed by commit 45f750c16cae ("xhci: Don't prevent USB2 bus suspend in state check intended for USB3 only") in Linus's tree. thanks, greg k-h