追加のSSDを取得した後、kworkerがCPUを大量に使用する

追加のSSDを取得した後、kworkerがCPUを大量に使用する

私は、約5年間Linuxを実行してきた7年間のDell Inspiron 3542(Intel i5)です。

最近、HDDスロットに追加のSSDを取り付け、トレイを使用してHDDをDVDドライブの位置に移動しました。その後、SSDにXu​​buntu 20.04を新しくインストールしました。 PCで何も実行されていませんが、CPU 0のCPU使用率が高い(〜75%)ことがわかりました。 top コマンドは、kworker プロセスが占める CPU を表示します。

   184 root      20   0       0      0      0 I  75.7   0.0  17:31.07 kworker/0:2-kacpid

ここで公開されている他の同様の問題と同様に、一般的な解決策は、どのGPEがあまりにも多くの割り込みを引き起こすかを見つけて無効にすることです。の出力には、grep . -r /sys/firmware/acpi/interrupts値が高い次の行が表示されます。

/sys/firmware/acpi/interrupts/gpe11:11640215  EN STS enabled      unmasked
/sys/firmware/acpi/interrupts/sci:11640301

gpe11を無効または無効にするとecho mask > /sys/firmware/acpi/interrupts/gpe11システムが停止します(モニター、キーボード、マウスが応答しなくなり、サウンドが再生されているとDJが何かをするかのようにサウンドが繰り返され始めます)。

sci をディセーブルまたはブロックすると、gpe11 および sci 割り込みは 0 にリセットされますが、再びインクリメントを開始します。 CPU使用率に影響を与えず、CPU使用率が高く維持されます。

その他の実験と観察:

  • 起動時に黒い画面が表示されるacpi=offなどの一般的なカーネルパラメータの変更acpi_mask_gpe=0x11

  • この問題は、Live USBから起動したオペレーティングシステムにも存在します。

  • Xubuntu 18.04 および最新バージョンの Arch Linux Live USB に問題がまだ存在します。

  • 出力はcat /proc/interrupts次のとおりです(acpiで切り捨て)。

             CPU0       CPU1       CPU2       CPU3       
    0:          6          0          0          0   IO-APIC   2-edge      timer
    1:       9379          0          0          0   IO-APIC   1-edge      i8042
    8:          0          1          0          0   IO-APIC   8-edge      rtc0
    9:          0   21362967          0          0   IO-APIC   9-fasteoi   acpi
    
  • dmesg関連の出力echo l > /proc/sysrq-triggerは次のとおりです。

    [ 2174.058304] CPU: 0 PID: 184 Comm: kworker/0:2 Not tainted 5.11.0-27-generic #29~20.04.1-Ubuntu
    [ 2174.058305] Hardware name: Dell Inc. Inspiron 3542/0926J6, BIOS A03 05/27/2014
    [ 2174.058307] Workqueue: kacpid acpi_os_execute_deferred
    [ 2174.058309] RIP: 0010:acpi_ns_search_one_scope+0x16a/0x208
    [ 2174.058310] Code: 49 89 1f 45 31 c0 b9 10 00 00 00 bf 74 00 00 00 48 c7 c2 b0 e8 ca a0 48 c7 c6 90 e8 ca a0 e8 f3 d9 00 00 31 c0 e9 8f 00 00 00 <48> 8b 5b 20 e9 4c ff ff ff f6 05 7d dc 19 01 04 74 55 f6 05 c3 34
    [ 2174.058312] RSP: 0018:ffffb5850051fb80 EFLAGS: 00000212
    [ 2174.058313] RAX: 0000000037314547 RBX: ffff8947808f57b0 RCX: 0000000000000010
    [ 2174.058314] RDX: ffffffffa0cae8b0 RSI: ffffffffa0cae890 RDI: 0000000000000042
    [ 2174.058315] RBP: ffffb5850051fbb0 R08: 0000000000000005 R09: 0000000000000003
    [ 2174.058317] R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffa1a7e880
    [ 2174.058318] R13: ffff8947801d1b40 R14: 0000000000000000 R15: ffffb5850051fc60
    [ 2174.058319] FS:  0000000000000000(0000) GS:ffff8947aba00000(0000) knlGS:0000000000000000
    [ 2174.058320] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 2174.058321] CR2: 00007f4c9b5e4d9c CR3: 0000000069074001 CR4: 00000000001706f0
    [ 2174.058322] Call Trace:
    [ 2174.058323]  acpi_ns_search_and_enter+0x347/0x4ca
    [ 2174.058325]  acpi_ns_lookup+0x63e/0x866
    [ 2174.058326]  acpi_ps_get_next_namepath+0xbc/0x35a
    [ 2174.058327]  acpi_ps_get_next_arg+0x69d/0x79a
    [ 2174.058328]  ? acpi_ut_trace_ptr+0x2b/0x71
    [ 2174.058329]  acpi_ps_parse_loop+0x4be/0x924
    [ 2174.058330]  acpi_ps_parse_aml+0x1af/0x550
    [ 2174.058331]  acpi_ps_execute_method+0x208/0x2ca
    [ 2174.058332]  acpi_ns_evaluate+0x34e/0x4f0
    [ 2174.058333]  acpi_ev_asynch_execute_gpe_method+0xc0/0x15e
    [ 2174.058334]  acpi_os_execute_deferred+0x1a/0x30
    [ 2174.058335]  process_one_work+0x220/0x3c0
    [ 2174.058336]  worker_thread+0x4d/0x3f0
    [ 2174.058337]  kthread+0x114/0x150
    [ 2174.058338]  ? process_one_work+0x3c0/0x3c0
    [ 2174.058339]  ? kthread_park+0x90/0x90
    [ 2174.058340]  ret_from_fork+0x22/0x30
    
  • sudo dmidecodeforの出力は0x0011次のとおりです。0x0011該当するかどうかはわかりませんgpe11。これがGPE番号付けの仕組みではない場合は、完全な出力を提供できます。

    Handle 0x0011, DMI type 10, 6 bytes
    On Board Device Information
        Type: Video
        Status: Enabled
        Description: Mobile Intel HD Graphics
    
  • SSDとLive USBからHDDキャディを削除しようとしましたが、システムがまったく起動しませんでした(カーネルパニックが発生しました)。

  • キャディのスイッチを入れたがキャディを外したのと同じ結果

  • BIOSを更新しようとしましたが失敗しました。 Dellはアップデート用のEXEファイルのみを提供するため、これは別の問題です。

ベストアンサー1

自分で解決しました:)

何らかの方法でハードドライブを取り外した状態でシステムを起動できます。これはランダムに試みると発生します。最近では、ライブUSBからVoid Linuxを起動しました。 CPU使用量はほぼゼロに戻ります。

その後、キャディのスイッチをオンにしようとしましたが、システムの起動時にCPU使用率が0に近づいています。

おすすめ記事