2012-03-13 1 views
1

Linux用の仮想入力ドライバと、/ devノード経由でそれらと通信するサーバを記述しました。 さて、そのうちの1つは仮想マウスであり、信号サーバーが受け取るものが、マウスがスムーズに感じられるようにできるだけ早くドライバに到達することが非常に重要です。私は1に、サーバー・プロセスのためのioniceを設定しているため Linuxは/ dev/nodesに影響しますか?

は(まだ重要なLinuxのデーモンより優先を取得していない):

if (ioprio_set(IOPRIO_WHO_PROCESS,getpid(), 1 | IOPRIO_CLASS_RT << IOPRIO_CLASS_SHIFT) == -1) { 
     logger->error("ioprio_set() error",errno); 
    } 

しかし、私はそれも価値があることは確かではありませんよ。たとえあったとしても差は目立たない。実際のディスクへのアクセス権が与えられていないにもかかわらず、I/O優先順位になると、/ dev /にある文字特殊ファイルが考慮されていますか?

答えて

1

私の知る限り、OSのioniceに影響を与えるレイヤーはI/Oスケジューラーです。少なくともカーネル2.6.17まではcfqが実際にioniceをサポートする唯一のスケジューラであり、カーネルが提供するデフォルトスケジューラに関しては何も変わっていないと私は考えています。

I/Oスケジューラは、操作をキューに入れたり、順序を変更したり、遅延やマージなどを行うことができるブロックデバイスでのみ使用されます(たとえば、hereを参照)。これは、ブロックデバイスのみの/sys仮想ファイルシステム(/sys/devices/pci0000:00/0000:00:08.0/host0/target0:0:0/0:0:0:0/block/sda/queue/schedulerなどのファイル)を介してスケジューラを変更できるという事実にも似ています。お使いのマウスドライバはキャラクタデバイスなので、I/Oスケジューラまたはioniceの影響をまったく受けません。

+0

素晴らしい、ありがとうございました:)私は以前の「ブロックデバイス」についての部分を見逃していました – user1267150

関連する問題