← Back to team overview

kernel-packages team mailing list archive

[Bug 1488426] Re: High CPU usage of kworker/ksoftirqd

 

I also have a similar problem which does Not seem to be solved by the
patched kernel although the perf report looks very similar and plugging
in a USB device clears the problem. The starting and inhibiting of the
kworker spinning is very specific and rather bizare on my new Skylake
machine running Linux Mint 17.3 beta (Cinnamon 2.8 desktop) with kernels
between 3.19 and 4.2 during test.

It only starts when external power is off and the machine is suspended/resumed - I have not so far been able to provoke it any other way.
If power is restored excess usage stops but restarts if power unplugged.
If power is on and a suspend/resume cycle is carried out external power can be unplugged without the excess usage.
Any USB 2 device stops the excess usage when plugged into the USB2 port including USB3 devices.
USB 3 devices plugged into a USB3 port do not stop the power usage.
Turning on the webcam stops the usage as long as it is on - the webcam is on the usb2 hub
Turning Bluetooth off and on with the function key stops the high usage as long as it still remains on. Software disabling and enabling does not work. When bluetooth switched by function key it disappears/appears in lsusb under the USB 2 hub

In other words everything seems to point to the USB 2 system. 
perf report
+   68.46%     0.00%  kworker/0:3      [kernel.kallsyms]             [k] ret_from_fork                 ▒
+   68.46%     0.00%  kworker/0:3      [kernel.kallsyms]             [k] kthread                       ▒
+   68.46%     0.00%  kworker/0:3      [kernel.kallsyms]             [k] worker_thread                 ▒
+   68.43%     0.02%  kworker/0:3      [kernel.kallsyms]             [k] process_one_work              ▒
+   67.44%     0.07%  kworker/0:3      [kernel.kallsyms]             [k] rpm_idle                      ▒
+   66.89%     0.07%  kworker/0:3      [kernel.kallsyms]             [k] rpm_suspend                   ▒
+   66.84%     0.02%  kworker/0:3      [kernel.kallsyms]             [k] pm_runtime_work               ▒
+   66.47%     0.00%  kworker/0:3      [kernel.kallsyms]             [k] usb_runtime_idle              ▒
+   66.47%     0.00%  kworker/0:3      [kernel.kallsyms]             [k] __rpm_callback                ▒
+   66.44%     0.00%  kworker/0:3      [kernel.kallsyms]             [k] __pm_runtime_suspend          ▒
+   66.23%     0.02%  kworker/0:3      [kernel.kallsyms]             [k] rpm_callback                  ▒
+   66.21%     0.02%  kworker/0:3      [kernel.kallsyms]             [k] usb_runtime_suspend           ▒
+   66.11%     0.02%  kworker/0:3      [kernel.kallsyms]             [k] usb_suspend_both              ▒
+   64.11%     0.02%  kworker/0:3      [kernel.kallsyms]             [k] hub_resume                    ▒
+   64.11%     0.02%  kworker/0:3      [kernel.kallsyms]             [k] usb_resume_interface.isra.6   ▒
+   64.04%     0.52%  kworker/0:3      [kernel.kallsyms]             [k] hub_activate                  ▒
+   62.49%     0.24%  kworker/0:3      [kernel.kallsyms]             [k] hub_port_status               ▒
+   62.02%     0.21%  kworker/0:3      [kernel.kallsyms]             [k] usb_control_msg               ▒
+   59.15%     0.26%  kworker/0:3      [kernel.kallsyms]             [k] usb_start_wait_urb            ▒
+   53.26%     0.05%  kworker/0:3      [kernel.kallsyms]             [k] usb_submit_urb                ▒
+   53.26%     0.64%  kworker/0:3      [kernel.kallsyms]             [k] usb_submit_urb.part.6         ▒
+   50.96%     1.70%  kworker/0:3      [kernel.kallsyms]             [k] usb_hcd_submit_urb            ▒
+   36.85%    36.23%  kworker/0:3      [kernel.kallsyms]             [k] xhci_hub_control              ▒
+   17.07%     0.00%  ksoftirqd/0      [kernel.kallsyms]             [k] ret_from_fork                 ▒
+   17.07%     0.00%  ksoftirqd/0      [kernel.kallsyms]             [k] kthread                       ▒
+   16.65%     1.33%  ksoftirqd/0      [kernel.kallsyms]             [k] smpboot_thread_fn             ▒
+    9.88%     0.69%  kworker/0:3      [kernel.kallsyms]             [k] usb_hcd_giveback_urb          ▒
+    8.22%     0.83%  kworker/0:3      [kernel.kallsyms]             [k] __tasklet_schedule  
....................................

lspci and lsusb
@Helios:~$ lspci
00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 07)
00:14.0 USB controller: Intel Corporation Device 9d2f (rev 21)
00:14.2 Signal processing controller: Intel Corporation Device 9d31 (rev 21)
00:16.0 Communication controller: Intel Corporation Device 9d3a (rev 21)
00:17.0 SATA controller: Intel Corporation Device 9d03 (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d14 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Device 9d48 (rev 21)
00:1f.2 Memory controller: Intel Corporation Device 9d21 (rev 21)
00:1f.3 Audio device: Intel Corporation Device 9d70 (rev 21)
00:1f.4 SMBus: Intel Corporation Device 9d23 (rev 21)
01:00.0 Network controller: Intel Corporation Wireless 3160 (rev 83)

@Helios:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
    |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 2: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
    |__ Port 4: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 4: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
@Helios:~$ 

I have also found a thread looking into similar problems at  https://www.spinics.net/lists/linux-usb/msg133143.html and I get an identical output to 
echo 'module usbcore =p' >/sys/kernel/debug/dynamic_debug/control
which they use as a diagnostic. 
I should note I have i915.preliminary_hw_support=1 as Skylake being considered of "preliminary hardware support" by the Intel DRM kernel driver but it seems to actually make no difference.
Please let me know if there is any additional information I can provide or tests I can run

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1488426

Title:
  High CPU usage of kworker/ksoftirqd

Status in HWE Next:
  New
Status in linux package in Ubuntu:
  In Progress

Bug description:
  kworker consuming 71.5% cpu resource
  ksoftirqd consuming 28.9% cpu resource

  It leads to power consumption issue and sometimes leads to BT does not
  work.

To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/1488426/+subscriptions


References