Welcome to reprint, but please quote the original source at the beginning or end.


Both VT-D and IOMMU actually stand for I/O virtualization, but the former is Intel’s name and the latter is AMD’s name:

  • VT-dThe whole is calledIntel® Virtualization Technology for Directed I/O
  • IOMMUThe whole is calledInput/Output Memory Management Unit

This technology allows resources from pCI-E devices to be allocated directly to virtual machines, known as PCI passthrough.

For example, the virtual client has direct access to a physical video card, performs much better than a VMM/Hypervisor virtual video card, and supports graphics acceleration.

Check whether it is enabled in Linux

Generally speaking, the VT-D/IOMMU Settings can be found in the BIOS/UEFI of the mainboard.

But there are special cases, some motherboards can not find the setting, there are two cases:

  • The mainboard hardware or firmware is not supportedThe I/O virtualization
  • The main board is brushed into the neutered version of the firmware, but in factVT-d / IOMMUIs enabled

How do I check if it is enabled on Linux?

If VT-D/IOMMU is enabled, Linux will configure DMA remapping during startup, so the easy way is to look for DMAR items in dMESg.

  • On an enabled machine:
# dmesg | grep DMAR [0.000000] ACPI: DMAR 0x00000000BBECB000 0000A8 (V01 LENOVO TP-R0D 00000930 PTEC 00000002) [0.001000] DMAR: Host address width 39 [0.001000] DMAR: DRHD Base: 0x000000FeD90000 Flags: 0x0 [0.001000] DMAR: DMAR0: Reg_base_addr FED90000 VER 1:0 CAP 1C0000C40660462 ECAP 19e2FF0505E [0.001000] DMAR: DRHD Base: 0x000000FeD91000 FLAGS: 0x1 [0.001000] DMAR: DMAR1: Reg_base_addr FED91000 VER 1:0 CAP D2008C40660462 ECAP F050DA [0.001000] DMAR: RMRR Base: 0x000000BBDD8000 end: 0x000000bbDF7ffF [0.001000] DMAR: RMRR Base: 0x000000BD000000 End: 0x000000Bf7ffffF [0.001000] DMAR-IR: IOAPIC ID 2 under DRHD Base 0xFeD91000 IOMMU 1 [0.001000] Dmar-ir: HPET ID 0 under DRHD Base 0xFeD91000 [0.001000] dmar-ir: Queued Invalidation will be enabled to support X2APIC and INtr-remapping. [0.002000] DMAR-IR: Enabled IRQ remapping in x2apic modeCopy the code

If you look at the last line, you can see something like dmar-ir: Enabled IRQ remapping in XXXXX mode

  • On an open machine:
# dmesg | grep DMAR
Copy the code

No output, i.e., no DMAR related items found