IOMMU

IOMMU (англ.  input/output memory management unit ) — блок управления памятью (MMU) для операций ввода/вывода. Так же как традиционный, процессорный блок управления памятью, который переводит виртуальные адреса, видимые процессором в физические, этот блок занимается трансляцией виртуальных адресов, видимых аппаратным устройством, в физические адреса. Некоторые IOMMU также позволяют задавать различные ограничения операций ввода-вывода для защиты от неправильно работающих устройств или для изоляции, например, при использовании виртуализации (см. VT-d).

При наличии IOMMU у аппаратуры имеется возможность проводить DMA-операции не только по физическим адресам, но и по логическим (виртуальным). Такая возможность упрощает устройства, которым больше не нужно заботиться о поддержке DMA по разрывному (с точки зрения физических адресов) региону памяти (поддержка такого DMA в драйвере влечет за собой накладные расходы).

Недостатками использования IOMMU по сравнению с прямой физической адресацией памяти в DMA запросах являются:

  • Некоторое ухудшение производительности из-за необходимости транслирования адресов и расходов на управление, например, проход по иерархии таблицы страниц.
  • Дополнительное потребление памяти для хранения таблиц отображения. Может быть уменьшен при использовании основным таблиц трансляции адресов процессора.

IOMMU используется для прямой работы виртуализованных операционных систем с оборудованием основной системы. Наличие IOMMU для таких комбинаций позволяет повысить безопасность, производительность и упростить реализацию виртуальной машины.

IOMMU всегда использовался на компьютерах Sun SPARC [1] для шины SBus, также он использовался на компьютерах DEC Alpha [1] для шины PCI.

Разновидностью IOMMU является AGP GART (Graphics Address Remapping Table, таблица преобразований графических адресов [2] ).

Как правило, обычные PC-совместимые компьютеры не имели IOMMU (кроме AGP GART). Вместо этого все главнейшее периферийное оборудование где-то с конца 90х годов разрабатывалось с поддержкой chain DMA.

Тем не менее, широкое распространение гипервизоров виртуальных машин привело к включению поддержки IOMMU в “гостевые” ОС, такие, как Windows (API ядра Windows всегда поддерживал данную функцию, хотя обычно данная поддержка не реализовывалась).

Наличие такой поддержки в гостевой ОС при виртуализации самого устройства IOMMU сильно облегчает задачу эмуляции в гостевой ОС сложных устройств, использующих DMA, и повышает производительность и безопасность такой эмуляции.

Сап, лорчан. Имею мать GA-990FXA-D3, rev 1.2. Биосе присутствуют пункты Virtualization и IOMMU, оба включены. Тем не менее, в dmesg всё время

Написал в саппорт Gigabyte:

Здравствуйте! Год назад приобрел эту материнскую плату, вот возникла проблема: вне зависимости от включенностивыключенности IOMMU в BIOS система просит включить в Биосе поддержку iommu. Проверялось на Gentoo

amd64 с ядром 3.13.5 и на Ubuntu 13.10 со стандартным ядром. Наличие строки «[ 0.000000] Please enable the IOMMU option in the BIOS setup» в двух дистрибутивах говорит о том, что ядерный модуль iommu включен и работает, а проблема в самом Биосе. Биос изначально был F7, вчера обновился до F9a, ничего не изменилось. Буду благодарен за любую информацию и помощь.
===
$ dmesg | grep IOMMU -A2 -B5
[ 0.000000] Checking aperture.
[ 0.000000] No AGP bridge found
[ 0.000000] Node 0: aperture @ c4000000 size 32 MB
[ 0.000000] Aperture pointing to e820 RAM. Ignoring.
[ 0.000000] Your BIOS doesn’t leave a aperture memory hole
[ 0.000000] Please enable the IOMMU option in the BIOS setup
[ 0.000000] This costs you 64 MB of RAM [ 0.000000] Mapping aperture over 65536 KB of RAM @ c4000000

На что получил ответ:

Благодарим Вас за использование нашей продукции и за обращение в службу технической поддержки GIGABYTE TECHNOLOGY.

Материнские платы компании Gigabyte проходят соответствующую сертификацию на предмет совместимости с операционными системами компании Microsoft (сертификат Windows Hardware Quality Labs/WHQL), так же информацию о совместимости Вы можете найти на сайте Microsoft: http://www.microsoft.com/windows/compatibility/windows-7/en-us/Search.aspx?l=. Вся продукция компании Gigabyte, все программное обеспечение разрабатывается и тестируется только под операционные системы компании Microsoft. В разделе «Спецификации» или «Описание», к любой модели материнской платы есть пункт, в котором указаны поддерживаемые операционные системы, в Вашем случае это Microsoft Windows 7/Vista/XP.

Так же, на сайте отмечено, что: «Из-за особенностей осуществления поддержки семейства ОС Linux со стороны производителей системной логики, пожалуйста, обратитесь за драйверами для Linux на сайты разработчиков.»

Таким образом, мы не можем гарантировать какую-либо стабильную работу компьютера при использовании операционных систем Linux.

С Уважением и Наилучшими пожеланиями, GIGABYTE TECHNOLOGY

Они, блин, совсем там упоролись? Слов нет просто.

Ну да ладно. IOMMU мне нужно для проброса видеокарты в виртуалку с шиндой, второй видеокарты пока нет, виртуалки с шиндой тоже (будет либо xen либо qemu-kvm, смотря что покажет себя шустрее). Перед докупкой железа решил потыкать, действительно ли работает iommu на этой матери. Оказалось — не работает. Но опции есть и включены. Но не работает.

Какие программы нуждаются в этой технологии?

Программ немного и все они имеют общую направленность — эмуляция среды (операционки):

  1. VMware Workstation/Player. Позволяет создать настоящий виртуальный ПК со своим процессором, оперативной памятью, жестким диском и так далее. Требует включенной виртуализации, при отключенной — будут страшные лаги. Сам по себе виртуальный ПК представляет окно в другой ПК — там может быть установлена Windows, будет меню пуск, все как обычно. Но эта Windows полностью изолирована от реальной.
  2. VirtualBox. Аналог предыдущей проги, но полностью бесплатная. В большинстве случаев функции такие же, отличие в интерфейсе. По моему опыту VMware работает быстрее.
  3. BlueStacks/NOX. Позволяет эмулировать среду Андроид — можно устанавливать приложения, тестировать их, даже играть в игры можно. И при этом все это на обычном ПК с Windows. Весомый недостаток — требовательность к ресурсам, виртуальный Андроид не будет шустро работать на том ПК, где шустро работает виртуальная Windows. Минимум 2 ядра (лучше с высокой частотой и последнего поколения) и 4 гига оперы.
  4. Ну и как я писал выше — возможно виртуализация поможет работать быстрее тем программам, которые используют аппаратное ускорение. Но это теория, врать не буду — не тестировал.

Как зайти в настройки BIOS, UEFI

Зайти в настройки BIOS (UEFI) можно только во время включение или перезагрузки компьютера. Для входа необходимо в относительно небольшой промежуток времени после включения компьютера и до начала загрузки Windows успеть нажать специальную кнопку.

Чаще всего для входа в настройки BIOS служит кнопка Del (Delete). На некоторых компьютерах вместо Del может использоваться кнопка F2 или другие клавиши.

Чтобы гарантированно успеть войти в BIOS (UEFI), лучше сразу же после включения (перезагрузки) компьютера начать периодически нажимать соответствующую кнопку (с интервалом 1-2 раза в секунду).

Какую кнопку нужно нажимать для входа в BIOS, компьютер «подсказывает» вскоре после начала загрузки. Достаточно лишь присмотреться. Надпись типа «Press Del to enter setup», «Del — setup» или другая похожая фраза свидетельствует о необходимости нажатия кнопки Del. Если в такой надписи вместо Del будет F2, значит нажимать нужно F2. Если другая кнопка – нажимать следует ее.

На разных компьютерах меню BIOS, как и меню UEFI, может существенно отличаться. Все зависит от их версии. Меню настроек BIOS, как правило, представляет собой разделы (вкладки) на английском языке на синем или белом фоне. В каждом таком разделе размещены конкретные параметры компьютера. Значение большинства из них можно изменять. Меню настройки UEFI в графическом плане выглядит несколько привлекательней BIOS, хотя структура и принципы навигации по нему ничем не отличаются (см. изображения ниже: 1 – BIOS, 2 – UEFI).


Для перехода между разделами служат клавиши со стрелками «Вправо» и «Влево».

Выбор конкретного параметра в открытом разделе осуществляется клавишами со стрелками «Вверх» и «Вниз». Изменение выбранного параметра чаще всего производится нажатием клавиш «Enter», «+», «-« или вводом конкретных числовых показателей. В любом случае, разобраться в порядке изменения параметров BIOS (UEFI) не сложно. Тем более, что в правой части меню есть подсказки по этому поводу.

В UEFI для навигации и изменения настроек можно пользоваться мышкой.

Чтобы сохранить внесенные в BIOS (UEFI) изменения и продолжить загрузку компьютера с их учетом, нужно нажать клавишу F10 и затем Enter.

Для выхода из BIOS (UEFI) без сохранения изменений необходимо нажать Esc и затем Enter.

FIX Gigabyte UEFI/Bios IOMMU for Linux

FIX Gigabyte UEFI/Bios IOMMU for Linux

Howto add Linux Kernel Boot Parameters(grub):
-Secure Boot should be disabled, by default, in your UEFI/Bios..
Symptom/Solution:
https://forum.giga-byte.co.uk/index.php?PHPSESSID=0s29geoi9dqh3nr5gu8c8da415&topic=14802.msg105102#msg105102.
Arch-Anywhere is used here as an example, but this applies to all Linux distro’s with regard to these AM3+ 9xx-chipset Gigabyte MB’s..
(For Arch, Ubuntu, Mint,….).
In Linux terminal edit: /etc/default/grub.
GRUB_CMDLINE_LINUX_DEFAULT=”amd_iommu=on iommu=pt”.
Then, For Arch;.
# sudo grub-mkconfig -o /boot/grub/grub.cfg.
# dmesg | grep -i iommu.

Or, for Ubuntu, Mint,… ;.
# sudo update-grub.
# dmesg | grep -i iommu.
In Linux terminal edit: /etc/default/grub.
For Arch-Anywhere UEFI/GPT Full Multi-Boot Installation see:
https://www.youtube.com/watch?v=u5XCGu19TIs

Video taken from the channel: Blade RunnerUP

Iommu что это в биосе

IOMMU (англ. input/output memory management unit ) — блок управления памятью (MMU) для операций ввода-вывода. Так же как традиционный, процессорный блок управления памятью, который переводит виртуальные адреса, видимые процессором в физические, этот блок занимается трансляцией виртуальных адресов, видимых аппаратным устройством, в физические адреса. Некоторые IOMMU также позволяют задавать различные ограничения операций ввода-вывода для защиты от неправильно работающих устройств или для изоляции, например, при использовании виртуализации (см. VT-d).

Читайте также:  EaseUS Todo Backup 10.6

При наличии IOMMU у аппаратуры имеется возможность проводить DMA-операции не только по физическим адресам, но и по логическим (виртуальным). Такая возможность упрощает устройства, которым больше не нужно заботиться о поддержке DMA по разрывному (с точки зрения физических адресов) региону памяти (поддержка такого DMA в драйвере влечет за собой накладные расходы).

Недостатками использования IOMMU по сравнению с прямой физической адресацией памяти в DMA запросах являются:

  • Некоторое ухудшение производительности из-за необходимости транслирования адресов и расходов на управление, например, проход по иерархии таблицы страниц.
  • Дополнительное потребление памяти для хранения таблиц отображения. Может быть уменьшен при использовании основных таблиц трансляции адресов процессора.

IOMMU используется для прямой работы виртуализованных операционных систем с оборудованием основной системы. Наличие IOMMU для таких комбинаций позволяет повысить безопасность, производительность и упростить реализацию виртуальной машины. [1] Примеры IOMMU для виртуализации на платформах x86/x86_64: Intel VT-d и AMD-Vi.

IOMMU всегда использовался на компьютерах Sun SPARC [2] для шины SBus, также он использовался на компьютерах DEC Alpha [2] для шины PCI.

Разновидностью IOMMU является AGP GART (Graphics Address Remapping Table, таблица преобразований графических адресов [3] ).

Как правило, обычные PC-совместимые компьютеры не имели IOMMU (кроме AGP GART). Вместо этого все главнейшее периферийное оборудование где-то с конца 90х годов разрабатывалось с поддержкой chain DMA.

Тем не менее, широкое распространение гипервизоров виртуальных машин привело к включению поддержки IOMMU в «гостевые» ОС, такие, как Windows (API ядра Windows всегда поддерживал данную функцию, хотя обычно данная поддержка не реализовывалась).

Наличие такой поддержки в гостевой ОС при виртуализации самого устройства IOMMU сильно облегчает задачу эмуляции в гостевой ОС сложных устройств, использующих DMA, и повышает производительность и безопасность такой эмуляции.

IOMMU — Comparison of the I/O memory management unit (IOMMU) to the memory management unit (MMU). In computing, an input/output memory management unit (IOMMU) is a memory management unit (MMU) that connects a DMA capable I/O bus to the main memory. Like… … Wikipedia

IOMMU — Eine I/O Memory Mapping Unit (I/O MMU, oder kurz IOMMU) erweitert die I/O Schnittstelle eines Mikroprozessors um eine Adressübersetzung und Zugriffsschutz bei Direct Memory Access (DMA). Einsatz von I/O MMUs war lange nur in High End… … Deutsch Wikipedia

IOMMU — Input Output Memory Management Unit … Acronyms

IOMMU — Input Output Memory Management Unit … Acronyms von A bis Z

HP 9000 — is the name for a line of workstation and server computer systems produced by the Hewlett Packard (HP) company. The HP 9000 brand was introduced in 1984 to encompass several existing technical workstations models previously launched in the early… … Wikipedia

Прямой доступ к памяти — (англ. Direct Memory Access, DMA) режим обмена данными между устройствами или же между устройством и основной памятью (RAM) без участия Центрального Процессора (ЦП). В результате скорость передачи увеличивается, так как данные не… … Википедия

Advanced Micro Devices — Infobox Company company name=Advanced Micro Devices, Inc. company logo= company type=Public (nyse|AMD) foundation=1969 founder=W. Jerry Sanders III Edwin J. Turney Additional co founders location city=Sunnyvale, California, US key people=Derrick… … Wikipedia

Comparison of AMD chipsets — Amd chipsets logo This is a comparison of chipsets sold under the brand AMD, manufactured before May 2004 by the company itself, before the adoption of open platform approach as well as chipsets manufactured by ATI Technologies (ATI) after July… … Wikipedia

AMD 800 chipset series — AMD chipsets Table name= AMD 800 chipset series img w= Caption= Codename= CPU= future Opteron, Phenom, Athlon X2 and Turion Ultra processors Socket= Socket F+, Socket G34 (server) Socket AM3 (desktop) Socket FS1 (mobile) Process= Power=… … Wikipedia

Udma — Прямой доступ к памяти (англ. Direct Memory Access, DMA) режим обмена данными между устройствами или же между устройством и основной памятью (RAM), без участия Центрального Процессора. В результате скорость передачи увеличивается, так как данные … Википедия

Опция Virtualization Technology. Включение данной опции включает технологию аппаратной виртуализации, основанной на специальной процессорной архитектуре. В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных гостевых систем (виртуальных машинах — VMware, Virtual PC и тд.), управляемых гипервизором напрямую. Гостевая система не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.

На работу программ пользователя в стандартной операционной системе данная опция практически не влияет.

Значения опции:

  • Enabled,
  • Disabled

Опция также может иметь другие названия:

  • Virtualization Technology
  • Vanderpool Technology
  • VT Technology
  • Virtualization

Примечание 1.Аппаратная виртуализация виртуализация с поддержкой специальной процессорной архитектуры. Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel-VT и AMD-V.

  1. В Intel VT (Intel Virtualization Technology) реализована виртуализация режима реальной адресации (режим совместимости с 8086). Соответствующая аппаратная виртуализация ввода-вывода — VT-d. Часто обозначается аббревиатурой VMX (Virtual Machine eXtension). Кодовое название — Vanderpool.
  2. AMD-V часто обозначается аббревиатурой SVM (Secure Virtual Machines). Кодовое название — Pacifica. Соответствующая технология виртуализации ввода-вывода — IOMMU. AMD-V проще и эффективнее, чем Intel VT. Поддержка AMD-V появилась в Xen 3.3.

Intel VT (Intel Virtualization Technology) — intel virtualization technology что это?

VT-x 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x («Vanderpool»). VT-x представляет собой технологию виртуализации Intel режима реальной адресации на платформе x86 — VMX (Virtual Machine eXtension).

Реализована виртуализация режима реальной адресации (режим совместимости с 8086).

VT-d (Virtualization technology for directed I/O) — технология аппаратной виртуализации ввода-вывода , созданная корпорацией Intel в дополнение к её технологии виртуализации вычислений VT-x. Виртуализация ввода-вывода позволяет пробрасывать (pass-through) устройства на шине PCI (и более современных подобных шинах) в гостевую ОС, таким образом, что она может работать с ним с помощью своих штатных средств. Чтобы такое было возможно, в логических схемах системной платы используется специальное устройство управления памятью ввода-вывода (IOMMU), работающее аналогично MMU центрального процессора, используя таблицы страниц и специальную таблицу отображения DMA (DMA remapping table — DMAR), которую гипервизор получает от BIOS через ACPI. Отображение DMA необходимо, поскольку гипервизор ничего не знает о специфике работы устройства с памятью по физическим адресам, которые известны лишь драйверу. С помощью DMAR он создает таблицы отображения таким образом, что драйвер гостевой ОС видит виртуальные адреса IOMMU аналогично тому, как бы он видел физические без него и гипервизора.

Эта страница содержит список виртуализацию с поддержкой IOMMU Поддержки оборудования.

Список Intel и Intel на базе аппаратного обеспечения, которое поддерживает VT-D (Intel Virtualization Technology для Directed I / O).

процессоры

сервер

Подавляющее большинство серверных чипов Intel в Xeon E3, E5 Xeon и линеек Xeon E7 поддерживает VT-D.

Первого и наименее мощный-Xeon для поддержки VT-D был запущен E5502 Q1’09 с двумя ядрами 1,86 ГГц на процессе 45 нм. Многие или большинство Xeons, полученные после этой поддержки VT-D.

рабочий стол

  • VT-d на i7 3930K и i7 3960X работает только на степпинге C2.

Материнские

Intel

гигабайт

ASRock

Набор микросхем

  • Intel Z370
  • Intel Z170
  • Intel X99
  • Intel X79
  • Intel Q170
  • Intel Q150
  • Intel Q87
  • Intel Q77
  • Intel Q67
  • Intel Q45
  • Intel P55
  • Intel Q35, X38, X48 Q45
  • Intel HM87, QM87, HM86, C222, X99, C612, C226

Программа Aptio Setup Utility – BIOS фирмы American Megatrends Inc на системных платах Dell Inc.

Название данной опции у данного производителя в данной версии BIOS (ноутбук):

Virtualization значение по умолчанию [Enabled]
Обозначение опции BIOS Описание опции в БИОСе Переведенное значение опции БИОС

This option specifies whether a Virtual Machine Monitor (VMM) can utilize the additional hardware capabilities provided by Intel(R) Virtualization Technology.

Эта опция определяет, будет ли монитор виртуальных машин (VMM) использовать дополнительные аппаратные возможности, обеспечиваемые Intel (R) Virtualization Technology.

[Disabled] Disabled = Disable Virtualization Technology. Отключен = Отключить Технология виртуализации. [Enabled] Enabled = Enable Virtualization Technology.

Введено = Включить Virtualization Technology.

Заводская настройка по умолчанию – Включена поддержка.

Преимущества

Преимущества наличия IOMMU, по сравнению с прямым физическим обращением памяти, включают:

  • Большие области памяти могут быть ассигнованы без потребности быть смежными в физической памяти, IOMMU наносит на карту смежные виртуальные обращения к основным фрагментированным физическим адресам. Таким образом использования направленного ввода/вывода (разброс – собирают списки) можно иногда избегать.
  • Устройства, которые не поддерживают адреса памяти достаточно долго, чтобы обратиться ко всей физической памяти, могут все еще обратиться ко всей памяти через IOMMU, избежав накладных расходов, связанных с копированием буферов к и от адресуемого места в памяти peripheral.
  • Например, x86 компьютеры может обратиться больше чем к 4 гигабайтам памяти с особенностью Physical Address Extension (PAE) в x86 процессоре. Однако, обычное 32-битное устройство PCI просто не может обратиться к памяти выше границы на 4 гибибайта, и таким образом это не может непосредственно получить доступ к нему. Без IOMMU операционная система должна была бы осуществить отнимающие много времени буфера сильного удара (также известный как двойные буфера).
  • Память защищена от злонамеренных устройств, которые делают попытку нападений DMA и неисправных устройств, которые делают попытку неправедных передач памяти, потому что устройство не может читать или написать памяти, которая не была явно ассигнована (нанесенная на карту) для него. Защита памяти основана на факте что OS, бегущий на центральном процессоре (см. число), исключительно управляет и MMU и IOMMU. Устройства физически неспособны обойти или испортить формируемые управленческие столы памяти.
  • В виртуализации операционные системы гостя могут использовать аппаратные средства, которые определенно не сделаны для виртуализации. Более высокие исполнительные аппаратные средства, такие как видеокарты используют DMA, чтобы получить доступ к памяти непосредственно; в виртуальной окружающей среде все адреса памяти повторно нанесены на карту программным обеспечением виртуальной машины, которое заставляет устройства DMA терпеть неудачу. IOMMU обращается с этим переотображением, позволяя родным драйверам устройства использоваться в операционной системе гостя.
  • В некоторой архитектуре IOMMU также выполняет переотображение перерыва аппаратных средств способом, подобным стандартному переотображению адреса памяти.
  • Периферийное оповещение памяти может быть поддержано IOMMU. Периферийное использование PCI-СИГНАЛА PCIe Address Translation Services (ATS) расширение Page Request Interface (PRI) может обнаружить и сигнализировать о потребности в услугах распределителя памяти.

Для системной архитектуры, в которой ввод/вывод порта – отличное адресное пространство от адресного пространства памяти, не используется IOMMU, когда центральный процессор общается с устройствами через порты ввода/вывода. В системной архитектуре, в которой ввод/вывод порта и память нанесены на карту в подходящее адресное пространство, IOMMU может перевести доступы ввода/вывода порта.

Verify IOMMU Isolation

For working PCI passthrough, you need a dedicated IOMMU group for all PCI devices you want to assign to a VM.

You should have something like:

To have separate IOMMU groups, your processor needs to have support for a feature called ACS (Access Control Services).

All Xeon processor support them (E3,E5) excluding Xeon E3-1200.

For Intel Core it’s different, only some processors support ACS. Anything newer than listed below should support ACS, as long as VT-d is supported. See https://ark.intel.com for more info.

AMD chips from Ryzen 1st generation and newer are fine too.

If you don’t have dedicated IOMMU groups, you can try:

1) moving the card to another pci slot

2) adding «pcie_acs_override=downstream» to kernel boot commandline (grub or systemd-boot) options, which can help on some setup with bad ACS implementation.

Опция BIOS Virtualization — как включить виртуализацию в BIOS

Опция Virtualization Technology. Включение данной опции включает технологию аппаратной виртуализации, основанной на специальной процессорной архитектуре. В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных гостевых систем (виртуальных машинах — VMware, Virtual PC и тд.), управляемых гипервизором напрямую. Гостевая система не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.

На работу программ пользователя в стандартной операционной системе данная опция практически не влияет.

Значения опции:

  • Enabled,
  • Disabled

Опция также может иметь другие названия:

  • Virtualization Technology
  • Vanderpool Technology
  • VT Technology
  • Virtualization

Примечание 1.Аппаратная виртуализация виртуализация с поддержкой специальной процессорной архитектуры. Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel-VT и AMD-V.

  1. В Intel VT (Intel Virtualization Technology) реализована виртуализация режима реальной адресации (режим совместимости с 8086). Соответствующая аппаратная виртуализация ввода-вывода — VT-d. Часто обозначается аббревиатурой VMX (Virtual Machine eXtension). Кодовое название — Vanderpool.
  2. AMD-V часто обозначается аббревиатурой SVM (Secure Virtual Machines). Кодовое название — Pacifica. Соответствующая технология виртуализации ввода-вывода — IOMMU. AMD-V проще и эффективнее, чем Intel VT. Поддержка AMD-V появилась в Xen 3.3.

Intel VT (Intel Virtualization Technology) — intel virtualization technology что это?

VT-x 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x («Vanderpool»). VT-x представляет собой технологию виртуализации Intel режима реальной адресации на платформе x86 — VMX (Virtual Machine eXtension).

Реализована виртуализация режима реальной адресации (режим совместимости с 8086).

VT-d (Virtualization technology for directed I/O) — технология аппаратной виртуализации ввода-вывода , созданная корпорацией Intel в дополнение к её технологии виртуализации вычислений VT-x. Виртуализация ввода-вывода позволяет пробрасывать (pass-through) устройства на шине PCI (и более современных подобных шинах) в гостевую ОС, таким образом, что она может работать с ним с помощью своих штатных средств. Чтобы такое было возможно, в логических схемах системной платы используется специальное устройство управления памятью ввода-вывода (IOMMU), работающее аналогично MMU центрального процессора, используя таблицы страниц и специальную таблицу отображения DMA (DMA remapping table — DMAR), которую гипервизор получает от BIOS через ACPI. Отображение DMA необходимо, поскольку гипервизор ничего не знает о специфике работы устройства с памятью по физическим адресам, которые известны лишь драйверу. С помощью DMAR он создает таблицы отображения таким образом, что драйвер гостевой ОС видит виртуальные адреса IOMMU аналогично тому, как бы он видел физические без него и гипервизора.

Intel Virtualization Technology for Directed I/O (VT-d) — это следующий важный шаг на пути к всеобъемлющей аппаратной поддержке виртуализации платформ на базе Intel. VT-d расширяет возможности технологии Virtualization Technology (VT), существующей в IA-32 (VT-x) и Itanium (VT-i), и добавляет поддержку виртуализации новых устройств ввода-вывода. Ознакомиться подробнее с технической стороной вопроса можно здесь https://ru.wikipedia.org/wiki/

It will not be possible to use PCI passthrough without interrupt remapping. Device assignment will fail with ‘Failed to assign device «[device name]»: Operation not permitted’ or ‘Interrupt Remapping hardware not found, passing devices to unprivileged domains is insecure.’ error.

All systems using an Intel processor and chipset that have support for Intel Virtualization Technology for Directed I/O (VT-d), but do not have support for interrupt remapping will see such an error. Interrupt remapping support is provided in newer processors and chipsets (both AMD and Intel).

To identify if your system has support for interrupt remapping:

If you see one of the following lines:

  • «AMD-Vi: Interrupt remapping enabled»
  • «DMAR-IR: Enabled IRQ remapping in x2apic mode» (‘x2apic’ can be different on old CPUs, but should still work)

then remapping is supported.

If your system doesn’t support interrupt remapping, you can allow unsafe interrupts with:

AM1B-ITX — IOMMU Virtualization Support

Newbie

Joined: 04 Nov 2016
Status: Offline
Points: 12

Moderator Group

Joined: 15 Jul 2015
Status: Offline
Points: 6335

Is SVM set to Enabled in the BIOS?

Also, are you running the latest L1.60 BIOS?

X370 SLI/ac(r1.03, BIOS 5.10), 1500X, H115i, F4-4133C19D-16GTZA, 970 EVO M.2 250GB + 500GB, Tt Core X9 Black

Newbie

Joined: 04 Nov 2016
Status: Offline
Points: 12

Moderator Group

Joined: 15 Jul 2015
Status: Offline
Points: 6335

And if you would please return and post their response. Now I’m curios.

X370 SLI/ac(r1.03, BIOS 5.10), 1500X, H115i, F4-4133C19D-16GTZA, 970 EVO M.2 250GB + 500GB, Tt Core X9 Black

Newbie

Joined: 17 Aug 2015
Status: Offline
Points: 56

Edited by WKjun — 07 Dec 2016 at 11:41pm

Newbie

Joined: 04 Nov 2016
Status: Offline
Points: 12

Moderator Group

Joined: 15 Jul 2015
Status: Offline
Points: 6335

zmooky wrote:

I submitted the request.

None. Actually that was my error.

L prefix is for BETA BIOSes something here I deal with on a regular basis. I mistakenly entered L instead of P, which P stands for Production

X370 SLI/ac(r1.03, BIOS 5.10), 1500X, H115i, F4-4133C19D-16GTZA, 970 EVO M.2 250GB + 500GB, Tt Core X9 Black

Newbie

Joined: 04 Nov 2016
Status: Offline
Points: 12

Edited by zmooky — 09 Dec 2016 at 4:03am

Newbie

Joined: 17 Aug 2015
Status: Offline
Points: 56

Edited by WKjun — 09 Dec 2016 at 6:46am

Moderator Group

Joined: 04 May 2015
Location: USA
Status: Offline
Points: 5003

Without support for IOMMU by the CPU and/or chipset, there is nothing a mother board can do to bring it to the system.

If the CPU and/or chipset support IOMMU, then the board’s UEFI/BIOS must be able to enable it, and then the board provide anything else IOMMU needs.

The AM1 Kabini SoC processors are specified to support IOMMUv1.

As wardog asked about, since the SVM option in enabled by default, which would enable IOMMU if it is supported by this board, if it doesn’t seem to work, it must not be supported.

I must agree with WKjun, the single channel memory and low price of this board ($35 in the USA), most likely won’t provide this feature. AMD systems that support IOMMU include 990FX chipset and FX processors.

I came across this link, which might help you enable it at the OS level:

In computing, an input–output memory management unit (IOMMU) is a memory management unit (MMU) that connects a direct-memory-access–capable (DMA-capable) I/O bus to the main memory. Like a traditional MMU, which translates CPU-visible virtual addresses to physical addresses, the IOMMU maps device-visible virtual addresses (also called device addresses or I/O addresses in this context) to physical addresses. Some units also provide memory protection from faulty or malicious devices.

An example IOMMU is the graphics address remapping table (GART) used by AGP and PCI Express graphics cards on Intel Architecture and AMD computers.

On the x86 architecture, prior to splitting the functionality of northbridge and southbridge between the CPU and Platform Controller Hub (PCH), I/O virtualization was not performed by the CPU but instead by the chipset. [1] [2]

Создание виртуальной машины Windows

Виртуализация осуществляется с помощью эмулятора машины с открытым исходным кодом и виртуализатора под названием QEMU. Можно либо запустить QEMU напрямую, либо использовать графический интерфейс virt-manager для создания машины и её запуска.

Я предпочитаю графический интерфейс. К сожалению, не все настройки поддерживаются в virt-manager. Таким образом, я определяю основные настройки в пользовательском интерфейсе, делаю быстрый запуск виртуальной машины и “принудительно останавливаю” ее сразу после того, как вижу, что графический процессор передан правильно. После этого можно отредактировать недостающие опции в конфигурацию виртуальной машины с помощью virsh edit

Убедитесь, что ваш ISO-файл Windows, а также драйверы virtio для Windows загружены и готовы к установке.

Предварительная настройка

Как я уже говорил, множество разных вариантов настроек может усложнить это руководство. Прежде чем мы сможем продолжить, нужно принять решение о типе хранилища виртуальной машины

Создание образа диска (если нужно)

В этой статье я пробрасываю свой SSD NVME M. 2 виртуальной машине. Еще одним годным решением является использование образа диска в raw-формате, дополнительную информацию смотрите в разделе хранилище данных.

Создание моста Ethernet

Мы будем использовать соединение типа «мост» для виртуальной машины. Для этого требуется проводное подключение к компьютеру.

Можете посмотреть статью настройки сети здесь.

Создание новой виртуальной машины

Как уже было сказано ранее мы используем графический интерфейс virtual machine manager для создания виртуальной машины с базовыми настройками

Для этого запустите диспетчер и нажмите кнопку “Создать новую виртуальную машину”

Шаг 1

Выберите “Local install media” и продолжайте дальше (см. рис. 3)

Рис. 3 Выбор типа установки виртуальной машины

Шаг 2

Теперь нам нужно выбрать ISO-файл Windows, который мы хотим использовать для установки (см. рис. 3). Также проверьте автоматическое обнаружение системы. Подсказка: используйте кнопку “browse local” (одна из кнопок на правой стороне), чтобы перейти к местоположению ISO.

Рис. 4: Создание виртуальной машины. Шаг 2 – Выберите ISO-файл windows

Шаг 3

Введите объем оперативной памяти и процессорных ядер, которые вы хотите передать, и продолжите работу с мастером. Я хочу использовать 8 ядер (максимум 16, скриншот показывает 12 по ошибке!) и 16384 Мб оперативной памяти в моей виртуальной машине.

Рис. 5: Создание виртуальной машины Шаг 3 – настройки памяти и процессора

Шаг 4

Если вы используете файл образа, выберите ранее созданный файл и продолжите работу. Я снимаю флажок “Enable storage for this virtual machine” и добавляю свое устройство позже.

Рис. 6: Создание виртуальной машины Шаг 4 – Выберите предыдущее созданное хранилище

Шаг 5

На последних шагах требуется чуть больше кликов

Введите осмысленное имя для виртуальной машины. Оно будет использоваться в имени конфигурационного файла xml. Думаю, что не стоит использовать имя с пробелами в названии. Это конечно не вызовет особых проблем, но я всё же был достаточно осторожен, чтобы так не делать ранее.

Кроме того, убедитесь, что вы установили флажок “Customize configuration before install”.

Для раздела “network selection” выберите “Specify shared device name” и введите имя сетевого моста, который мы создали ранее. Вы можете использовать ifconfig в терминале для отображения ваших устройств Ethernet. В моем случае это “bridge0”. (Также при использовании netplan будет выведен список созданных ранее мостов. По мне — это удобнее. (прим. переводчика))

Рис. 7: создание виртуальной машины Шаг 5 – Перед установкой.

Замечание! Количество процессоров на рисунке 7 неверно. Он должен быть 8, если вы выполняли инструкции выше.

Первая настройка

После нажатия кнопки “Готово” откроется окно конфигурации виртуальной машины. В левом столбце отображаются все аппаратные устройства, используемые этой виртуальной машиной. Щелкнув по ним левой кнопкой мыши, вы увидите параметры устройства с правой стороны. Вы можете удалить аппаратное обеспечение с помощью щелчка правой кнопкой мыши. Вы можете добавить больше оборудования с помощью кнопки ниже. Обязательно нажимайте кнопку Применить после каждого изменения.

Следующие скриншоты могут немного отличаться от вашего графического интерфейса (так как я добавил и удалил некоторые аппаратные устройства).

Общее

На первом пункте в списке убедитесь, что для “Firmware” выбран параметр UEFIx86_64 […] OVMF [ … ]. “Chipset” должен быть Q35 см. рис. 8.

Рис. 8: конфигурация виртуальной машины – обзор конфигурации

Процессоры

В секции “Model:” нажмите в раскрывающемся списке, как если бы это было текстовое поле, и введите

Это передаст всю информацию о процессоре гостевой машине. Для получения дополнительной информации вы можете прочитать главу информация о модели процессора в руководстве по производительности

Для параметра “Topology” установите флажок “Manually set CPU topology” со следующими значениями:

  • Sockets: 1
  • Cores: 4
  • Threads: 2

Рис. 9: конфигурация виртуальной машины – Конфигурация процессора *устаревший скриншот

Диск 1, гостевой жесткий диск

В зависимости от этапа предварительной настройки хранилища вы должны выбрать подходящий тип хранения для вашего диска (raw формат или проброшенное реальное оборудование). Дополнительные параметры см. в статье Хранение.

Настройка, если выбран raw файл

Когда вы впервые войдете в этот раздел, там будет написано “IDE Disk 1”. Мы должны изменить значение “дисковая шина:” на VirtIO.

Рис. 10: конфигурация виртуальной машины – конфигурация диска

Настройка, если выбран проброс диска

Узнайте правильный идентификатор устройства диска через lsblk, чтобы получить имя диска.

При первом редактировании конфигурации виртуальной машины добавьте следующий блок в раздел <devices> (одна строка после </emulator> должна быть подходящей).

Чтобы соответствовать вашему имени диска

VirtIO Драйвер

Далее мы должны добавить драйвер virtIO ISO, чтобы он использовался во время установки Windows. В противном случае установщик не сможет распознать объем хранилища, который мы только что изменили с IDE на virtIO.

Для того чтобы добавить драйвер нажмите кнопку “Добавить оборудование”, выберите пункт “Хранилище”, выберите загруженный файл образа.

В поле “Тип устройства:” выберите устройство CD-ROM. Для параметра “тип шины:” выберите IDE, иначе windows также не найдет компакт-диск (см. рис. 11).

Рис. 11: конфигурация виртуальной машины – добавление компакт-диска с драйверами virtIO.

Проброс видеокарты

Наконец-то! Чтобы выполнить проброс GPU, мы должны добавить наш гостевой GPU и USB-контроллер в виртуальную машину. Нажмите кнопку “Добавить оборудование”, выберите “хост-устройство PCI” и найдите устройство по его идентификатору. Проделайте это три раза для:

  • 0000:0c:00.0 для GeForce GTX 1060
  • 0000:0c:00.1 для GeForce GTX 1060 Audio
  • 0000:0d:00.3 для USB контроллера

Рис. 12: конфигурация виртуальной машины – добавление устройств PCI (скриншот все еще со старым оборудованием).

Примечание: В случае, если вы позже добавите дополнительное оборудование (например, другое устройство PCI-E), эти идентификаторы могут быть изменены. Так что имейте в виду, что если вы измените оборудование, просто повторите этот шаг с обновленными идентификаторами.

Так и должно быть. Подключите вторую мышь и клавиатуру к USB-портам проброшенного контроллера (см. рис. 2).

Нажмите кнопку “Начать установку”, и на мониторе, подключенном к GTX 1060, должен появиться логотип Tiano core. Если всплывает забавная бело — желтая оболочка, то введите exit, чтобы выйти из неё.

Если ничего не происходит, убедитесь, что у вас есть оба устройства CD-ROM (по одному для ISO образа Windows 10 и драйвера virtIO) в вашем списке. Также проверьте запись “параметры загрузки”.

Как только вы увидите установку Windows, используйте “force off” из virt-manager, чтобы принудительно остановить виртуальную машину.

Окончательная конфигурация и дополнительные шаги

Для редактирования конфигурации виртуальных машин используйте в консоли: virsh edit your-windows-vm-name

После завершения редактирования вы можете использовать CTRL+S CTRL+X, чтобы сохранить изменения и выйти из редактора.

Я добавил следующие изменения в свою конфигурацию:

Оптимизация процессора AMD Ryzen

(будет дописано позже)

Hugepages для лучшей производительности оперативной памяти

Этот шаг является необязательным и требует предварительной настройки: Подробнее см. Hugepages.

найдите строку, которая заканчивается на </currentMemory>, и добавьте за ней следующий блок:

Примечание: убедитесь, что <memoryBacking> и <currentMemory> имеют одинаковый отступ.

Ссылка на основную публикацию
Adblock
detector