IOMMU
Определение
IOMMU — аппаратный блок, который переводит адреса DMA устройств и может ограничивать их доступ к памяти. При пробросе устройства важно проверить не только наличие IOMMU, но и фактическую границу изоляции.
Также ищут: I/O Memory Management Unit · Input-Output Memory Management Unit · модуль управления памятью ввода-вывода
Зачем это знать
Отметка IOMMU в характеристиках сервера ещё не доказывает, что нужный адаптер можно безопасно передать виртуальной машине. Граница изоляции зависит от устройства и топологии PCIe, а программный стек должен уметь использовать эту возможность.
Карта понятия
Связано
Что подтверждено
IOMMU переводит адреса DMA устройств; современные реализации могут также изолировать устройства друг от друга и от произвольного доступа к памяти.
Граница применимости: Linux VFIO 6.12 описывает многие современные IOMMU. Изоляция не объявляется свойством любой исторической реализации.
VFIO использует защиту IOMMU, чтобы предоставить пользовательскому процессу прямой доступ к устройству; назначение устройства виртуальной машине — один из таких сценариев.
Граница применимости: Linux VFIO 6.12. Безопасность также зависит от поведения устройства и фактической границы изоляции.
Граница изоляции IOMMU не всегда совпадает с одним PCIe-устройством: свойства устройства, моста и топологии могут объединить несколько функций в одну границу.
Граница применимости: Linux VFIO 6.12, раздел Groups, Devices, and IOMMUs. Фактическая граница зависит от конкретной платформы.
В IOMMUFD пространство IOAS хранит соответствие IOVA областям памяти; ограничения подключённых устройств могут сужать допустимый диапазон IOVA.
Граница применимости: Linux IOMMUFD 6.12. Это свойство Linux userspace API и не описывает интерфейсы других ОС.
Что проверить
- Проверьте, что IOMMU действительно доступна и используется выбранной платформой.
- Посмотрите состав IOMMU-группы нужного устройства, а не только его адрес PCIe.
- Проверьте поддержку проброса для точной модели устройства и версии гипервизора.
- Испытайте прямой доступ на выбранном составе и сохраните фактическую топологию.
Первоисточники
- VFIO - “Virtual Function I/O”
Проверены назначение VFIO, роль IOMMU, границы IOMMU-групп, legacy group interface и device cdev. Документ описывает Linux 6.12; поведение других ОС и гипервизоров отдельно не подтверждается.
- IOMMUFD
Проверены IOAS, отображение IOVA в память, владение DMA и влияние ограничений подключённых устройств. Это Linux userspace API, а не универсальный интерфейс любой платформы.
Связанные понятия
Курсы по теме
Следующий шаг
Сформулируйте задачу и уточните требования к своей системе.
Подготовить состав проектаОткроется черновик вопроса. Отправьте его, когда будете готовы.