Перейти до вмісту

IOMMU

Архітектурний довідникFeex

IOMMU транслює та обмежує звернення до пам'яті, що ініціюються пристроями. Його функції захисту та прямого прокидання залежать від топології платформи, прошивки, ОС і конфігурації драйверів.

Що потрібно знати

IOMMU транслює та обмежує звернення до пам'яті, що ініціюються пристроями. Його функції захисту та прямого прокидання залежать від топології платформи, прошивки, ОС і конфігурації драйверів.

Як це працює

Пристрій виконує транзакції DMA, використовуючи адреси, які інтерпретуються модулем трансляції введення-виведення. ОС або гіпервізор налаштовує домени та відображення, які пов'язують ці запити з дозволеною системною пам'яттю. Ідентифікатори пристроїв, спільні межі трансляції та обробка переривань впливають на практичну ізоляцію.

Де це корисно

VM може отримати підтримуваний пристрій через фреймворк, який застосовує його групу ізоляції IOMMU. Пристрої, що мають спільну групу, можливо, доведеться призначати разом, оскільки платформа не може забезпечити незалежну ізоляцію на бажаній межі.

Як перевірити підтримку та активацію

Перевірте опис IOMMU платформи, а також стан увімкнення, групи та вимоги до призначення пристроїв в ОС/гіпервізорі. На Intel перевірте VT-d; на AMD використовуйте задокументовані засоби віртуалізації вводу-виводу AMD. Перевірте поведінку скидання та драйвера конкретного пристрою.

Віртуалізоване розгортання має кілька рівнів: фізичні можливості, дозвіл у прошивці, активний хостовий гіпервізор, надані гостю можливості та підтримка з боку гостьової ОС. Перевіряйте рівень, на якому фактично виконується операція, включно із вкладеною віртуалізацією, коли це актуально.

Чого ця функція не гарантує

Прапорець IOMMU не доводить, що кожен периферійний пристрій ізольований незалежно або що захист активний. Захист таблиць сторінок CPU сам по собі не обмежує весь DMA пристроїв. Непідтримувані перевизначення топології можуть послабити ізоляцію і не є регулярним виправленням сумісності.

Сумісність і продуктивність на практиці

Виконання інструкцій процесором, трансляція пам'яті гостьової системи та перепризначення DMA пристроїв є окремими засобами. Не робіть висновків про прокидання або ізоляцію на основі одного поля віртуалізації. Використовуйте підтримувану діагностику гіпервізора та точні вимоги до платформи/пристроїв.

Практичний контрольний список для верифікації

  1. Зафіксуйте точну модель процесора або платформи, а також версії використовуваної програми, ОС і середовища виконання. Збережіть точне формулювання фактичної помилки або вимоги.
  2. Звіртеся з документацією виробника для цієї точної моделі, потім перевірте фактичні можливості та стан активації в середовищі, де виконується програма.
  3. Порівняйте кожну вимогу вибраного двійкового файлу або бекенда. Схожої назви функції, псевдоніма чи загального позначення технології недостатньо.
  4. Переконайтеся, що програма вибрала призначену реалізацію. Використовуйте її задокументовані засоби діагностики та підтримуваний резервний варіант, якщо вимоги не виконуються.
  5. Вносьте по одній підтримуваній зміні за раз і повторюйте те саме робоче навантаження. Зберігайте оригінальну конфігурацію та можливість відновлення.

Якщо функція вказана, але програмне забезпечення не може її використати

Почніть із компонента, у якому саме стався збій. База даних обладнання описує зафіксовані можливості; операційна система або гіпервізор можуть надавати інше фактичне середовище. Помилка неприпустимої інструкції також потребує дослідження фактичної інструкції, що викликала збій, і двійкової збірки, оскільки пошкодження даних або непов'язана непідтримувана інструкція можуть викликати схожий симптом.

Встановіть версію програми, драйвера або середовища виконання, яка підтримується для цієї конкретної платформи, і за потреби використовуйте задокументовану постачальником базову або резервну збірку. Оновлення програмного забезпечення не може створити інструкцію, якої немає в процесорі. Зміни у прошивці та політиках безпеки повинні відповідати процедурі виробника системи та плану відновлення, а не загальним рецептам оптимізації.

Джерела та межі застосування цього пояснення

Intel Virtualization Technology for Directed I/O Architecture Specification · Linux kernel: VFIO device access and IOMMU groups

Ці довідкові матеріали визначають архітектурну поведінку та вимоги до програмного забезпечення. Вони не перевіряють незалежно кожне значення функції на сторінці пов'язаної моделі обладнання. Щодо підтримки моделі використовуйте дані виробника на цій сторінці та перевіряйте фактичну конфігурацію системи. Ця стаття не містить бенчмарків, сертифікації чи дат незалежного огляду.

Джерела та верифікація

Власник авторських прав: Feex. Дата незалежної перевірки не зафіксована. Як ми проводимо дослідження.

  • Intel Virtualization Technology for Directed I/O Architecture Specification · Архітектура перепризначення DMA, домени трансляції, перепризначення переривань і структури звітів прошивки. Підтримку платформи необхідно встановлювати окремо.
  • Linux kernel: VFIO device access and IOMMU groups · Пояснює групи ізоляції, володіння пристроями та обмеження, що стосуються passthrough. Це не список сумісності для конкретної материнської плати.

Чи була ця стаття корисною?

Достатньо відповісти "так" або "ні". За бажанням виберіть причину або додайте коротку примітку.

Чи була ця стаття корисною?