Modern IOMMUs are deployed across wildly different environments. In enterprise servers, they require massive scalability, heavy virtualization support, and a zero-tolerance policy for lock contention. On the other hand, as these high-performance IOMMUs increasingly find their way into mobile, automotive, and edge SoCs, aggressive dynamic power management becomes mandatory.
Using arm-smmu-v3 as a case study, this talk explores the design challenges in integrating the Linux Runtime Power Management (RPM) framework into high-performance IOMMU drivers. Modern IOMMU drivers operate primarily with in-memory data structures, rely on HW-shared queues and are designed for lockless, concurrent access, often from strictly atomic contexts.
The RPM framework’s reliance on locks fundamentally clashes with this lockless architecture and atomic execution constraints. This session walks through the design choices evaluated while implementing runtime power management for a modern IOMMU driver, without sacrificing its lockless, concurrent, and efficient behavior.
The talk is backed by the arm-smmu-v3 RPM Series upstream: lore.kernel.org/all/
[email protected]/