drm/amdkfd: Share the original BO for GTT mapping
authorPhilip Yang <Philip.Yang@amd.com>
Mon, 21 Aug 2023 19:09:56 +0000 (15:09 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 30 Aug 2023 19:19:07 +0000 (15:19 -0400)
If mGPUs is on same IOMMU group, or is ram direct mapped, then mGPUs
can share the original BO for GTT mapping dma address, without creating
new BO from export/import dmabuf.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c

index 7d6daf8..57189b8 100644 (file)
@@ -866,9 +866,10 @@ static int kfd_mem_attach(struct amdgpu_device *adev, struct kgd_mem *mem,
 
                if ((adev == bo_adev && !(mem->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_MMIO_REMAP)) ||
                    (amdgpu_ttm_tt_get_usermm(mem->bo->tbo.ttm) && reuse_dmamap(adev, bo_adev)) ||
-                       same_hive) {
+                   (mem->domain == AMDGPU_GEM_DOMAIN_GTT && reuse_dmamap(adev, bo_adev)) ||
+                   same_hive) {
                        /* Mappings on the local GPU, or VRAM mappings in the
-                        * local hive, or userptr mapping can reuse dma map
+                        * local hive, or userptr, or GTT mapping can reuse dma map
                         * address space share the original BO
                         */
                        attachment[i]->type = KFD_MEM_ATT_SHARED;