Linux IOnice влияет на / dev / node? - PullRequest
1 голос
/ 13 марта 2012

Я написал драйверы виртуального ввода для 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);
    }

Но я не уверен, что оно того стоит. Разница, даже если таковая имеется, не заметна. Рассматриваются ли специальные файлы символов в / dev /, когда речь идет о приоритете ввода / вывода, несмотря на то, что доступ к реальному диску не предоставляется?

1 Ответ

1 голос
/ 14 марта 2012

Насколько я знаю, уровень в ОС, на который влияет ionice, является планировщиком ввода-вывода. По крайней мере, до ядра 2.6.17 cfq был единственным планировщиком, который фактически поддерживал ionice, и я считаю, что ничего не изменилось, по крайней мере, в отношении планировщиков по умолчанию, которые предоставляет ядро.

Планировщики ввода / вывода используются только с блочными устройствами, где есть возможность поставить в очередь операции или изменить их порядок, задержать или объединить их и т. Д. (См., Например, здесь ). Это также согласуется с тем фактом, что вы можете изменить планировщик через виртуальную файловую систему /sys только для блочных устройств (такие файлы, как /sys/devices/pci0000:00/0000:00:08.0/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler). Ваш драйвер мыши является символьным устройством и, как таковой, на него вообще не влияет планировщик ввода-вывода или ionice.

...