linux - Linux IOnice 会影响/dev/nodes 吗?

标签 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/中的字符特殊文件,尽管没有给出对实际磁盘的访问权限?

最佳答案

据我所知,ionice 影响的操作系统层是 I/O 调度程序。至少在内核 2.6.17 之前,cfq 是唯一真正支持 ionice 的调度器,我相信一切都没有改变,至少在内核提供的默认调度器方面是这样.

I/O 调度程序仅用于 block 设备,其中可以对操作进行排队或更改它们的顺序、延迟或合并它们等(参见 here 例如)。这也符合以下事实,即您可以通过 /sys 虚拟文件系统更改调度程序,仅适用于 block 设备(/sys/devices/pci0000:00/0000:00 等文件: 08.0/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler).您的鼠标驱动程序是一个字符设备,因此它完全不受 I/O 调度程序或 ionice 的影响。

关于linux - Linux IOnice 会影响/dev/nodes 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9689826/

相关文章:

linux - 来自不同目录的多个文件作为 awk 的输入

linux - 在 bash 中将输出作为 cp 的参数传递

objective-c - 如何在 OS X 上以编程方式运行具有低 IO 优先级和高 niceness 值的命令

video - "Man in the middle"驱动程序?

audio - 如何通过简单的用户输入创建 “nice”音符和音乐?

Python - 降低 niceness 值

c++ - 如何通过将每个命令分配给线程来在 C++ 中同时执行 linux 系统命令?

c++ - 如何在没有取消点的情况下取消 pthread

c++ - CreateThread 与 PsCreateSystemThread - 有什么区别?

selenium - 如何从 selenium webdriver 获取网页标题?