drm/amdkfd: Enable SVM on Native mode
authorMukul Joshi <mukul.joshi@amd.com>
Tue, 31 Jan 2023 16:23:50 +0000 (11:23 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Jun 2023 13:55:35 +0000 (09:55 -0400)
This patch enables SVM capability on GFX9.4.3 when
run in Native mode. It also sets best_prefetch and
best_restore locations to CPU as there is no VRAM.

Signed-off-by: Mukul Joshi <mukul.joshi@amd.com>
Acked-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_svm.c
drivers/gpu/drm/amd/amdkfd/kfd_svm.h

index 2b79849..cf354f9 100644 (file)
@@ -2543,6 +2543,9 @@ svm_range_best_restore_location(struct svm_range *prange,
                return -1;
        }
 
+       if (node->adev->gmc.is_app_apu)
+               return 0;
+
        if (prange->preferred_loc == gpuid ||
            prange->preferred_loc == KFD_IOCTL_SVM_LOCATION_SYSMEM) {
                return prange->preferred_loc;
@@ -3256,6 +3259,11 @@ svm_range_best_prefetch_location(struct svm_range *prange)
                goto out;
        }
 
+       if (bo_node->adev->gmc.is_app_apu) {
+               best_loc = 0;
+               goto out;
+       }
+
        if (p->xnack_enabled)
                bitmap_copy(bitmap, prange->bitmap_aip, MAX_GPU_INSTANCE);
        else
index 5116786..7515dda 100644 (file)
@@ -200,7 +200,8 @@ void svm_range_list_lock_and_flush_work(struct svm_range_list *svms, struct mm_s
 /* SVM API and HMM page migration work together, device memory type
  * is initialized to not 0 when page migration register device memory.
  */
-#define KFD_IS_SVM_API_SUPPORTED(dev) ((dev)->pgmap.type != 0)
+#define KFD_IS_SVM_API_SUPPORTED(dev) ((dev)->pgmap.type != 0 ||\
+                                      (dev)->adev->gmc.is_app_apu)
 
 void svm_range_bo_unref_async(struct svm_range_bo *svm_bo);