私はARMプロセッサでdebian Busterを実行するカスタムヘッドレスLinuxシステムを開発しています。
Linuxカーネル5.10.72
しかし、最近CPU使用率を見てみると、次のようになります。
私はbrcmfが使用しているWi-Fiドライバ/チップと関係があると思います(拡張モジュールはEmbedded Artistの1DX M.2モジュールです)。
システムで動作しようとしましたが、できません。
活用度の高い他の2つのkworkerは時々表示されるため、互いに関連がないようですが、問題のkworkerのCPUを一部制限しているようです。
画像の3番目の部分は、ほとんどの場合見える外観です。
どんな提案がありますか?
Artemのリクエストに応じて編集
編集する:
走った後
echo l > /proc/sysrq-trigger
dmesg
新しい出力は次のとおりです。
[ 875.933977] sysrq: Show backtrace of all active CPUs
[ 875.939010] sysrq: CPU0:
[ 875.939017] Call trace:
[ 875.939031] dump_backtrace+0x0/0x1d0
[ 875.939038] show_stack+0x18/0x24
[ 875.939047] showacpu+0x64/0x80
[ 875.939056] flush_smp_call_function_queue+0xd8/0x250
[ 875.939063] generic_smp_call_function_single_interrupt+0x14/0x20
[ 875.939070] ipi_handler+0xa0/0xd0
[ 875.939078] handle_percpu_devid_fasteoi_ipi+0x98/0xb0
[ 875.939084] __handle_domain_irq+0xb0/0x130
[ 875.939092] gic_handle_irq+0xc0/0x140
[ 875.939098] el1_irq+0xcc/0x180
[ 875.939105] _raw_spin_unlock_irqrestore+0x18/0x50
[ 875.939113] sdhci_request+0xac/0xcc
[ 875.939121] __mmc_start_request+0x68/0x140
[ 875.939127] mmc_start_request+0x94/0xc0
[ 875.939133] mmc_wait_for_req+0x70/0x100
[ 875.939140] mmc_io_rw_extended+0x1d4/0x2d0
[ 875.939147] sdio_io_rw_ext_helper+0x194/0x240
[ 875.939153] sdio_readl+0x30/0x60
[ 875.939191] brcmf_sdiod_readl+0x8c/0x9c [brcmfmac]
[ 875.939217] brcmf_sdio_intr_rstatus+0x44/0xec [brcmfmac]
[ 875.939243] brcmf_sdio_dataworker+0x114/0x2430 [brcmfmac]
[ 875.939252] process_one_work+0x1bc/0x340
[ 875.939258] worker_thread+0x70/0x434
[ 875.939265] kthread+0x13c/0x150
[ 875.939271] ret_from_fork+0x10/0x30
答え1
私はこの質問に答えるためにUnixスタックに参加しました!
この問題のためにLinuxを去ったので、これは私にとって本当に悪夢です。新しいLinux(すべてのディストリビューション)をインストールするたびに最初の起動は問題ありませんが、10回以上再起動した後も同じ問題が発生します。 WakerはCPUリソースを100%消費します。はい、ラップトップが遅すぎて遅くなるため、ストレスを受けます。書けない。必ずしもそうではなく、5分ごとにランダムに発生します。
GPUやCPUの問題のためだそうです。
この悪夢を取り除くための長い時間と努力の最後に、ついにこの問題が発生した理由を見つけました。
私のラップトップのWIFI / WLANが故障しました!
WIFI / WLANデバイスをオフにするには、このコマンドを実行した後:
ネットワークを完全に有効/無効にする
nmcli networking off
無線ネットワークのみ
nmcli radio wifi off
どちらの場合も、再度有効にする必要があります。
すべてが正常に戻った。これ以上WORKERのCPU使用率は高くありません!
WIFIだけでなく、HDD、USB、Pendrive、Bluetoothも壊れているでしょう。
申し訳ありません。私の英語力が悪いです。
答え2
dtsからcap-sdio-irqを削除し、CPU使用率を20%から0.5%に固定しました。
答え3
いよいよ修正を見つけました。 mengxpの修正と同じですが、よりよく説明します。
Broadcomドライバが正常に動作しておらず、主な問題はホストウェイクアップ割り込みでした。何百万もの割り込みを生成しますが、このdtsパラメータはオプションです。
だから削除することで
// interrupt-parent = <&gpio1>;
// interrupts = <13 IRQ_TYPE_LEVEL_LOW>; /* WL HOST WAKE COM pin 36*/
// interrupt-names = "host-wake";
これらのフィールドは、CPUのロード時にデバイスツリーから消えます。それ以来、Wi-Fiが正常に動作しているようだった。