[PATCH v4 17/30] drm/xe: Delete PT update selftest
Zeng, Oak
oak.zeng at intel.com
Mon Mar 25 22:31:58 UTC 2024
Agree. Patch is reviewed-by: Oak Zeng <oak.zeng at intel.com>
> -----Original Message-----
> From: Intel-xe <intel-xe-bounces at lists.freedesktop.org> On Behalf Of Matthew
> Brost
> Sent: Friday, March 8, 2024 12:08 AM
> To: intel-xe at lists.freedesktop.org
> Cc: Brost, Matthew <matthew.brost at intel.com>
> Subject: [PATCH v4 17/30] drm/xe: Delete PT update selftest
>
> IGTs (e.g. xe_vm) can provide the exact same coverage as the PT update
> selftest. The PT update selftest is dependent on internal functions
> which can change thus maintaining this test is costly and provide no
> extra coverage. Delete this test.
>
> Signed-off-by: Matthew Brost <matthew.brost at intel.com>
> ---
> drivers/gpu/drm/xe/tests/xe_migrate.c | 86 ---------------------------
> 1 file changed, 86 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c
> b/drivers/gpu/drm/xe/tests/xe_migrate.c
> index ce531498f57f..de2c1b7ec371 100644
> --- a/drivers/gpu/drm/xe/tests/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
> @@ -62,36 +62,6 @@ static int run_sanity_job(struct xe_migrate *m, struct
> xe_device *xe,
> return 0;
> }
>
> -static void
> -sanity_populate_cb(struct xe_migrate_pt_update *pt_update,
> - struct xe_tile *tile, struct iosys_map *map, void *dst,
> - u32 qword_ofs, u32 num_qwords,
> - const struct xe_vm_pgtable_update *update)
> -{
> - struct migrate_test_params *p =
> -
> to_migrate_test_params(xe_cur_kunit_priv(XE_TEST_LIVE_MIGRATE));
> - int i;
> - u64 *ptr = dst;
> - u64 value;
> -
> - for (i = 0; i < num_qwords; i++) {
> - value = (qword_ofs + i - update->ofs) * 0x1111111111111111ULL;
> - if (map)
> - xe_map_wr(tile_to_xe(tile), map, (qword_ofs + i) *
> - sizeof(u64), u64, value);
> - else
> - ptr[i] = value;
> - }
> -
> - kunit_info(xe_cur_kunit(), "Used %s.\n", map ? "CPU" : "GPU");
> - if (p->force_gpu && map)
> - KUNIT_FAIL(xe_cur_kunit(), "GPU pagetable update used
> CPU.\n");
> -}
> -
> -static const struct xe_migrate_pt_update_ops sanity_ops = {
> - .populate = sanity_populate_cb,
> -};
> -
> #define check(_retval, _expected, str, _test) \
> do { if ((_retval) != (_expected)) { \
> KUNIT_FAIL(_test, "Sanity check failed: " str \
> @@ -209,57 +179,6 @@ static void test_copy_vram(struct xe_migrate *m, struct
> xe_bo *bo,
> test_copy(m, bo, test, region);
> }
>
> -static void test_pt_update(struct xe_migrate *m, struct xe_bo *pt,
> - struct kunit *test, bool force_gpu)
> -{
> - struct xe_device *xe = tile_to_xe(m->tile);
> - struct dma_fence *fence;
> - u64 retval, expected;
> - ktime_t then, now;
> - int i;
> -
> - struct xe_vm_pgtable_update update = {
> - .ofs = 1,
> - .qwords = 0x10,
> - .pt_bo = pt,
> - };
> - struct xe_migrate_pt_update pt_update = {
> - .ops = &sanity_ops,
> - };
> - struct migrate_test_params p = {
> - .base.id = XE_TEST_LIVE_MIGRATE,
> - .force_gpu = force_gpu,
> - };
> -
> - test->priv = &p;
> - /* Test xe_migrate_update_pgtables() updates the pagetable as
> expected */
> - expected = 0xf0f0f0f0f0f0f0f0ULL;
> - xe_map_memset(xe, &pt->vmap, 0, (u8)expected, pt->size);
> -
> - then = ktime_get();
> - fence = xe_migrate_update_pgtables(m, m->q->vm, NULL, m->q,
> &update, 1,
> - NULL, 0, &pt_update);
> - now = ktime_get();
> - if (sanity_fence_failed(xe, fence, "Migration pagetable update", test))
> - return;
> -
> - kunit_info(test, "Updating without syncing took %llu us,\n",
> - (unsigned long long)ktime_to_us(ktime_sub(now, then)));
> -
> - dma_fence_put(fence);
> - retval = xe_map_rd(xe, &pt->vmap, 0, u64);
> - check(retval, expected, "PTE[0] must stay untouched", test);
> -
> - for (i = 0; i < update.qwords; i++) {
> - retval = xe_map_rd(xe, &pt->vmap, (update.ofs + i) * 8, u64);
> - check(retval, i * 0x1111111111111111ULL, "PTE update", test);
> - }
> -
> - retval = xe_map_rd(xe, &pt->vmap, 8 * (update.ofs + update.qwords),
> - u64);
> - check(retval, expected, "PTE[0x11] must stay untouched", test);
> -}
> -
> static void xe_migrate_sanity_test(struct xe_migrate *m, struct kunit *test)
> {
> struct xe_tile *tile = m->tile;
> @@ -398,11 +317,6 @@ static void xe_migrate_sanity_test(struct xe_migrate *m,
> struct kunit *test)
> test_copy_vram(m, big, test);
> }
>
> - kunit_info(test, "Testing page table update using CPU if GPU idle.\n");
> - test_pt_update(m, pt, test, false);
> - kunit_info(test, "Testing page table update using GPU\n");
> - test_pt_update(m, pt, test, true);
> -
> out:
> xe_bb_free(bb, NULL);
> free_tiny:
> --
> 2.34.1
More information about the Intel-xe
mailing list