VirtIO-IOMMU Comes To x86 With Linux 5.14

Written by Michael Larabel in Virtualization on 11 July 2021 at 05:08 AM EDT. 9 Comments
The VirtIO-IOMMU driver now works on x86/x86_64 hardware with the Linux 5.14 kernel.

Added two years ago to the Linux kernel was the VirtIO-IOMMU driver (merged in Linux 5.3) with an original focus on AArch64 for hardware for paravirtual IOMMU after being worked on out-of-tree for years prior. Now with Linux 5.14 in 2021 the VirtIO-IOMMU code is adapted to work on x86 Intel/AMD hardware too.

The IOMMU specification within VirtIO allows for the device to manage DMA from one or more end points and can act as a proxy for physical IOMMUs managing devices assigned to the guest. VirtIO-IOMMU can deal with managing both emulated and para-virtualized devices.

This x86 support for VirtIO-IOMMU comes after supporting the new VIOT ACPI table. The ACPI Virtual I/O Translation Table (VIOT) is used for describing the topology of para-virtual platforms and in this case on x86 is used for describing the relation between virtio-iommu and endpoints.

Besides virtio-iommu for x86, the IOMMU changes for Linux 5.14 also include Arm SMMU updates, Intel VT-d now supporting asynchronous nested capabilities, and a variety of other improvements. Also one new is the "amd_iommu=force_enable" kernel command line option for forcing IOMMU on platforms where it's normally problematic. AMD Stoney is among the platforms often exhibiting buggy IOMMU behavior.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week