mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 15:15:28 -04:00
drm/amdkfd: enable subsequent retry fault
After draining the stale retry fault, or failed to validate the range to recover, have to remove the fault address from fault filter ring, to be able to handle subsequent retry interrupt on same address. Otherwise the retry fault will not be processed to recover until timeout passed. 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>
This commit is contained in:
committed by
Alex Deucher
parent
36255b5f61
commit
b3dc91f973
@@ -2363,8 +2363,10 @@ svm_range_restore_pages(struct amdgpu_device *adev, unsigned int pasid,
|
||||
|
||||
mutex_lock(&prange->migrate_mutex);
|
||||
|
||||
if (svm_range_skip_recover(prange))
|
||||
if (svm_range_skip_recover(prange)) {
|
||||
amdgpu_gmc_filter_faults_remove(adev, addr, pasid);
|
||||
goto out_unlock_range;
|
||||
}
|
||||
|
||||
timestamp = ktime_to_us(ktime_get()) - prange->validate_timestamp;
|
||||
/* skip duplicate vm fault on different pages of same range */
|
||||
@@ -2426,6 +2428,7 @@ svm_range_restore_pages(struct amdgpu_device *adev, unsigned int pasid,
|
||||
|
||||
if (r == -EAGAIN) {
|
||||
pr_debug("recover vm fault later\n");
|
||||
amdgpu_gmc_filter_faults_remove(adev, addr, pasid);
|
||||
r = 0;
|
||||
}
|
||||
return r;
|
||||
|
||||
Reference in New Issue
Block a user