rmmod障害のあるネットワークドライバ

rmmod障害のあるネットワークドライバ

ath9k結局のところ、SW IOMMUエラーが発生したため、Atherosデバイスのネットワークドライバに問題があるようです。たまにこのようなことが起こったら、ただ持ってきて作業をrmmod始めますmodprobe。実際には、デバイスの接続を解除してデバイスを取り外す必要がある場合があります。そして、あまりにも長い間待つと、rmmodデバイスを接続したりプラグを抜いたりするのにあまりにも多くの問題が発生すると思います。これにより、システムが無期限に停止します。

私はドライバを修正したくないので(私はファームウェア開発者ではありません)、ドライバを定期的にrmmod修正するのが「十分に良い」修正ですか、それともこの方法も機能しませんか?modprobe

ベストアンサー1

私はカーネル開発者なので、「状況によって異なります」と申し上げます。医師と1日にリンゴを分けるのと同じように、エラーを防ぐためにドライバを事前に削除してから再挿入することは不可能ではありません。エラーによって異なります。

rmmodを回避策として使用できる良い例は、ドライバの暴走メモリ割り当てです(実はリーク)ドライバがメモリを失うことなくrmmod'dでクリーンアップできるようにします。

バグが破損により不安定な場合は、可能であっても解決策になる可能性はありません。問題がいくつかの段階に進んでいるとしましょう。まず、ドライバは比較的まれな状態S(おそらく無効な状態)に入る必要があり、その状態で比較的まれなイベントEが発生するはずです。 (Eが発生してドライバがS状態にないと問題は再現されません。)ドライバをS状態から外すrmmodsと再挿入が定期的に実行されると、問題の再現性が低下します。

削除して再挿入すると、リークが発生する(ドライバがrmmod内のすべてのアイテムをクリーンアップしない)、またはぶら下がっているポインタを残す(ドライバが一部のオブジェクトを解放しますが、すべてのオブジェクトで正しく登録解除しない)、関連などの独自の問題が発生する可能性がありますあります。 。動的ドライバを開発するとき、テストケースはループでrmmod / insmodを実行するシェルスクリプトでなければなりません。 (もちろん、これは完全な適用範囲を提供するわけではありません。まだinsmod; various actual use cases of driver; rmmod繰り返す必要があります)。

おすすめ記事