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?
Thanks, Eric
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
On Sun, Dec 23, 2018 at 11:28 AM Greg KH greg@kroah.com wrote:
On Sun, Dec 23, 2018 at 08:49:42AM -0500, Eric Blau wrote:
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.
Great, thanks for letting me know. I'll look out for the next 4.19 release.
Regards, Eric
On Sun, Dec 23, 2018 at 11:28 AM Greg KH greg@kroah.com wrote:
On Sun, Dec 23, 2018 at 08:49:42AM -0500, Eric Blau wrote:
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.
Hi Greg,
I've upgraded to 4.20 and the same regression still exists. I know this is not a stable release currently, but 4.20 has 45f750c16cae merged as commit 93a86395b429:
commit 93a86395b429c3a68a0d029f584f39890c0801b2 Merge: 45f750c16cae 28a86092b175 Author: Greg Kroah-Hartman gregkh@linuxfoundation.org AuthorDate: Fri Dec 14 17:06:09 2018 +0100 Commit: Greg Kroah-Hartman gregkh@linuxfoundation.org CommitDate: Fri Dec 14 17:06:09 2018 +0100
Merge tag 'usb-serial-4.20-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
The same workaround is still effective, but I thought I'd let you know that I'm still experiencing the same issue. If there's anything else I can do to help track this down, please let me know.
Thanks, Eric
On Wed, Jan 02, 2019 at 10:42:55AM -0500, Eric Blau wrote:
On Sun, Dec 23, 2018 at 11:28 AM Greg KH greg@kroah.com wrote:
On Sun, Dec 23, 2018 at 08:49:42AM -0500, Eric Blau wrote:
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.
Hi Greg,
I've upgraded to 4.20 and the same regression still exists. I know this is not a stable release currently, but 4.20 has 45f750c16cae merged as commit 93a86395b429:
commit 93a86395b429c3a68a0d029f584f39890c0801b2 Merge: 45f750c16cae 28a86092b175 Author: Greg Kroah-Hartman gregkh@linuxfoundation.org AuthorDate: Fri Dec 14 17:06:09 2018 +0100 Commit: Greg Kroah-Hartman gregkh@linuxfoundation.org CommitDate: Fri Dec 14 17:06:09 2018 +0100
Merge tag 'usb-serial-4.20-rc7' of
https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
The same workaround is still effective, but I thought I'd let you know that I'm still experiencing the same issue. If there's anything else I can do to help track this down, please let me know.
Can you post the information that you are still having this issue on the linux-usb@vger.kernel.org mailing list, along with any kernel logs that you might have that shows this? The developers there can help you out.
thanks,
greg k-h
linux-stable-mirror@lists.linaro.org