kworkerのCPU使用率が高すぎるのでなんとかした

題名の通りkworkerのCPU使用率が高いのをなんとかした記録。OSはCentOS 7.2

ぐぐってみたところ

Linuxで一つのコアのCPU利用率が異様に高いのを何とかする - Qiita

ubuntuでkworkerのcpu使用率がやたら高い - Qiita

ヒットするが、こちらの環境とはマッチしないみたい。

覚えたてのperfを使ってみます。

Samples: 44K of event 'cycles', Event count (approx.): 40358935514
  Children      Self  Command         Shared Object             Symbol
+   70.47%     0.00%  kworker/2:2     [kernel.kallsyms]         [k] kthread
+   70.47%     0.00%  kworker/2:2     [kernel.kallsyms]         [k] ret_from_fork
+   70.47%     0.00%  kworker/2:2     [kernel.kallsyms]         [k] worker_thread
+   70.44%     0.07%  kworker/2:2     [kernel.kallsyms]         [k] process_one_work
+   69.37%     0.05%  kworker/2:2     [kernel.kallsyms]         [k] rpm_idle
+   69.09%     0.08%  kworker/2:2     [kernel.kallsyms]         [k] rpm_suspend
+   68.98%     0.03%  kworker/2:2     [kernel.kallsyms]         [k] pm_runtime_work
+   68.83%     0.04%  kworker/2:2     [kernel.kallsyms]         [k] __rpm_callback
+   68.78%     0.01%  kworker/2:2     [kernel.kallsyms]         [k] usb_runtime_idle
+   68.74%     0.01%  kworker/2:2     [kernel.kallsyms]         [k] __pm_runtime_suspend
+   68.54%     0.00%  kworker/2:2     [kernel.kallsyms]         [k] rpm_callback
+   68.49%     0.01%  kworker/2:2     [kernel.kallsyms]         [k] usb_runtime_suspend
+   68.46%     0.03%  kworker/2:2     [kernel.kallsyms]         [k] usb_suspend_both
+   66.53%     0.01%  kworker/2:2     [kernel.kallsyms]         [k] usb_resume_interface.isra.5
+   66.53%     0.01%  kworker/2:2     [kernel.kallsyms]         [k] hub_resume
+   66.49%     0.42%  kworker/2:2     [kernel.kallsyms]         [k] hub_activate
+   65.50%     0.28%  kworker/2:2     [kernel.kallsyms]         [k] hub_port_status
+   64.32%     0.28%  kworker/2:2     [kernel.kallsyms]         [k] usb_control_msg
+   61.81%     0.22%  kworker/2:2     [kernel.kallsyms]         [k] usb_start_wait_urb
+   56.04%     0.07%  kworker/2:2     [kernel.kallsyms]         [k] usb_submit_urb
+   55.97%     0.54%  kworker/2:2     [kernel.kallsyms]         [k] usb_submit_urb.part.5
+   54.46%     1.71%  kworker/2:2     [kernel.kallsyms]         [k] usb_hcd_submit_urb
+   40.82%    39.99%  kworker/2:2     [kernel.kallsyms]         [k] xhci_hub_control
+   16.33%     0.00%  ksoftirqd/2     [kernel.kallsyms]         [k] kthread
+   16.33%     0.00%  ksoftirqd/2     [kernel.kallsyms]         [k] ret_from_fork
+   15.88%     1.32%  ksoftirqd/2     [kernel.kallsyms]         [k] smpboot_thread_fn

xHCIが悪さをしているようです。

USBをリセットしてみます。

[Reset USB 2.0 (ehci) & USB 3.0 (xhci) Without Reboot in Linux Kernel] (http://www.ubuntubuzz.com/2016/06/reset-usb-20-ehci-usb-30-xhci-without-reboot-linux.html)

使用率が低くなりました。よかったね。