Armadilloフォーラム

ネットワーク高負荷時の挙動について

taniguti_y

2025年4月16日 14時45分

==========
製品型番:Armadillo-X1
Debian/ABOSバージョン:Debian GNU/Linux 10 (buster)
カーネルバージョン:4.9.133-at36
==========

ダウンロードしてきたインストールディスクイメージでシステムをセットアップし、
IDS社のネットワークカメラドライバ等をインストールし、1分に1枚撮影を行っています。

画像データを受信するタイミングで、
稀にですがカーネルまたはドライバからのバックトレースが出力されます。

添付ファイル内のログ1 出力時は画像の受信は正常にできており、動作継続します。
調べると割り込み関連の処理が追いついていない、とのことでした。

添付ファイル内のログ2 出力時は画像の受信は失敗し、以降はずっと失敗が継続します。
送信リングバッファのダンプはLANケーブルを抜くまで継続し、再度挿すとダンプが再開します。
こちらについては以下のトピックに同様の事例があり、パケットを一定時間送出できていない、とのことでした。
https://armadillo.atmark-techno.com/forum/armadillo/10037

上記1と2より、送られてくる画像データが大量で、
ネットワーク周りに異常が発生しているように感じられますが、
バッファを増やしたりドライバの優先度を上げる?など、取れそうな対策ありますでしょうか。

#カメラドライバ側の問題なのかもしれませんが、まだ切り分けられていません。

Armadillo-X1 Mem1GB
Debian GNU/Linux 10 (buster)
4.9.133-at36

カメラ IDS UI-5490SE
ドライバ IDS Peak2.15+uEyeTL

ファイル ファイルの説明
log.txt バックトレース出力時
コメント

アットマークテクノの古賀です。

taniguti_yさん(2025年4月16日 14時45分):
>==========
>製品型番:Armadillo-X1
>Debian/ABOSバージョン:Debian GNU/Linux 10 (buster)
>カーネルバージョン:4.9.133-at36
>==========
>
>ダウンロードしてきたインストールディスクイメージでシステムをセットアップし、
>IDS社のネットワークカメラドライバ等をインストールし、1分に1枚撮影を行っています。
>
>画像データを受信するタイミングで、
>稀にですがカーネルまたはドライバからのバックトレースが出力されます。
>
>添付ファイル内のログ1 出力時は画像の受信は正常にできており、動作継続します。
>調べると割り込み関連の処理が追いついていない、とのことでした。
>
>
>添付ファイル内のログ2 出力時は画像の受信は失敗し、以降はずっと失敗が継続します。
>送信リングバッファのダンプはLANケーブルを抜くまで継続し、再度挿すとダンプが再開します。
>こちらについては以下のトピックに同様の事例があり、パケットを一定時間送出できていない、とのことでした。
>https://armadillo.atmark-techno.com/forum/armadillo/10037

ログ2の症状については、エラー状態が継続してしまうということで、致命的ですね。

>上記1と2より、送られてくる画像データが大量で、
>ネットワーク周りに異常が発生しているように感じられますが、
>バッファを増やしたりドライバの優先度を上げる?など、取れそうな対策ありますでしょうか。
>
>#カメラドライバ側の問題なのかもしれませんが、まだ切り分けられていません。
>
>Armadillo-X1 Mem1GB
>Debian GNU/Linux 10 (buster)
>4.9.133-at36
>
>カメラ IDS UI-5490SE
>ドライバ IDS Peak2.15+uEyeTL

ログ2のメッセージ(eth0 (fec): transmit queue 1 timed out)については、Armadillo-X1 の SoC (i.MX7D) のベンダーである NXP の開発者コミュニティで、i.MX の 6Q, 6ULL, 8QP で同様の症状が起きたという質問があるものの、有効な解決策は報告されていません:
 https://community.nxp.com/t5/i-MX-Processors/Transmit-queue-timed-out-o…

i.MX7D 搭載ボードで同様のエラーが起きるケースについて、同じころ(2018年)に Yocto プロジェクトのメーリングリストに質問が投稿されていますが、こちらも未解決のままのようです:
 https://docs.yoctoproject.org/pipermail/meta-freescale/2018-January/021…

バッファのサイズを大きくする対応については、NXP の別の SoC (Vybrid VF6xx) の搭載ボードで試した人がいますが、効果はなかったようです(※SoC もボードも違いますから、エラー箇所が同じでも発生要因が違っている可能性は、ありますが):
 https://community.toradex.com/t/eth0-tx-ring-dump/24103/8

Raspberry Pi のフォーラムでは、2018年12月に提出されたカーネルパッチが紹介されており、そのパッチと同様の変更が取り込まれたと思われる、カーネル 5.10.17 で不具合が解消されたのではないかというコメントがあります:
 https://forums.raspberrypi.com/viewtopic.php?p=1801689&sid=ece49d409447…
 https://github.com/torvalds/linux/commit/4f693b55c3d2d2239b8a0094b518a1…
 https://elixir.bootlin.com/linux/v5.10.17/source/net/ipv4/tcp_ipv4.c#L1…
しかし、Raspberry Pi の、Ethernet コントローラが別のバージョンでは、カーネル 5.10.17 でも同様の症状が起きたと報告している人がいて、このパッチを適用して改善するのかどうかは、不明です:
 https://forums.raspberrypi.com/viewtopic.php?p=1801689&sid=ece49d409447…

有効な情報が無く恐縮ですが、ひとまずのコメントです。

溝渕です。

Linux 6.1で試す事はできますか? もし、Linux 6.1で問題が発生しないようなら、問題の切り分けのきっかけになるかなと思います。