Commit 14133294 authored by Matthew Auld's avatar Matthew Auld
Browse files

drm/xe/migrate: fix batch buffer sizing



In xe_migrate_vram() the copy can straddle page boundaries, so the len
might look like a single page, but actually accounting for the offset
within the page we will need to emit more than one PTE. Otherwise in
some cases the batch buffer will be undersized leading to warnings
later.  We already have npages so use that instead.

Signed-off-by: default avatarMatthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20251022163836.191405-5-matthew.auld@intel.com
parent fb188d8b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1894,7 +1894,7 @@ static struct dma_fence *xe_migrate_vram(struct xe_migrate *m,

	xe_assert(xe, npages * PAGE_SIZE <= MAX_PREEMPTDISABLE_TRANSFER);

	batch_size += pte_update_cmd_size(len);
	batch_size += pte_update_cmd_size(npages << PAGE_SHIFT);
	batch_size += EMIT_COPY_DW;

	bb = xe_bb_new(gt, batch_size, use_usm_batch);