[PATCH 1/2] drm/amdkfd: wait migration done only if migration starts
Philip Yang
Philip.Yang at amd.com
Thu Apr 29 01:53:38 UTC 2021
If migration vma setup, but failed before start sdma memory copy, e.g.
process is killed, don't wait for sdma fence done.
Signed-off-by: Philip Yang <Philip.Yang at amd.com>
---
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
index 6b810863f6ba..19b08247ba8a 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
@@ -460,10 +460,12 @@ svm_migrate_vma_to_vram(struct amdgpu_device *adev, struct svm_range *prange,
}
if (migrate.cpages) {
- svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence,
- scratch);
- migrate_vma_pages(&migrate);
- svm_migrate_copy_done(adev, mfence);
+ r = svm_migrate_copy_to_vram(adev, prange, &migrate, &mfence,
+ scratch);
+ if (!r) {
+ migrate_vma_pages(&migrate);
+ svm_migrate_copy_done(adev, mfence);
+ }
migrate_vma_finalize(&migrate);
}
@@ -663,10 +665,12 @@ 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);
- migrate_vma_pages(&migrate);
- svm_migrate_copy_done(adev, mfence);
+ r = svm_migrate_copy_to_ram(adev, prange, &migrate, &mfence,
+ scratch);
+ if (!r) {
+ migrate_vma_pages(&migrate);
+ svm_migrate_copy_done(adev, mfence);
+ }
migrate_vma_finalize(&migrate);
} else {
pr_debug("failed collect migrate device pages [0x%lx 0x%lx]\n",
--
2.17.1
More information about the amd-gfx
mailing list