マイコンピュータには2つの光ディスクドライブ(ODD)があります。 ODD 2個でファイル(3.8G)を同時に焼きました。
- CentOS 6.9 Linux Kernel 2.6.32では約10分かかります。
- CentOS 7.2 Linux Kernel 3.10.0では約16分
システムログを確認したところ、同時に1つのコマンドしか実行できないことがわかりました。これは、ATAPIコマンドをODD1とODD2に同時に送信することを意味します。並列に実行されません。
Linuxカーネルドライバを確認しましたsr.c sr_block_ioctl()
。
彼らはmutex_lock
Linuxカーネル2.6.36にこの機能を追加しました。
これにより、ATAPI コマンドが並行して実行されないことが示されました。ダンプにデバッグログを追加しましたが、両方のODDが(静的DEFINE_MUTEX(sr_mutex);)のグローバル変数である&sr_mutex
同じミューテックスキーを使用していることがわかりました。一方、Linuxでは、最新バージョンのロックカーネルが使用されていないことがわかりました...sr_mutex
sr.c
sd.c
ioctl
質問:
2つのODDドライバが同じグローバル変数を使用するのはなぜですか?
なぜここに追加しますか
mutex_lock
? ODDはコマンドの完了に2〜3秒かかることがあります。
ベストアンサー1
私も同じ問題があります。
このパッチを見つけました。[PATCH] [SCSI] sr:デバイス固有のミューテックスを使用したマルチドライブパフォーマンスの変更
このパッチを適用すると、問題が解決する可能性があります。