2011-12-05 5 views
1

Я хочу изменить планировщики ввода-вывода Linux.Изменение планировщиков ввода-вывода Linux

Есть ли способ сделать это еще при компиляции целого ядра?

Являются ли модули модулей планировщика ввода-вывода и могу ли я просто сделать модуль ядра и загрузить его и использовать его в качестве планировщика ввода-вывода?

ответ

0

Если вам нужно задать эти вопросы, вам не следует пытаться изменять планировщики ввода-вывода. Это самые деликатные вещи ядра Linux. Чтобы иметь возможность делать полезную разработку планировщика ввода-вывода, требуется достаточно понимание тем, которые вы задали здесь, что здесь просьба - это указание, что вы недостаточно понимаете эти темы.

+0

Я не пытаюсь разрабатывать планировщики io. для проекта Мне просто нужно отредактировать один из планировщиков io (даже добавьте 1 varible и ++ это где-нибудь) – Rezass

+0

@Rezass: Проблема в том, что это, скорее всего, сломает. Ну, вам все равно придется скомпилировать ядро ​​(вам нужно правильное дерево сборки). – datenwolf

+0

вот как-то: D Разбивающий планировщик также показывает, что в нем что-то изменилось, и это точка проекта. , так что в любом случае нет компиляции всего ядра? – Rezass

2

Linux имеет модульную инфраструктуру планировщика ввода-вывода - вы можете написать новый планировщик ввода-вывода в качестве модуля ядра, загрузить его в ядро, использовать его для определенных (или всех) блоков ввода-вывода и затем удалить его.

См. Здесь, как выбрать существующий планировщик ввода-вывода. Для написания новых вам нужно будет прочитать исходный код, которого я боюсь :-)

+0

Я знаю, как сделать модули ядра (очень простые), как я могу просто скопировать простой планировщик io, такой как noop из источника, и добавить его модифицировать и заставить ядро ​​использовать этот планировщик? есть ли учебник для этого? – Rezass

+0

Боюсь, что это сложнее, но код сидит ниже Linux/block/* - iosched.c в исходном дереве ядра Linux. – gby

+0

Я могу изменить этот код, скомпилировать его, загрузить его как модуль ядра, но как ядро ​​должно знать, что этот модуль является планировщиком и показывает его в/sys/block/sda/queue/scheduler? – Rezass

Смежные вопросы