[regression] USB power management failure to suspend / high CPU usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?


Here is the partial thread from linux-stable:

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@xxxxxxxxx> wrote:
> >
> > 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@xxxxxxxxxxxxxxxxxxx>
> AuthorDate: Fri Dec 14 17:06:09 2018 +0100
> Commit:     Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> 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@xxxxxxxxxxxxxxx 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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux