1

私はデバイス マッパー ドライバーを開発していますが、コンストラクター コンテキストでディスクの初期化を実行することによる遅延について疑問に思っていました。一部の初期セットアップ中には、かなりの量の IO を実行する必要があります。これは、消去するブロックの範囲です。

dm の実装を見てみると、この作業はコンストラクターで同期的に行われているようです。つまり、コンストラクターは、この操作が完了するまで戻ることを許可されるべきではありません。それが良いアイデアなのか、初期化時の作業が完了するまで非同期にする方法があるのか​​ どうかはわかりません。

「map」への呼び出しは、操作が完了するまで DM_IO_REQUUE を返すことによって延期される可能性があると考えていました。しかし、それは数秒かもしれません。dm の target_type 構造体の関数セットをカバーするドキュメントやリファレンスは見つかりませんでした。これらの関数間接のいくつかを利用するいくつかの dm ドライバーについて私が見たものです。コンストラクターで実行できることと実行できないことに関するメソッドまたはルールの詳細がどこにあるかについてのヒントはありますか?

4

0 に答える 0