Until now ttm stored a single pipelined eviction fence which means drivers had to use a single entity for these evictions. To lift this requirement, this commit allows up to 8 entities to be used. Ideally a dma_resv object would have been used as a container of the eviction fences, but the locking rules makes it complex. dma_resv all have the same ww_class, which means "Attempting to lock more mutexes after ww_acquire_done." is an error. One alternative considered was to introduced a 2nd ww_class for specific resv to hold a single "transient" lock (= the resv lock would only be held for a short period, without taking any other locks). The other option, is to statically reserve a fence array, and extend the existing code to deal with N fences, instead of 1. The driver is still responsible to reserve the correct number of fence slots. Signed-off-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Link: https://lore.kernel.org/r/20251121101315.3585-20-pierre-eric.pelloux-prayer@amd.com Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> |
||
|---|---|---|
| .. | ||
| .kunitconfig | ||
| Makefile | ||
| TODO | ||
| ttm_bo_test.c | ||
| ttm_bo_validate_test.c | ||
| ttm_device_test.c | ||
| ttm_kunit_helpers.c | ||
| ttm_kunit_helpers.h | ||
| ttm_mock_manager.c | ||
| ttm_mock_manager.h | ||
| ttm_pool_test.c | ||
| ttm_resource_test.c | ||
| ttm_tt_test.c | ||