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 -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp