[TRACKING] Kworker stuck at near 100% CPU usage with Ubuntu 22.04

Any comments on the above, @Matt_Hartley ? The issue ought to be reopened. It is not solved.

Okay, so we have devices attached. I will match the devices attached (this time also adding the Ethernet expansion card to see if I can replicate this and call it a bug).

If I cannot, then we may have a hardware issue with either the expansion card or the board itself.

As I prepare an external USB pendrive to test the booting from it as you suggested: any linux OS you’d prefer? Ubuntu 22.04 LTS would do?

Is a good choice. Also Fedora 37.

Booting from a USB drive gives the same result: after plugging in the ethernet expansion card, the kworker jumps to ~90% CPU usage.

I’ve traced what the kworker is doing with:

# trace-cmd record -e workqueue:workqueue_queue_work
# trace-cmd report > trace.log

And these are the first 100 lines:

cpus=8
       trace-cmd-809966 [003] 69662.878204: workqueue_queue_work: work struct=0xffff988679f49c08 function=flush_to_ldisc workqueue=events_unbound req_cpu=8192 cpu=4294967295
     kworker/4:1-791872 [004] 69662.878226: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878235: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
            sudo-809964 [002] 69662.878241: workqueue_queue_work: work struct=0xffff98860a3f2408 function=flush_to_ldisc workqueue=events_unbound req_cpu=8192 cpu=4294967295
     kworker/4:1-791872 [004] 69662.878290: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878298: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878353: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878361: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878416: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878424: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878478: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878486: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878541: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878549: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878603: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878611: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878666: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878674: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878729: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878737: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878791: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878799: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878854: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878862: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878917: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878925: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878979: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.878987: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879042: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879050: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879105: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879113: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879167: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879175: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879230: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879238: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879293: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879301: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879355: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879363: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879401: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879409: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879463: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879471: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879526: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879534: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879588: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879596: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879651: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879659: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879713: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879721: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879775: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879783: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879838: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879846: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879884: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879891: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879929: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879937: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.879992: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880000: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880055: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880063: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880101: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880108: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880163: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880171: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880226: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880234: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880289: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880297: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880351: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880359: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880414: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880422: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880477: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880485: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880523: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880531: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880585: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880616: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880670: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880678: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880733: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880741: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880795: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880803: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880887: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880895: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880949: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.880957: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.881012: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.881020: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.881075: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.881083: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.881137: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.881145: workqueue_queue_work: work struct=0xffff988aec840218 function=pm_runtime_work workqueue=pm req_cpu=8192 cpu=4
     kworker/4:1-791872 [004] 69662.881183: workqueue_queue_work: work struct=0xffff988c9c9e7dc0 function=hub_event workqueue=usb_hub_wq req_cpu=8192 cpu=4

Only “solution” I know is sudo modprobe -r xhci-pci, but of course then the buiilt-in camera and the ethernet expansion card don’t work.

To confirm:

  • Booted to Live USB only, not booted to the hard drive.

  • Inserted Ethernet expansion card, CPU spike?

This is beginning to feel like a bad expansion card as it cannot replicate it here with a known to be good working card.

Try one more time, expansion card inserted powered off. Then boot to the Live USB, report back.

The same issue as described above, witnessed it by launching top and having kworked using one CPU, solved by removing the module, all the expansion cards, and reboot:

  1. sudo modprobe -r xhci-pci
  2. Remove all the expansion card
  3. sudo modprobe xhci-pci
  4. Put expansion card one by one

For me, merely modprobe -r xhci-pci suffices to stop the mad kworker.

Also, from the kernel bug report I got this reply:

Please boot mainline kernel [0] with kernel parameter "usbcore.dyndbg
xhci_pci.dyndbg log_buf_len=16M" and attach dmesg here.

[0] https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.2/amd64/

See: Bug #1990876 “kworker high CPU usage: issue with xhci_hub_contro...” : Bugs : linux package : Ubuntu

… but I have not found the time to test this. This framework laptop is my main computer and I work 3 jobs and have kids. Eventually I will get around to it.

This morning I’ve updated the bios to 3.17 and so far, after about 7 hours, the laptop is still not going into the crazy CPU usage. Whatever is in 3.17 seems to have done something right. Let’s see if the good behavior persists for days.

1 Like

Delighted to hear about the update! :slight_smile:

After over a year of using a broken laptop, this update has fixed it all. It’s been ~24 hours and all remains good, after using USB devices, the camera, an ethernet expansion card. What a nightmare it’s been, and the whole time FrameWork in denial – this bit, really, is grating. Thank you for the fix, it’s appreciated, but trust on your users would also have been appreciated. Plus many users reported this issue, not just me.

The last remaining issue is the floppy screen that falls off; hinges are far too weak. Even a video of that didn’t convince framework to send me new ones.

Well, spoke too soon: I’ve just plugged a USB-3 mouse into the USB-3 expansion bay, and now I get:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND  
716474 root      20   0       0      0      0 R  86.0   0.0   0:39.06 kworker+ 

… a kworker at 86% CPU usage! Oh, no. Back to modprobe -r xhci-pci.

Looking into dmesg, I see an overcurrent condition soon after plugging the USB mouse (mind you, this mouse works just fine in my desktop computer):

[64539.926576] usb 3-1: new full-speed USB device number 6 using xhci_hcd
[64540.058754] usb 3-1: device descriptor read/64, error -71
[64540.390954] usb 3-1: New USB device found, idVendor=0738, idProduct=1705, bcdDevice= 2.22
[64540.390963] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[64540.390967] usb 3-1: Product: Mad Catz R.A.T.5 Mouse
[64540.390969] usb 3-1: Manufacturer: Mad Catz
[64540.442787] usbcore: registered new interface driver usbhid
[64540.442794] usbhid: USB HID core driver
[64540.450345] input: Mad Catz Mad Catz R.A.T.5 Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:0738:1705.0004/input/input27
[64540.506965] saitek 0003:0738:1705.0004: input,hidraw2: USB HID v1.11 Mouse [Mad Catz Mad Catz R.A.T.5 Mouse] on usb-0000:00:14.0-1/input0
[64542.534730] usb 3-1: USB disconnect, device number 6
[64542.866645] usb 3-1: new full-speed USB device number 7 using xhci_hcd
[64543.066580] usb 3-1: device descriptor read/64, error -71
[64543.434700] usb 3-1: New USB device found, idVendor=0738, idProduct=1705, bcdDevice= 2.22
[64543.434709] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[64543.434712] usb 3-1: Product: Mad Catz R.A.T.5 Mouse
[64543.434715] usb 3-1: Manufacturer: Mad Catz
[64543.438768] input: Mad Catz Mad Catz R.A.T.5 Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:0738:1705.0005/input/input28
[64543.439377] saitek 0003:0738:1705.0005: input,hidraw2: USB HID v1.11 Mouse [Mad Catz Mad Catz R.A.T.5 Mouse] on usb-0000:00:14.0-1/input0
[64552.602726] usb 3-1: USB disconnect, device number 7
[64553.210611] usb 3-1: new full-speed USB device number 8 using xhci_hcd
[64553.433441] usb 3-1: New USB device found, idVendor=0738, idProduct=1705, bcdDevice= 2.22
[64553.433449] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[64553.433452] usb 3-1: Product: Mad Catz R.A.T.5 Mouse
[64553.433455] usb 3-1: Manufacturer: Mad Catz
[64553.437012] input: Mad Catz Mad Catz R.A.T.5 Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:0738:1705.0006/input/input29
[64553.494866] saitek 0003:0738:1705.0006: input,hidraw2: USB HID v1.11 Mouse [Mad Catz Mad Catz R.A.T.5 Mouse] on usb-0000:00:14.0-1/input0
[64565.334709] usb usb3-port1: over-current condition
[64565.334716] usb 3-1: USB disconnect, device number 8
[64565.750798] usb usb3-port3: over-current condition

I tried uplugging the USB-3 mouse, the kworker CPU remains pegged.
Then I tried modprobe -r xhci-pci, kworker goes away; then modprobe xhci-pci: kworker comes back, even though the USB-3 mouse isn’t plugged.
Then I tried modprobe -r xhci-pci, then unplugging the USB-3 expansion bay, then modprobe xhci-pci: the kworker comes back up.

Once the kworker goes awry, it stays bad no matter what. Likely only a reboot resets it.

1 Like

So this just happened to me, it just happened after a reboot, and now won’t go away unless I unload the xhci-pci kernel module. I hadn’t updated, but it was the first time I played around with the battery disconnect feature in the bios. It happened after I rebooted, reconnecting the battery. I saw one other person mention this affecting it, but there wasn’t any discussion on it.
I guess for now I’ll just have to live without the camera. I’m using arch on the 11th gen i5 if that’s needed.

Some questions as we still have not been able to reproduce this on our end.

I’m running the 3.10 BIOS, and am running the latest arch kernel, 6.4.1. I guess I’ll start by updating the BIOS and trying some different kernels. I may try to see if the Ubuntu kernel works too, if I get the time to run through the install.

I was about to switch my kernel, but I checked to make sure that it was still happening, and it has somehow fixed itself after a few restarts. If it happens again, I’ll be back and see if I can help at all, but at the moment it seems to be some weird intermittent issue that is hard to reproduce.

1 Like

Bumping this. I’m getting it with my new AMD 7640U.

Happened at least twice so far. I think it happens when resuming. Happened this evening when waking my laptop connected to power. Mouse cursor was moving maybe 1 frame every few seconds.

Saw kworker at the top of top which switched between a few tasks such as kworker/u32:3-mt76. Didn’t record the others.

Linux 6.1.0-1027-oem x86_64

Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy

I’d appreciate any advice on what to capture next time it happens. Keep in mind it took me a solid three minutes to get the mouse centered on the reboot button, so hoping for some concise terminal commands.

This is happening for me as well on a 13" AMD 7840U on Ubuntu 22.04. It had been working fine for a few hours, and then as I was typing the whole system suddenly came to a grinding halt. top showed the same kworker issue as above.

Also happening on 13" AMD 7840U on NixOS unstable

Linux nixos 6.6.7-zen1 #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan 1 00:00:00 UTC 1980 x86_64 GNU/Linux

At the moment I only have 4 USB type C expansion bay inserted with the following devices plugged in:

EDIT:

After reloading the module it seems that kworker is not spiking CPU usage.

Will update in case I notice some new details.

Also happening on 13" AMD 7640U on Fedora Workstation.

I have two USB C in the rear, a USB A in the left front and HDMI in the right front. I am able to trigger the kworker pegging the CPU at 100% when connected to an external HDMI monitor and removing the HDMI cable with the lid closed.

I was able to ssh in to attempt to kill the kworker process but it just restarts again. The only way I know how to recover the system is to reboot.

I have run a perf sample but I am not sure how to interpret the data. Here is an excerpt:

Samples: 44K of event 'cycles:P', Event count (approx.): 22458763534
  Children      Self  Command          Shared Object                                   Symbol
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] ret_from_fork_asm                                                          ◆
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] ret_from_fork                                                              ▒
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] kthread                                                                    ▒
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] worker_thread                                                              ▒
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] process_one_work                                                           ▒
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] drm_fb_helper_damage_work                                                  ▒
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] drm_fbdev_generic_helper_fb_dirty                                          ▒
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] drm_atomic_helper_dirtyfb                                                  ▒
+   95.17%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] drm_atomic_commit                                                          ▒
+   95.16%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] drm_atomic_helper_commit                                                   ▒
+   95.16%     0.00%  kworker/9:4+eve  [kernel.kallsyms]                               [k] commit_tail                                                                ▒
+   95.16%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] amdgpu_dm_atomic_commit_tail                                               ▒
+   95.16%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dc_update_planes_and_stream                                                ▒
+   95.15%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] commit_planes_for_stream                                                   ▒
+   95.13%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dc_dmub_srv_cmd_run_list                                                   ▒
+   94.99%     0.52%  kworker/9:4+eve  [amdgpu]                                        [k] dmub_srv_wait_for_idle                                                     ▒
+   93.08%    12.96%  kworker/9:4+eve  [kernel.kallsyms]                               [k] delay_halt_mwaitx                                                          ▒
+   86.66%    80.05%  kworker/9:4+eve  [kernel.kallsyms]                               [k] delay_halt                                                                 ▒
+   63.43%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dcn20_program_front_end_for_ctx                                            ▒
+   47.56%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dcn20_program_pipe                                                         ▒
+   31.72%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dmub_abm_set_level                                                         ▒
+   31.70%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dcn20_blank_pixel_data                                                     ▒
+   31.70%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dmub_abm_set_pipe                                                          ▒
+   15.86%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dc_dmub_update_dirty_rect                                                  ▒
+   15.85%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dcn20_prepare_bandwidth                                                    ▒
+   15.85%     0.00%  kworker/9:4+eve  [amdgpu]                                        [k] dcn314_update_clocks                                                       ▒
+    9.08%     0.28%  kworker/9:4+eve  [amdgpu]                                        [k] dm_read_reg_func                                                           ▒
+    6.71%     0.24%  kworker/9:4+eve  [amdgpu]                                        [k] amdgpu_cgs_read_register                                                   ▒