新しいデスクトップでは、スリープから復帰した後、CPUの1つが常に100%使用されています。最初はxorg
プロセス(4289)でしたが、現在はkworkerスレッドです。
ぼくの /var/log/syslog
には、次のメッセージが表示されます(850+行/秒)。
Aug 26 17:10:55 mortal kernel: [ 3657.482759] ACPI Error: [PGRT] Namespace lookup failure, AE_NOT_FOUND (20160108/psargs-359)
Aug 26 17:10:55 mortal kernel: [ 3657.482760] ACPI Error: Method parse/execution failed [\_GPE._L6F] (Node ffff8810348d56e0), AE_NOT_FOUND (20160108/psparse-542)
top
の出力
88 root 20 0 0 0 0 D 94,0 0,0 28:32.44 [kworker/0:1]
4289 root 20 0 418620 164880 68252 S 15,6 0,3 4:27.62 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
3404 root 20 0 258320 3540 1948 S 10,3 0,0 5:31.55 /usr/sbin/rsyslogd
5175 mor 20 0 1348768 63636 46232 S 5,3 0,1 1:34.50 vlc
4497 mor 20 0 486068 33220 25884 S 5,0 0,1 0:17.19 marco
4531 mor 20 0 482184 27524 20684 S 4,0 0,0 0:15.24 /usr/lib/mate-panel/wnck-applet
4709 mor 20 0 1708964 435576 123388 S 4,0 0,7 7:23.20 firefox-esr
4291 root 20 0 273140 5864 4984 S 3,0 0,0 1:35.58 /usr/lib/accountsservice/accounts-daemon
4517 mor 9 -11 574288 12692 9456 S 1,7 0,0 1:07.14 /usr/bin/pulseaudio --start --log-target=syslog
4667 mor 20 0 261672 22152 18844 S 0,7 0,0 0:31.10 gkrellm
7 root 20 0 0 0 0 S 0,3 0,0 0:04.67 [rcu_sched]
1134 root 20 0 0 0 0 S 0,3 0,0 0:00.29 [jbd2/sda2-8]
4432 mor 20 0 406236 26144 20616 S 0,3 0,0 0:00.31 x-session-manager
4493 mor 20 0 1459196 32440 25336 S 0,3 0,0 0:03.45 /usr/bin/mate-settings-daemon
4501 mor 20 0 565268 34848 26120 S 0,3 0,1 0:03.35 mate-panel
4513 mor 20 0 1242952 44264 35320 S 0,3 0,1 0:02.10 caja
4543 mor 20 0 526044 34764 28612 S 0,3 0,1 0:01.08 mate-screensaver
4618 mor 20 0 548024 29876 23360 S 0,3 0,0 0:00.35 /usr/lib/mate-panel/clock-applet
5541 mor 20 0 81856 12128 5672 S 0,3 0,0 0:00.81 xterm
6090 mor 20 0 389372 48044 37352 S 0,3 0,1 0:00.86 keepassx
6291 mor 20 0 42928 3776 3008 R 0,3 0,0 0:00.83 top
6300 mor 20 0 86828 16924 5720 S 0,3 0,0 0:01.08 xterm
1 root 20 0 15820 1800 1632 S 0,0 0,0 0:01.13 init [2]
2 root 20 0 0 0 0 S 0,0 0,0 0:00.00 [kthreadd]
3 root 20 0 0 0 0 S 0,0 0,0 0:00.03 [ksoftirqd/0]
5 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 [kworker/0:0H]
8 root 20 0 0 0 0 S 0,0 0,0 0:00.00 [rcu_bh]
9 root rt 0 0 0 0 S 0,0 0,0 0:00.02 [migration/0]
10 root rt 0 0 0 0 S 0,0 0,0 0:00.00 [watchdog/0]
11 root 20 0 0 0 0 S 0,0 0,0 0:00.00 [cpuhp/0]
12 root 20 0 0 0 0 S 0,0 0,0 0:00.00 [cpuhp/1]
13 root rt 0 0 0 0 S 0,0 0,0 0:00.03 [watchdog/1]
14 root rt 0 0 0 0 S 0,0 0,0 0:00.01 [migration/1]
15 root 20 0 0 0 0 S 0,0 0,0 0:00.00 [ksoftirqd/1]
16 root 20 0 0 0 0 S 0,0 0,0 0:00.00 [kworker/1:0]
これの原因は何ですか?どのようにデバッグできますか?
これは、Skylakeチップセットを搭載したLinuxカーネルの 既知のバグ です。
私は here の周りに回避策を見つけました。これは症状を解消します。
次のコマンドを発行します(rootとして、rootでない場合は「Sudo」を追加します)。
echo "disable" > /sys/firmware/acpi/interrupts/gpe6F
これにより、次の起動まで問題のACPI割り込みが無効になります。これが頻繁に発生し、BIOSとカーネルアップデートで削除されなかった場合は、新しいバグレポートをカーネルBugzillaに提出してください。
Asrock H170 Pro4SのBIOSバージョン2.00で動作することが報告されています( コメント#2 )。カーネル4.5および4.6でテスト済み。
補遺 最近BIOSファームウェアをアップグレードしたので、問題が発生することはありません。しかし、アップグレードは私のマシンにほとんど障害を与えており、回復するのにしばらく時間がかかりました。
これで、起動時にカーネルにパラメーターを追加して、これが起こらないようにすることができます。カーネルブートパラメータにacpi_mask_gpe=0x6f
を追加するだけです。
これは、ブートローダーによって異なります。たとえば、grub(およびArch)を使用しているため、/etc/default/grub
ファイルに追加し、grub-mkconfig -o /boot/grub/grub.cfg
を使用して再構築する必要がありました。以下がArchのwikiに関する説明ですが、YMMVは https://wiki.archlinux.org/index.php/kernel_parameters です。
これは修正を示すバグコメント https://bugzilla.kernel.org/show_bug.cgi?id=117481#c2 であり、実際のパッチへのリンクが含まれています。