AMD IOMMU Improvements & Apple M1 USB4/Thunderbolt DART Submitted For Linux 6.8

Written by Michael Larabel in Linux Kernel on 14 January 2024 at 09:41 AM EST. 5 Comments
LINUX KERNEL
All of the Input-Output Memory Management Unit (IOMMU) subsystem updates were sent out this week for the in-development Linux 6.8 kernel.

Perhaps of most interest from this pull to Phoronix readers is having the Apple M1 USB4/Thunderbolt DART support in place for the mainline kernel. As open-source developer Sven Peter explained in the patch series:
"The M1 SoCs have a second slightly different variant of the regular DART used for the USB4 PCIe ports. It supports 64 instead of 16 streams which requires a minor change to the MMIO layout. There seems to be no way to tell them apart from the regular DARTs by just looking at the DART_PARAMs register so we have to add a new compatible for those."

DART is Apple's IOMMU referred to as the Device Address Resolution Table and is needed for Apple Silicon peripherals for DMA support.

Apple Mac Mini M1 ports


This Apple M1 USB4/Thunderbolt DART support goes along with the other recent hardware support efforts by the Asahi Linux crew for bettering the Linux support on Apple Silicon.

The other significant work with the Linux 6.8 IOMMU pull is a set of patches from AMD for enhancing their IOMMU driver's TLB invalidation logic. Currently the driver invalidates a single page or an entire range for the given domain I/O. However, the AMD IOMMU hardware is able to support multi-page invalidation. With the patches for Linux 6.8 there is now support for invalidating a range of pages. So now the AMD IOMMU driver is good to go for invalidating multiple guest pages rather than just a single page or the entire range of a single address space.

The IOMMU pull also has various ARM SMMU driver updates, clean-up and code refactoring for the Intel VT-d driver, and the Virt IOMMU driver can now handle deferred I/O TLB flushes. The deferred flushing on the VirtIO IOMMU path can lead to a "a significant increase in performance in exchange for a window in which devices can still access previously IOMMU mapped memory when running with CONFIG_IOMMU_DEFAULT_DMA_LAZY."
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com 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 OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week