RE: [PATCH v4 00/24] iommu/amd: Introduce AMD Hardware-accelerated Virtualized IOMMU (vIOMMU) Support
From: Tian, Kevin
Date: Tue Aug 11 2026 - 03:30:24 EST
> From: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>
> Sent: Monday, July 27, 2026 9:29 PM
>
> AMD IOMMU introduces the vIOMMU feature, which provides partial
> hardware
> acceleration when implementing Guest IOMMUs. This feature provides
> acceleration for guest Command Buffer, Event Log, and PPR Log. This
> eliminates the CPU overhead needed for the supporting HV intercepts and
> reduces the latency of these operations.
>
> When a guest attempts to access guest IOMMU MMIO registers with offsets
> between 8KB and 12KB (i.e. the 3rd 4K region) such as the Command Buffer,
> Event Log and PPR Log head and tail pointer registers, this is serviced
> directly by the IOMMU. When the IOMMU accesses a Command Buffer, PPR
> Log
> or a COMPLETION_WAIT store location in memory, it directly accesses guest
> physical memory. The HV/VMM continues to trap and emulate the IOMMU
> configuration MMIO registers between 0KB and 4KB (i.e. the 1st 4K
> region), which are primarily used during initialization.
>
> Additionally, the HV must initialize the vIOMMU feature, map MMIO
> resources
> between the VMs and the IOMMU, manage additional supporting data
> structures
> in memory (e.g. GPA->SPA translation DTE, Device ID and Domain ID
> mapping
> tables), and allocate/map vIOMMU Private Address region used as backing
> storage memory for the IOMMU. Support for new IOMMU command and
> events
> specifically for vIOMMU are also added.
above tells the full architecture...
[...]
>
> Testing done:
> * Single/Multiple vIOMMU instances
> * Single/Multiple VFIO devices per vIOMMU instance.
... and here seems to indicate it's a full/testable support.
But patch3 says:
"
Introduce a new global variable amd_iommu_viommu, which is used to
control the feature enablement in the driver. Currently, the feature
is default to disabled. Once the feature is fully supported, it will be
changed to enabled by default.
"
then amd_iommu_viommu is never turned on in this series, indicating
it's only a partial support.
It'd be good to clarify it plus listing the missing pieces. better with a git
repo if one is interested in checking the entire logic.
btw it failed to apply in Sashiko. The review there is generally beneficial
for such a big series.
Thanks,
Kevin