Назад | Перейти на главную страницу

Linux: отключение объединения прерываний для устройства NVMe

Я смотрю на тестирование устройства NVMe с включенным и отключенным объединением прерываний.

Протокол NVMe определяет параметры объединения прерываний, которые могут быть переданы устройству, а в бесплатной BSD модуль nvme имеет следующие параметры для настройки:

 dev.nvme.0.int_coal_time
     (R/W) Interrupt coalescing timer period in microseconds.  Set to
     0 to disable.

 dev.nvme.0.int_coal_threshold
     (R/W) Interrupt coalescing threshold in number of command comple-
     tions.  Set to 0 to disable.

В linux я не вижу ничего особенного в объединении прерываний (модерации прерываний) за пределами адаптеров Ethernet, поэтому мне интересно, ищу ли я совершенно не в том месте.

Глядя на исходный код ядра Linux, об этом не упоминается.

Но вы можете прочитать и записать его с помощью утилиты nvme-cli:

> nvme get-feature /dev/nvme0n1 -f 8
get-feature:0x8 (Interrupt Coalescing), Current value:00000000

и установить его:

> nvme set-feature /dev/nvme0n1 -f 8 -v 100
set-feature:08 (Interrupt Coalescing), value:0x000064

Ознакомьтесь со спецификацией NVMe, чтобы найти фактические биты, которые вам нужно заполнить, поскольку это необработанные значения, и здесь вас ничего не устанавливает.