[PATCH] drm/xe: Don't trigger rebind on initial dma-buf validation
Matthew Brost
matthew.brost at intel.com
Mon Aug 25 03:45:16 UTC 2025
On the first validate of an imported dma-buf (initial bind), the device
has no GPU mappings, so a rebind is unnecessary. Rebinding here is
harmful in multi-GPU setups and for VMs using preempt-fence mode, as it
would evict in-flight GPU work.
Signed-off-by: Matthee Brost <matthew.brost at intel.com>
---
drivers/gpu/drm/xe/xe_bo.c | 4 +++-
drivers/gpu/drm/xe/xe_bo_types.h | 3 +++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
index 6fea39842e1e..03d2b6af1d44 100644
--- a/drivers/gpu/drm/xe/xe_bo.c
+++ b/drivers/gpu/drm/xe/xe_bo.c
@@ -816,9 +816,11 @@ static int xe_bo_move(struct ttm_buffer_object *ttm_bo, bool evict,
}
if (ttm_bo->type == ttm_bo_type_sg) {
- ret = xe_bo_move_notify(bo, ctx);
+ if (bo->dma_buf_validated)
+ ret = xe_bo_move_notify(bo, ctx);
if (!ret)
ret = xe_bo_move_dmabuf(ttm_bo, new_mem);
+ bo->dma_buf_validated = true;
return ret;
}
diff --git a/drivers/gpu/drm/xe/xe_bo_types.h b/drivers/gpu/drm/xe/xe_bo_types.h
index cf604adc13a3..fe12690a632e 100644
--- a/drivers/gpu/drm/xe/xe_bo_types.h
+++ b/drivers/gpu/drm/xe/xe_bo_types.h
@@ -77,6 +77,9 @@ struct xe_bo {
/** @ccs_cleared */
bool ccs_cleared;
+ /** @dma_buf_validated: DMA-BUF has been validated at least once */
+ bool dma_buf_validated;
+
/** @bb_ccs_rw: BB instructions of CCS read/write. Valid only for VF */
struct xe_bb *bb_ccs[XE_SRIOV_VF_CCS_CTX_COUNT];
--
2.34.1
More information about the Intel-xe
mailing list