Skip to content

[RHEL 9.2] IOMMU and DMA Mapping Updates

Jerry Snitselaar requested to merge jsnitsel/centos-stream-9:rhel9.2-iommu into main

Merge Request Required Information

Bugzilla: https://bugzilla.redhat.com/2112024

Bugzilla: https://bugzilla.redhat.com/2121155

Depends: https://bugzilla.redhat.com/2124620

Upstream Status: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

Testing: fio jobs, tested kdump vmcore harvesting + verifying vmcore can be opened in crash and looked at.

Summary of Changes

This brings the IOMMU and DMA mapping subsystems up to 6.0-rc5 minus some AMD changes that are in a separate MR.

Of note there is some refactoring of the intel iommu code which requires backporting some related changes touching i915 and KVM.

@Lyude - One case here I removed the include of intel-iommu.h in drivers/gpu/drm/i915/i915_drv.h, because a7f46d5b91a5 ("drm/i915: Move intel_vtd_active and run_as_guest to i915_utils") has not been backported yet. That was doing a bit of moving things around so I thought I should leave that to the gpu team. If you would like me to pull that in here let me know, but wanted to make sure you are aware since it will be a small conflict to clean up when a7f46d5b91a5 is backported.

I also pulled in the pci p2pdma changes from Christoph's PR that were removing some pci p2pdma specific functions that were being called by rdma and nvme code, and migrated the code into regular mapping calls in the dma-iommu and dma-direct code. We don't really have a way to test this yet, but the code is contained within checks for pci p2pdma, and nvme devices with the controller memory buffer capability seem to be rare at this point. Since nvme is currently the only provider using pci p2pdma, and rdma + nvme are the only consumers I think pulling these in should be okay. They were already doing their special calls anyways in the case where pci p2pdma would be used.

Another change to note. Upstream realized that swiotlb-xen is dead code unless you are using XEN_PV, so it is no longer built in the XEN_PVHVM case that is used by RHEL.

@llong1 Can you look at the try_cmpxchg64 changes to make sure I got that right?

Signed-off-by: Jerry Snitselaar jsnitsel@redhat.com

Edited by Jerry Snitselaar

Merge request reports