On Tue, 22 Jan 2019, Eric Blau wrote: > Hi linux-usb list, > > I have had issues with USB power management since upgrading from > 4.19.4 to 4.19.8. The issue still persists even with 4.20.3. I had > reported the issue on the linux-stable list and Greg K-H asked me to > report the issue here. Here is the original report which still holds > for 4.20.3. > > Could you please advise on what I can help with to get this resolved? > The suggested fix in 4.20 did not solve the issue. > > --- > > 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? In the absence of any better suggestions, you can always try using git bisect between 4.19.4 and 4.19.8. The amount of churn ought to be relatively small, so it shouldn't take too long to home in on the commit which caused the problem. Also, you should provide a little more information about your system in your bug report. For example, the output from "lsusb". Alan Stern