On Mon, Sep 07, 2026 at 11:12:05PM -0500, Mario Limonciello wrote: > Add support for the AMD IOMMU Performance Optimization (PerfOpt) > feature as defined in the AMD I/O Virtualization Technology (IOMMU) > Specification, Section 3.4.9 (MMIO Offset 016Ch). > > This feature allows privileged integrated I/O devices (GPUs) to bypass > the IOMMU when directly accessing system memory. The IOMMU only > enforces the IR/IW permission bits without GPA->SPA translations. > > Drivers will opt into this behavior, and enable amdgpu to turn this > feature on when an integrated GPU is already in identity mode. > If a user prefers to keep it always off (even with identity mode) > there is also a module parameter to force it off. >
Our GPU memory accessing benchmark confirms the improvement: without the patchset, GTT is 2x - 3x slower than VRAM, after this, the latency gap is almost gone (within 10%). Nice work! Tested-by: Boqun Feng (Netflix) <[email protected]> Regards, Boqun > v2: > * Rebase on 7.3-rc2 > * Adjust amdgpu parameter behavior > > Mario Limonciello (2): > iommu/amd: Add PerfOpt IOMMU performance optimization support > drm/amdgpu: Enable PerfOpt IOMMU perf optimization when GPU in > identity domain > > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 50 +++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 12 ++ > drivers/iommu/amd/amd_iommu.h | 3 + > drivers/iommu/amd/amd_iommu_types.h | 7 + > drivers/iommu/amd/init.c | 43 +++++ > drivers/iommu/amd/iommu.c | 214 +++++++++++++++++++++ > include/linux/amd-iommu.h | 11 ++ > 8 files changed, 341 insertions(+) > > -- > 2.43.0 >
