3

SMP システムでモジュールを削除する際の問題について調べたいのですが、何か良い説明はありますか?

4

1 に答える 1

1

一般的に発生する問題は、システムのどこかに実行中のモジュールへの参照があることです。これは、保持されているロック、実行中のある種のコールバック、シンボルを使用する別のモジュールなど、何でもかまいません。

カーネル内には広範な参照カウント システムがあり、このようなことが起こらないようにするために使用する必要があります。モジュールまたはモジュールの側面を使用するものは、適切な参照カウントを保持します。このカウントがゼロ以外の場合、カーネルはフォームが「rmmod」を実行するのを防ぎます。「lsmod」出力で、ロードされたすべてのモジュールの参照カウントを確認できます。

それらを学び、賢く使用してください。

これらの問題は、実際には「SMP」に固有のものではありませんが、すべてのカーネル モジュールです。たとえば、モジュールがキャラクター ドライバーであり、誰かがデバイスを開いた場合、誰かがファイル記述子を開いている間にドライバーをアンロードしたくないでしょう。応答を待っています。多くの場合、このように、カーネル自体が参照を保持します。この場合、ドライバーを開くプロセスは、ドライバーのモジュールに refcnt を保持します。

于 2010-11-11T01:16:04.900 に答える