io scheduler в ядре 4.19.2

Теперь параметр загрузки ядра
elevator=deadline
Приводит к
$ cat /sys/block/sda/queue/scheduler
[mq-deadline] kyber bfq none

Или это потому, что в системе есть ssd?
поменялась система передачи запросов, в следствии чего, старые планировщики больше недоступны.
при желании наверно можно вернуть. но нет никакого смысла.

deadline и так по умолчанию стоял уже пару лет как, а mq-deadline это его реализация в новой системе.
Ошибки в тексте-неповторимый стиль автора©
indeviral
deadline и так по умолчанию стоял уже пару лет как
Разве? ИМХО, только в linux-lts

Прямо сейчас в "обычном" ядре (linux 4.19.2.arch1-1)
$ zgrep DEFAULT_IOSCHED /proc/config.gz
CONFIG_DEFAULT_IOSCHED="cfq"

Тема октября 2016

---------------------

indeviral
mq-deadline это его реализация в новой системе.

wiki:
The block multi-queue (blk-mq) mode must be enabled at boot time to be able to access the latest BFQ and Kyber schedulers. This is done by adding scsi_mod.use_blk_mq=1 to the kernel parameters. The single-queue schedulers are no longer available once in this mode.
sirocco
Тема октября 2016
два года прошло))

да, в wiki просто не обновили ссылка.

p.s.
sirocco
$ zgrep DEFAULT_IOSCHED /proc/config.gz
CONFIG_DEFAULT_IOSCHED="cfq"
но cfq нету и грузиться deadline т.к. первый, исправят
Ошибки в тексте-неповторимый стиль автора©
Спасибо.

Упомянутый Feature Request

https://bugs.archlinux.org/task/60614

Цитата из комментариев:
If someone still have any doubts then please look at what is planned for 4.21:



Single queue schedulers are dead.

------------------

Phoronix пишет про некоторые проблемы с blk-mq

But it turns out run-time power management hasn't been in use when blk-mq is active.
indeviral
поменялась система передачи запросов, в следствии чего, старые планировщики больше недоступны
при желании наверно можно вернуть. но нет никакого смысла.
indeviral, верно подметил - внедрен новый способ/механизм обработки запросов ввода-вывода - blk-mq (multiqueue block layer)
... можно почитать статью на Habr и Wiki
При этом новый механизм обработки запросов грузится по дефолту
zgrep CONFIG_SCSI /proc/config.gz | grep MQ
CONFIG_SCSI_MQ_DEFAULT=y

Но можно его и исключить и вернутся к старому, например, к noop, - для чего необходимо загрузиться с параметром
scsi_mod.use_blk_mq=0 elevator=noop (смотрите modinfo scsi_mod)
В итоге получим
cat /sys/block/sda/queue/scheduler
[noop] deadline cfq
Ошибки не исчезают с опытом - они просто умнеют
indeviral
deadline и грузиться т.к. первый, исправят
dmesg | grep schedule
[ 1.167990] io scheduler noop registered
[ 1.167991] io scheduler deadline registered
[ 1.168030] io scheduler cfq registered (default)
[ 1.168031] io scheduler mq-deadline registered
[ 1.168032] io scheduler kyber registered
[ 1.168058] io scheduler bfq registered
Ошибки не исчезают с опытом - они просто умнеют
indeviral
но cfq нету
Писал выше, что есть и noop
cat /sys/block/sda/queue/scheduler
[noop] deadline cfq
Ошибки не исчезают с опытом - они просто умнеют
vasek
[ 1.168030] io scheduler cfq registered (default)
да, но его нету... и по факту грузиться mq-deadline
точнее есть но будет работать если отключить blk-mq
Ошибки в тексте-неповторимый стиль автора©
indeviral
точнее есть но будет работать если отключить mq-blk
да все верно, что я и проделал на примере noop
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.