[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