IOMMU
IOMMU транслирует и ограничивает обращения к памяти, инициированные устройствами. Его функции защиты и сквозного проброса (passthrough) зависят от топологии платформы, прошивки, ОС и конфигурации драйверов.
Что необходимо знать
IOMMU транслирует и ограничивает обращения к памяти, инициированные устройствами. Его функции защиты и сквозного проброса (passthrough) зависят от топологии платформы, прошивки, ОС и конфигурации драйверов.
Как это работает
Устройство выполняет транзакции DMA, используя адреса, интерпретируемые блоком трансляции ввода-вывода (I/O translation unit). ОС или гипервизор настраивают домены и сопоставления, связывающие эти запросы с разрешенной системной памятью. Идентификаторы устройств, общие границы трансляции и обработка прерываний влияют на реальную изоляцию.
Области применения
ВМ может получить поддерживаемое устройство через механизм, обеспечивающий соблюдение границ его группы изоляции IOMMU. Устройства, входящие в одну группу, возможно, придется назначать совместно, поскольку платформа не может обеспечить независимую изоляцию на требуемом уровне.
Как проверить поддержку и активацию
Изучите описание IOMMU платформы, статус включения в ОС или гипервизоре, группы и требования к назначению устройств. На платформах Intel проверьте VT-d; на AMD используйте документированные средства виртуализации ввода-вывода AMD. Проверьте поведение сброса и драйвера конкретного устройства.
Виртуализированное окружение состоит из нескольких уровней: физические возможности, разрешения микрокода, активный гипервизор хоста, транслируемые гостю функции и поддержка в гостевой ОС. Проверяйте тот уровень, на котором непосредственно выполняется задача, включая вложенную виртуализацию при ее использовании.
Чего не гарантирует данная функция
Наличие флага IOMMU не гарантирует, что каждое периферийное устройство изолировано независимо или что защита активна. Защита на уровне таблиц страниц процессора сама по себе не ограничивает весь DMA от устройств. Неподдерживаемые переопределения топологии могут ослабить изоляцию и не являются штатным средством обеспечения совместимости.
Совместимость и производительность на практике
Выполнение инструкций процессором, трансляция гостевой памяти и переназначение DMA устройств - это раздельные механизмы. Не делайте вывода о наличии проброса устройств или изоляции только по одному общему полю виртуализации. Используйте поддерживаемые средства диагностики гипервизора и точные требования к платформе/устройствам.
Практический чек-лист для проверки
- Зафиксируйте точную модель процессора или платформы, а также задействованные версии приложения, ОС и среды выполнения. Сохраните точную формулировку возникшей ошибки или требования.
- Сверьтесь со справочными материалами производителя для этой точной модели, затем проверьте действующую поддержку и состояние активации в окружении, где выполняется программа.
- Сопоставьте каждое требование выбранного бинарного файла или бэкенда. Похожего названия функции, псевдонима или общего маркетингового обозначения технологии недостаточно.
- Убедитесь, что приложение выбрало предполагаемую реализацию. Используйте его документированные средства диагностики и поддерживаемый резервный код при несоблюдении требований.
- Вносите по одному поддерживаемому изменению за раз и повторяйте ту же рабочую нагрузку. Сохраняйте исходную конфигурацию и возможность отката.
Если функция указана в списке, но ПО не может ее использовать
Начните с точного сбойного компонента. База данных оборудования описывает зафиксированные возможности; операционная система или гипервизор могут предоставлять иное фактическое окружение. Ошибка недопустимой инструкции также требует анализа конкретной сбойной команды и сборки бинарного файла, так как повреждение данных или сторонняя неподдерживаемая инструкция могут вызывать аналогичный симптом.
Установите версию приложения, драйвера или среды выполнения, поддерживаемую для данной платформы, и при необходимости используйте документированную производителем базовую или резервную сборку. Обновление ПО не может создать инструкцию, отсутствующую в процессоре. Изменения микрокода и политик безопасности должны выполняться по процедуре производителя системы и с планом восстановления, а не по общим шаблонам оптимизации.
Источники и границы применимости пояснения
Спецификация архитектуры Intel Virtualization Technology for Directed I/O · Ядро Linux: доступ к устройствам через VFIO и группы IOMMU
Эти материалы определяют архитектурное поведение и требования к программному обеспечению. Они не подтверждают независимо каждое значение параметров на странице конкретной модели оборудования. Для проверки поддержки моделью используйте данные производителя на этой странице и проверяйте действующую конфигурацию системы. Данная статья не содержит результатов тестов производительности, сертификатов или дат независимых обзоров.
Источники и проверка
Редакционная принадлежность: Feex. Дата независимой проверки не зарегистрирована. Как мы проводим исследования.
- Спецификация архитектуры Intel Virtualization Technology for Directed I/O - Архитектура переназначения DMA (DMA-remapping), домены трансляции, переназначение прерываний и структуры отчетов прошивки. Поддержка со стороны платформы должна проверяться отдельно.
- Ядро Linux: доступ к устройствам через VFIO и группы IOMMU - Описывает группы изоляции, владение устройствами и ограничения, относящиеся к пробросу (passthrough). Не является списком совместимости для конкретной материнской платы.
Была ли эта статья полезна?
Достаточно ответа "да" или "нет". При желании выберите причину или оставьте короткую заметку.
Спасибо. Это помогает нам улучшать эту страницу.