drm/amdkfd: handle errors returned by svm_migrate_copy_to_vram/ram
authorPhilip Yang <Philip.Yang@amd.com>
Wed, 28 Apr 2021 22:57:57 +0000 (18:57 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 10 May 2021 22:08:32 +0000 (18:08 -0400)
If migration copy failed because process is killed, or out of VRAM or
system memory, pass error code back to caller to handle error
gracefully.

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/amdkfd/kfd_migrate.c

index bc2fc52..fd8f544 100644 (file)
@@ -460,8 +460,8 @@ retry:
        }
 
        if (migrate.cpages) {
-               svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence,
-                                        scratch);
+               r = svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence,
+                                            scratch);
                migrate_vma_pages(&migrate);
                svm_migrate_copy_done(adev, mfence);
                migrate_vma_finalize(&migrate);
@@ -663,8 +663,8 @@ svm_migrate_vma_to_ram(struct amdgpu_device *adev, struct svm_range *prange,
        pr_debug("cpages %ld\n", migrate.cpages);
 
        if (migrate.cpages) {
-               svm_migrate_copy_to_ram(adev, prange, &migrate, &mfence,
-                                       scratch);
+               r = svm_migrate_copy_to_ram(adev, prange, &migrate, &mfence,
+                                           scratch);
                migrate_vma_pages(&migrate);
                svm_migrate_copy_done(adev, mfence);
                migrate_vma_finalize(&migrate);