Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/xe/migrate: trim batch buffer sizing

We have an extra two dwords, but it looks like we should only need one
for the extra bb_end. Likely this is just leftover from back when the
arb handling was moved into the ring programming.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20251022163836.191405-6-matthew.auld@intel.com

+3 -3
+3 -3
drivers/gpu/drm/xe/xe_migrate.c
··· 847 847 &ccs_it); 848 848 849 849 while (size) { 850 - u32 batch_size = 2; /* arb_clear() + MI_BATCH_BUFFER_END */ 850 + u32 batch_size = 1; /* MI_BATCH_BUFFER_END */ 851 851 struct xe_sched_job *job; 852 852 struct xe_bb *bb; 853 853 u32 flush_flags = 0; ··· 1312 1312 1313 1313 /* Calculate final sizes and batch size.. */ 1314 1314 pte_flags = clear_vram ? PTE_UPDATE_FLAG_IS_VRAM : 0; 1315 - batch_size = 2 + 1315 + batch_size = 1 + 1316 1316 pte_update_size(m, pte_flags, src, &src_it, 1317 1317 &clear_L0, &clear_L0_ofs, &clear_L0_pt, 1318 1318 clear_bo_data ? emit_clear_cmd_len(gt) : 0, 0, ··· 1876 1876 struct xe_device *xe = gt_to_xe(gt); 1877 1877 bool use_usm_batch = xe->info.has_usm; 1878 1878 struct dma_fence *fence = NULL; 1879 - u32 batch_size = 2; 1879 + u32 batch_size = 1; 1880 1880 u64 src_L0_ofs, dst_L0_ofs; 1881 1881 struct xe_sched_job *job; 1882 1882 struct xe_bb *bb;