Lines Matching refs:xe

15 static bool sanity_fence_failed(struct xe_device *xe, struct dma_fence *fence,  in sanity_fence_failed()  argument
37 static int run_sanity_job(struct xe_migrate *m, struct xe_device *xe, in run_sanity_job() argument
41 u64 batch_base = xe_migrate_batch_base(m, xe->info.has_usm); in run_sanity_job()
57 if (sanity_fence_failed(xe, fence, str, test)) in run_sanity_job()
75 struct xe_device *xe = tile_to_xe(m->tile); in test_copy() local
82 struct xe_bo *remote = xe_bo_create_locked(xe, m->tile, NULL, in test_copy()
108 xe_map_memset(xe, &remote->vmap, 0, 0xd0, xe_bo_size(remote)); in test_copy()
111 if (!sanity_fence_failed(xe, fence, big ? "Clearing remote big bo" : in test_copy()
113 retval = xe_map_rd(xe, &remote->vmap, 0, u64); in test_copy()
116 retval = xe_map_rd(xe, &remote->vmap, xe_bo_size(remote) - 8, u64); in test_copy()
123 xe_map_memset(xe, &remote->vmap, 0, 0xc0, xe_bo_size(remote)); in test_copy()
124 xe_map_memset(xe, &bo->vmap, 0, 0xd0, xe_bo_size(bo)); in test_copy()
129 if (!sanity_fence_failed(xe, fence, big ? "Copying big bo remote -> vram" : in test_copy()
131 retval = xe_map_rd(xe, &bo->vmap, 0, u64); in test_copy()
134 retval = xe_map_rd(xe, &bo->vmap, xe_bo_size(bo) - 8, u64); in test_copy()
141 xe_map_memset(xe, &remote->vmap, 0, 0xd0, xe_bo_size(remote)); in test_copy()
142 xe_map_memset(xe, &bo->vmap, 0, 0xc0, xe_bo_size(bo)); in test_copy()
146 if (!sanity_fence_failed(xe, fence, big ? "Copying big bo vram -> remote" : in test_copy()
148 retval = xe_map_rd(xe, &remote->vmap, 0, u64); in test_copy()
151 retval = xe_map_rd(xe, &remote->vmap, xe_bo_size(bo) - 8, u64); in test_copy()
187 struct xe_device *xe = tile_to_xe(tile); in xe_migrate_sanity_test() local
203 big = xe_bo_create_pin_map(xe, tile, m->q->vm, SZ_4M, in xe_migrate_sanity_test()
211 pt = xe_bo_create_pin_map(xe, tile, m->q->vm, XE_PAGE_SIZE, in xe_migrate_sanity_test()
220 tiny = xe_bo_create_pin_map(xe, tile, m->q->vm, in xe_migrate_sanity_test()
230 bb = xe_bb_new(tile->primary_gt, 32, xe->info.has_usm); in xe_migrate_sanity_test()
242 xe_map_wr(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1), u64, in xe_migrate_sanity_test()
244 expected = m->q->vm->pt_ops->pte_encode_bo(pt, 0, xe->pat.idx[XE_CACHE_WB], 0); in xe_migrate_sanity_test()
255 run_sanity_job(m, xe, bb, bb->len, "Writing PTE for our fake PT", test); in xe_migrate_sanity_test()
257 retval = xe_map_rd(xe, &bo->vmap, XE_PAGE_SIZE * (NUM_KERNEL_PDE - 1), in xe_migrate_sanity_test()
264 xe_map_wr(xe, &pt->vmap, 0, u32, 0xdeaddead); in xe_migrate_sanity_test()
268 IS_DGFX(xe)); in xe_migrate_sanity_test()
269 run_sanity_job(m, xe, bb, 1, "Writing to our newly mapped pagetable", in xe_migrate_sanity_test()
272 retval = xe_map_rd(xe, &pt->vmap, 0, u32); in xe_migrate_sanity_test()
279 xe_map_memset(xe, &tiny->vmap, 0, 0x22, xe_bo_size(tiny)); in xe_migrate_sanity_test()
283 if (sanity_fence_failed(xe, fence, "Clearing small bo", test)) in xe_migrate_sanity_test()
287 retval = xe_map_rd(xe, &tiny->vmap, 0, u32); in xe_migrate_sanity_test()
289 retval = xe_map_rd(xe, &tiny->vmap, xe_bo_size(tiny) - 4, u32); in xe_migrate_sanity_test()
294 if (xe->info.tile_count > 1) { in xe_migrate_sanity_test()
301 xe_map_memset(xe, &big->vmap, 0, 0x11, xe_bo_size(big)); in xe_migrate_sanity_test()
305 if (sanity_fence_failed(xe, fence, "Clearing big bo", test)) in xe_migrate_sanity_test()
309 retval = xe_map_rd(xe, &big->vmap, 0, u32); in xe_migrate_sanity_test()
311 retval = xe_map_rd(xe, &big->vmap, xe_bo_size(big) - 4, u32); in xe_migrate_sanity_test()
316 if (xe->info.tile_count > 1) { in xe_migrate_sanity_test()
336 static int migrate_test_run_device(struct xe_device *xe) in migrate_test_run_device() argument
342 xe_pm_runtime_get(xe); in migrate_test_run_device()
344 for_each_tile(tile, xe, id) { in migrate_test_run_device()
353 xe_pm_runtime_put(xe); in migrate_test_run_device()
360 struct xe_device *xe = test->priv; in xe_migrate_sanity_kunit() local
362 migrate_test_run_device(xe); in xe_migrate_sanity_kunit()
371 struct xe_device *xe = gt_to_xe(gt); in blt_copy() local
399 u32 avail_pts = max_mem_transfer_per_pass(xe) / LEVEL0_PAGE_TABLE_ENCODE_SIZE; in blt_copy()
421 ((xe_device_has_flat_ccs(xe) && copy_only_ccs) ? EMIT_COPY_CCS_DW : 0); in blt_copy()
423 bb = xe_bb_new(gt, batch_size, xe->info.has_usm); in blt_copy()
453 xe_migrate_batch_base(m, xe->info.has_usm), in blt_copy()
491 static void test_migrate(struct xe_device *xe, struct xe_tile *tile, in test_migrate() argument
501 xe_map_memset(xe, &sys_bo->vmap, 0, 0xd0, xe_bo_size(sys_bo)); in test_migrate()
504 if (!sanity_fence_failed(xe, fence, "Blit copy from sysmem to vram", test)) { in test_migrate()
505 retval = xe_map_rd(xe, &vram_bo->vmap, 0, u64); in test_migrate()
524 retval = xe_map_rd(xe, &vram_bo->vmap, 0, u64); in test_migrate()
526 retval = xe_map_rd(xe, &vram_bo->vmap, xe_bo_size(vram_bo) - 8, u64); in test_migrate()
531 if (!sanity_fence_failed(xe, fence, "Clear ccs buffer data", test)) { in test_migrate()
532 retval = xe_map_rd(xe, &ccs_bo->vmap, 0, u64); in test_migrate()
535 retval = xe_map_rd(xe, &ccs_bo->vmap, xe_bo_size(ccs_bo) - 8, u64); in test_migrate()
563 retval = xe_map_rd(xe, &vram_bo->vmap, 0, u64); in test_migrate()
565 retval = xe_map_rd(xe, &vram_bo->vmap, xe_bo_size(vram_bo) - 8, u64); in test_migrate()
570 if (!sanity_fence_failed(xe, fence, "Clear ccs buffer data", test)) { in test_migrate()
571 retval = xe_map_rd(xe, &ccs_bo->vmap, 0, u64); in test_migrate()
573 retval = xe_map_rd(xe, &ccs_bo->vmap, xe_bo_size(ccs_bo) - 8, u64); in test_migrate()
579 static void test_clear(struct xe_device *xe, struct xe_tile *tile, in test_clear() argument
586 xe_map_memset(xe, &sys_bo->vmap, 0, 0xd0, xe_bo_size(sys_bo)); in test_clear()
589 if (!sanity_fence_failed(xe, fence, "Blit copy from sysmem to vram", test)) { in test_clear()
590 retval = xe_map_rd(xe, &vram_bo->vmap, 0, u64); in test_clear()
597 if (!sanity_fence_failed(xe, fence, "Blit copy from vram to sysmem", test)) { in test_clear()
598 retval = xe_map_rd(xe, &sys_bo->vmap, 0, u64); in test_clear()
600 retval = xe_map_rd(xe, &sys_bo->vmap, xe_bo_size(sys_bo) - 8, u64); in test_clear()
609 if (sanity_fence_failed(xe, fence, "Clear vram_bo", test)) in test_clear()
615 if (!sanity_fence_failed(xe, fence, "Clear main buffer data", test)) { in test_clear()
616 retval = xe_map_rd(xe, &sys_bo->vmap, 0, u64); in test_clear()
618 retval = xe_map_rd(xe, &sys_bo->vmap, xe_bo_size(sys_bo) - 8, u64); in test_clear()
625 if (!sanity_fence_failed(xe, fence, "Clear ccs buffer data", test)) { in test_clear()
626 retval = xe_map_rd(xe, &sys_bo->vmap, 0, u64); in test_clear()
628 retval = xe_map_rd(xe, &sys_bo->vmap, xe_bo_size(sys_bo) - 8, u64); in test_clear()
634 static void validate_ccs_test_run_tile(struct xe_device *xe, struct xe_tile *tile, in validate_ccs_test_run_tile() argument
641 sys_bo = xe_bo_create_user(xe, NULL, NULL, SZ_4M, in validate_ccs_test_run_tile()
667 ccs_bo = xe_bo_create_user(xe, NULL, NULL, SZ_4M, in validate_ccs_test_run_tile()
692 vram_bo = xe_bo_create_user(xe, NULL, NULL, SZ_4M, in validate_ccs_test_run_tile()
715 test_clear(xe, tile, sys_bo, vram_bo, test); in validate_ccs_test_run_tile()
716 test_migrate(xe, tile, sys_bo, vram_bo, ccs_bo, test); in validate_ccs_test_run_tile()
738 static int validate_ccs_test_run_device(struct xe_device *xe) in validate_ccs_test_run_device() argument
744 if (!xe_device_has_flat_ccs(xe)) { in validate_ccs_test_run_device()
749 if (!(GRAPHICS_VER(xe) >= 20 && IS_DGFX(xe))) { in validate_ccs_test_run_device()
754 xe_pm_runtime_get(xe); in validate_ccs_test_run_device()
756 for_each_tile(tile, xe, id) in validate_ccs_test_run_device()
757 validate_ccs_test_run_tile(xe, tile, test); in validate_ccs_test_run_device()
759 xe_pm_runtime_put(xe); in validate_ccs_test_run_device()
766 struct xe_device *xe = test->priv; in xe_validate_ccs_kunit() local
768 validate_ccs_test_run_device(xe); in xe_validate_ccs_kunit()