Я пишу модуль ядра Linux, который эмулирует блочное устройство.
Существуют различные вызовы, которые можно использовать, чтобы сообщить ядру о размере блока, поэтому он выравнивает и масштабирует каждый запрос к драйверу.соответственно.Это хорошо описано в книге «Linux Device Drives 3».
В книге описаны два метода реализации блочного устройства: использование функции «request» или использование функции «make_request».
Не ясно, применяются ли вызовы ограничения очереди при использовании минималистического подхода «make_request» (который также является более эффективным, если базовое устройство действительно не имеет преимуществ от последовательного ввода-вывода по случайному принципу, что в случае со мной).
Мне бы очень хотелось, чтобы ядро говорило со мной, используя размеры блока 4K, но я вижу, что био-объекты меньшего размера попадают в мою функцию make_request.
Мой вопрос заключается в том, должен ли blk_queue_limit_* влияет на размер био при использовании make_request?
Заранее спасибо.