drm/ttm: warn when resv objs are mixed in a bulk_move
The BOs in a bulk move must share all the same reservation object to make sure that we lock the whole bulk during eviction. Actually document and enforce that with a warning. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240312105555.3065-1-christian.koenig@amd.com
This commit is contained in:
@@ -105,6 +105,7 @@ static void ttm_lru_bulk_move_add(struct ttm_lru_bulk_move *bulk,
|
||||
pos->first = res;
|
||||
pos->last = res;
|
||||
} else {
|
||||
WARN_ON(pos->first->bo->base.resv != res->bo->base.resv);
|
||||
ttm_lru_bulk_move_pos_tail(pos, res);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -251,6 +251,9 @@ struct ttm_lru_bulk_move_pos {
|
||||
*
|
||||
* Container for the current bulk move state. Should be used with
|
||||
* ttm_lru_bulk_move_init() and ttm_bo_set_bulk_move().
|
||||
* All BOs in a bulk_move structure need to share the same reservation object to
|
||||
* ensure that the bulk as a whole is locked for eviction even if only one BO of
|
||||
* the bulk is evicted.
|
||||
*/
|
||||
struct ttm_lru_bulk_move {
|
||||
struct ttm_lru_bulk_move_pos pos[TTM_NUM_MEM_TYPES][TTM_MAX_BO_PRIORITY];
|
||||
|
||||
Reference in New Issue
Block a user