drm/amdgpu: make an improvement on amdgpu_hmm_range_get_pages
authorJames Zhu <James.Zhu@amd.com>
Fri, 8 Dec 2023 22:49:54 +0000 (17:49 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 15 Dec 2023 17:16:42 +0000 (12:16 -0500)
Only schedule when hmm_range_fault returns error.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c

index b24eb5821fd1960d4006d1a7b89c053729df0434..55b65fc04b651ee36196b038e7dda5b82e6e2051 100644 (file)
@@ -199,6 +199,7 @@ retry:
                hmm_range->notifier_seq = mmu_interval_read_begin(notifier);
                r = hmm_range_fault(hmm_range);
                if (unlikely(r)) {
+                       schedule();
                        /*
                         * FIXME: This timeout should encompass the retry from
                         * mmu_interval_read_retry() as well.
@@ -212,7 +213,6 @@ retry:
                        break;
                hmm_range->hmm_pfns += MAX_WALK_BYTE >> PAGE_SHIFT;
                hmm_range->start = hmm_range->end;
-               schedule();
        } while (hmm_range->end < end);
 
        hmm_range->start = start;