Raspberry Piで見かけた「irq/173-vc4 hdmi hpd」は何者か
はじめに htop を眺めていたらこんな名前のスレッドが並んでいた。 irq/173-vc4 hdmi hpd connected irq/174-vc4 hdmi hpd disconnected irq/175-vc4 hdmi cec rx irq/176-vc4 hdmi cec tx HDMIは挿していないのに connected も disconnected もいるので、少し気になって調べた。 調べた範囲では、HDMIドライバが作る割り込み処理用のカーネルスレッドで、特に異常なものではなさそう。 以下はそのメモ なお番号は環境によって違う。 名前の読み方 部分 意味 irq/173 IRQ番号173の割り込みを処理するカーネルスレッド vc4 Raspberry Piのディスプレイ周りを担当するLinuxのDRMドライバ hpd Hot Plug Detect。HDMIの抜き挿しの検知 cec HDMI経由でテレビなどを操作する仕組み。rxが受信、txが送信 なぜHDMIを挿していなくてもいるのか カーネルのソースを見ると、vc4のHDMIドライバは初期化のときに devm_request_threaded_irq() で割り込みを登録している。このとき渡す名前の文字列が、そのままスレッド名(irq/番号-名前)になる。 以下はLinux mainlineのコードをさらに簡略化したもの。 Raspberry Pi OSのカーネルは独自のツリーなので細部は違うかもしれない。 /* drivers/gpu/drm/vc4/vc4_hdmi.c より */ ret = devm_request_threaded_irq(&pdev->dev, hpd, NULL, vc4_hdmi_hpd_irq_thread, IRQF_ONESHOT, "vc4 hdmi hpd connected", vc4_hdmi); つまりスレッドは HDMIが挿さったとき ではなく ドライバが割り込みの待ち受けを登録したとき に作られる。 ...