[RHEL 9.3] Add map_pages and unmap_pages ops for AMD IOMMU
Merge Request Required Information
Upstream Status: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Testing: Tested by Broadcom with multiple runs of HPE Hazard test for 8+ hours, plus local testing here with fio workloads.
Summary of Changes
This set of commits implements the map_pages/unmap_pages dma ops for the AMD IOMMU driver replacing the less efficient map_page/unmap_page. Broadcom, and a customer were both seeing pressure on the deferred invalidation flush queue on large (384 cpu) Genoa systems causing soft lockups due to fq_flush_timeout constantly running. These commits were getting picked up anyways as part of the IOMMU updates, but the performance improvement from using map_pages/unmap_pages was enough to alleviate the problem in Broadcom's testing. So pulling these into their own MR get them merged, and ready for z-stream.
Approved Bugzilla Ticket
All submissions to CentOS Stream must reference an approved ticket in Red Hat Bugzilla. Please follow the CentOS Stream contribution documentation for how to file this ticket and have it approved.
Bugzilla: https://bugzilla.redhat.com/2149974
Bugzilla: https://bugzilla.redhat.com/2179856
Signed-off-by: Jerry Snitselaar jsnitsel@redhat.com