drm_exec changes for eviction

Christian König christian.koenig at amd.com
Tue May 7 13:36:42 UTC 2024


Am 06.05.24 um 11:46 schrieb Thomas Hellström:
> Hi Christian, Others.
>
> In order to support exhaustive eviction there are some changes that I
> think needs to be made to drm_exec:
>
> 1) Trylock support
> (This is for ttm_bo_vm, ttm_buffer_object_init_reserved, and also for
> the eviction path where I think we want to make a trylock pass before a
> sleeping lock pass).

Not sure why we need this for ttm_bo_vm, but in general that sounds like 
the right approach to me as well.

> In essence this means we can't leave any contending lock unlocked until
> the next sleeping lock, but rather need to relock it on
> drm_exec_retry_on_contention(), meaning that that macro also gets
> passed and returns an error code to handle -EINTR.

Hui what? I can't really follow what you mean here.

>
> 2) Snapshot unlock
> After successfully obtaining backing store, we want to unlock all
> evicted objects. So snapshot the drm_exec state when eviction begins,
> and unlock everything down to the snapshot after successful backing
> store allocation. Essentially the snapshot contains the number of
> locked objects and a pointer to the prelocked object.

Interesting idea, never though about that. Not sure if that makes the 
situation better or worse.

One goal of drm_exec was to be able to keep evicted BOs locked until the 
whole submission is completed and that obviously contradicts that.

Regards,
Christian.

>
> Any concerns?
> Thanks,
> Thomas
>



More information about the dri-devel mailing list