Linux IOnice会影响/ dev / nodes吗?

时间:2012-03-13 18:23:46

标签: linux driver nice

我为Linux编写了虚拟输入驱动程序,并通过/ dev节点与它们进行通信。 现在,其中一个是虚拟鼠标,信号服务器接收的内容尽快到达驱动程序以使鼠标感觉平滑非常重要。

因此我将服务器进程的ionice设置为1(仍然没有优先于重要的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 个答案:

答案 0 :(得分:1)

据我所知,操作系统中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的影响。