Linux. Debian 9 долгая загрузка на GA-970A-DS3P. Проблема в IOMMU

Загрузка Debian 9 происходит долго, dmesg показал задержку в 17 секунд на одной строке:

[ 2.499642] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x3422486b4f5, max_idle_ns: 440795265611 ns
[ 19.316440] xhci_hcd 0000:02:00.0: can't setup: -110

Поиски в интернете указали причину — IOMMU. Статья с подобной проблемой, а в ней ссылка на еще одну полезную статью.

Прямое выполнение рекомендаций не помогло, либо не работали USB 2.0, либо USB 3.0. Но перебрав несколько комбинаций настройки BIOS получил быструю загрузку и все работающие USB-порты.

Решение

Настройка GRUB

Первым делом необходимо переключить поддержку IOMMU с железа на ОС. Программная поддержка IOMMU была добавлена в ядре 3.6. Для этого поправим настройки GRUB

# nano /etc/default/grub

Необходимо изменить значение параметра GRUB_CMDLINE_LINUX добавив значение iommu=soft, у меня параметр был пуст и получилось так:

GRUB_CMDLINE_LINUX="iommu=soft"

Теперь выполним обновление конфигурации GRUB

# update-grub

Настройка BIOS

Тут есть некоторое отступление. Ранее принудительно включал опцию IOMMU в биосе, на 890, 970 и 990 чипсетах опция по умолчанию была отключена. А если она была отключена, то на архитектуре AMD64 не работала сеть(о чем еще в 2013 году писал вопрос на kubuntu.ru) и не работала загрузка с USB.

Заходим в BIOS, переходим в раздел Peripherals и выставляем следующие значения параметров:

Linux. Debian 9 долгая загрузка на GA-970A-DS3P. Проблема в IOMMU

Перезагружаемся и проверяем результат. Загрузка прошла очень быстро, USB 2.0 и USB 3.0 в строю, нагрузки на процессор не замечено.

Для сравнения часть выхлопа dmesg до и после изменений сохранил: это до, а это после. Начало и конец фрагментов одинаковы, разница во времени 20 секунд.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *