drm/amdgpu: Fail DMABUF map of XGMI-accessible memory
authorFelix Kuehling <felix.kuehling@amd.com>
Thu, 17 Apr 2025 16:02:09 +0000 (12:02 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 30 Apr 2025 22:05:02 +0000 (18:05 -0400)
If peer memory is XGMI-accessible, we should never access it through PCIe
P2P DMA mappings. PCIe P2P is slower, has different coherence behaviour,
limited or no support for atomics, or may not work at all. Fail with a
warning if DMABUF mappings of such memory are attempted.

Signed-off-by: Felix Kuehling <felix.kuehling@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c

index e6913fc..44e120f 100644 (file)
@@ -199,6 +199,11 @@ static struct sg_table *amdgpu_dma_buf_map(struct dma_buf_attachment *attach,
                break;
 
        case TTM_PL_VRAM:
+               /* XGMI-accessible memory should never be DMA-mapped */
+               if (WARN_ON(amdgpu_dmabuf_is_xgmi_accessible(
+                               dma_buf_attach_adev(attach), bo)))
+                       return ERR_PTR(-EINVAL);
+
                r = amdgpu_vram_mgr_alloc_sgt(adev, bo->tbo.resource, 0,
                                              bo->tbo.base.size, attach->dev,
                                              dir, &sgt);