It was observed that allocating large objects via i915 driver (igt-gpu-tools/tests/gem_exec_big/single) the folios and their pages were not handled properly leading to buffer corruptions during relocations. Furthermore, using iommu driver in this context would leave residual mappings in memory that could not be released, hogging available RAM even after the process ended.
Krzysztof Karas (5): drm/i915/gem: Count mapped pages in a folio iommu/dma: Catch scatterlist length overflows drm/i915/gem: Pull out size validation into a separate function drm/i915/gem: Read and shrink memory in a separate function drm/i915/gem: Remove iterator and use while loop drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 176 +++++++++++++--------- drivers/iommu/dma-iommu.c | 13 +- 2 files changed, 119 insertions(+), 70 deletions(-) -- 2.34.1
