drm_exec changes for eviction

Thomas Hellström thomas.hellstrom at linux.intel.com
Mon May 6 09:46:51 UTC 2024


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).
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.

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.

Any concerns?
Thanks,
Thomas



More information about the dri-devel mailing list