kworker/kacpidのCPU使用率が高い問題に対処した
自宅内で持ち運んでカジュアルに使うための軽量な2-in-1タブレットの調子が最近おかしい。特に付属のキーボードを取り付けると挙動がおかしくなる。不思議に思ってtopを見ると、ibus-daemonとgnome-shellのCPU使用率を異様に高かった。
そこでとりあえずibus-daemonを止めてみることにした。
$ ibus exit
すると今度はkworker/kacpidというプロセスのCPU使用率が高いことが分かった。これを止めることはできない。調べるとこれはACPIの割り込みを処理しているらしく、ハードウェアの不具合かなにかで割り込みがやたらと起こっている可能性がある。早速割り込みを調べてみよう。
$ rgrep enabled /sys/firmware/acpi/interrupts/
/sys/firmware/acpi/interrupts/ff_pwr_btn: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe66: 14 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe62: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe50: 3457 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe09: 979302 EN enabled unmasked
/sys/firmware/acpi/interrupts/ff_gbl_lock: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe6F: 0 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe6D: 130 EN enabled unmasked
/sys/firmware/acpi/interrupts/gpe61: 2 EN enabled unmasked
これをみると、私の環境ではgpe09の割り込みが明らかに多いことが分かる。この割り込みをマスクすると問題は収まった。
$ sudo bash
# echo mask > /sys/firmware/acpi/interrupts/gpe09
しかしこれではリブートすると元に戻ってしまうので、crontab -eした上で
@reboot echo > /sys/firmware/acpi/interrupts/gpe09
このように記述した。
そしてすっかり忘れていたibus-daemonを起動した。
$ ibus-daemon -d -x
ただ、根本的な問題としておそらくハードウェア障害だと思うので、そろそろ新しい2-in-1ラップトップを買わなければならない。今使っているのはEve-Vというなかなかハイスペックな2-in-1タブレットだが、流石に3年前の製品なのでそろそろ古い。しかし、2-in-1タブレットでここまでのスペックを持っている製品はない。。Eve-Vの後継機がもうすぐ出るらしいので、それを買おうかと思っている。