[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