kworker 在空闲系统上的使用率很高 CPU

kworker has high CPU usage on idle system

感谢您的光临!

所以我刚刚为我的 RaspberryPi 3B v1.2 买了一个 Pi desktop kit,它有一个带有 mSATA 磁盘插槽、实时时钟和电源控制的附加模块。我在 mSATA SSD 上安装了最新的 raspbian stretch(内核版本 4.9.59-v7+),现在正在从它引导 Raspbian,板载卡 reader 中没有 SD 卡。

一个 kworker 进程现在不断占用 8.0-13.5% CPU 的使用率,我认为这似乎完全没有必要,而且它会产生令人讨厌的后果,即 Kodi 的视频滞后。在我添加模块之前,这从未发生过。

然后我尝试 perf(灵感来自 this thread) 运行 sudo perf record -D 1000 -g -a sleep 20 然后 sudo perf report 找出哪些内核任务可能负责:

但我不知道如何从那里继续减少工作量。 __timer_delayarch_timer_read_counter_longarch_counter_get_cntpct似乎CPU使用率高,会不会是插件板内嵌的实时时钟引起的?其他高负载任务是 finish_task_switch_raw_spin_unlock_irqrestore 任务,但我猜不出那是什么。

我说的对吗,这是 CPU 不必要的工作量,如果是,我该如何减少它?

非常感谢!

我遇到了同样的问题,发现根本原因是我没有将 SD 卡插入 Raspberry Pi。当 SD 卡丢失时,内核会频繁尝试扫描 SD 卡插槽,这会导致高 CPU 使用率。 下载 sdtweak.dtbo 并将 /boot/overlays/ 下现有的替换为新的,然后将 dtoverlay=sdtweak,poll_once 添加到 /boot/config.txt 并重新启动机器。它对我有用。

另请参阅:https://github.com/raspberrypi/linux/issues/2567