[PATCH v3 4/5] drm/amdgpu: validate the eviction fence before attaching/detaching
Christian König
christian.koenig at amd.com
Tue May 6 08:38:30 UTC 2025
On 5/6/25 10:22, Liang, Prike wrote:
>>> - /* attach gfx eviction fence */
>>> + /* attach gfx the validated eviction fence */
>>> r = amdgpu_eviction_fence_attach(&fpriv->evf_mgr, abo);
>>> if (r) {
>>> DRM_DEBUG_DRIVER("Failed to attach eviction fence to BO\n");
>>> + amdgpu_bo_unreserve(abo);
>> Adding this here looks like the only valid fix in the patch.
> As the eviction fence will be invalidated until the user queue is created from the user space, here it requires validating the eviction fence before trying to attach and detach it to the reservation.
> I will try to draft a patch for validating the eviction fence at attach/detach separately with this attach error handler change.
No, that is clearly incorrect.
See the eviction fence works like this:
Validating thread
* Create new eviction fence
* Publish eviction fence
* Lock all BOs
* Replace eviction fence
Attaching:
* Lock BO
* Attach current eviction fence
* Unlock BO
Detaching:
* Lock BO
* Unconditionally detach all possible eviction fences, no matter if new or old.
* Unlock BO
This order is necessary or otherwise you break the logic here.
Any additional check will completely mess that up because it makes the operation racy.
Regards,
Christian.
>
> Thanks,
> Prike
>
>>
>> Regards,
>> Christian.
>>
>>> return r;
>>> }
>>>
More information about the amd-gfx
mailing list