[PATCH i-g-t] drm/xe: Add mocs reset kunit

Kumar, Janga Rahul janga.rahul.kumar at intel.com
Fri Dec 22 01:56:29 UTC 2023


DO NOT Review this patch. Invalid subject tag has been added. Pls ignore.


Thanks,
Rahul

> -----Original Message-----
> From: Kumar, Janga Rahul <janga.rahul.kumar at intel.com>
> Sent: Friday, December 22, 2023 7:21 AM
> To: intel-xe at lists.freedesktop.org; Kumar, Janga Rahul
> <janga.rahul.kumar at intel.com>; Gandi, Ramadevi <ramadevi.gandi at intel.com>
> Cc: Roper, Matthew D <matthew.d.roper at intel.com>
> Subject: [PATCH i-g-t] drm/xe: Add mocs reset kunit
> 
> From: Ruthuvikas Ravikumar <ruthuvikas.ravikumar at intel.com>
> 
> This kunit verifies the mocs registers content with the KMD programmed values
> before and after GT reset.
> 
> Cc: Mathew D Roper <matthew.d.roper at intel.com>
> Signed-off-by: Ruthuvikas Ravikumar <ruthuvikas.ravikumar at intel.com>
> Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
> ---
>  drivers/gpu/drm/xe/tests/xe_mocs.c      | 38 +++++++++++++++++++++++++
>  drivers/gpu/drm/xe/tests/xe_mocs_test.c |  1 +
> drivers/gpu/drm/xe/tests/xe_mocs_test.h |  1 +
>  3 files changed, 40 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/tests/xe_mocs.c
> b/drivers/gpu/drm/xe/tests/xe_mocs.c
> index 7dd34f94e809..98dd63031c5c 100644
> --- a/drivers/gpu/drm/xe/tests/xe_mocs.c
> +++ b/drivers/gpu/drm/xe/tests/xe_mocs.c
> @@ -128,3 +128,41 @@ void xe_live_mocs_kernel_kunit(struct kunit *test)
>  	xe_call_for_each_device(mocs_kernel_test_run_device);
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_live_mocs_kernel_kunit);
> +
> +static int mocs_reset_test_run_device(struct xe_device *xe) {
> +	/* Check the mocs setup is retained over GT reset */
> +
> +	struct live_mocs mocs;
> +	struct xe_gt *gt;
> +
> +	unsigned int flags;
> +	int id;
> +
> +	struct kunit *test = xe_cur_kunit();
> +
> +	for_each_gt(gt, xe, id) {
> +		flags = live_mocs_init(&mocs, gt);
> +		kunit_info(test, "mocs_reset_test before reset\n");
> +		if (flags & HAS_GLOBAL_MOCS)
> +			read_mocs_table(gt, &mocs.table);
> +		if (flags & HAS_LNCF_MOCS)
> +			read_l3cc_table(gt, &mocs.table);
> +
> +		xe_gt_reset_async(gt);
> +		flush_work(&gt->reset.worker);
> +
> +		kunit_info(test, "mocs_reset_test after reset\n");
> +		if (flags & HAS_GLOBAL_MOCS)
> +			read_mocs_table(gt, &mocs.table);
> +		if (flags & HAS_LNCF_MOCS)
> +			read_l3cc_table(gt, &mocs.table);
> +	}
> +	return 0;
> +}
> +
> +void xe_live_mocs_reset_kunit(struct kunit *test) {
> +	xe_call_for_each_device(mocs_reset_test_run_device);
> +}
> +EXPORT_SYMBOL_IF_KUNIT(xe_live_mocs_reset_kunit);
> diff --git a/drivers/gpu/drm/xe/tests/xe_mocs_test.c
> b/drivers/gpu/drm/xe/tests/xe_mocs_test.c
> index ef56bd517b28..4f62e7a4270b 100644
> --- a/drivers/gpu/drm/xe/tests/xe_mocs_test.c
> +++ b/drivers/gpu/drm/xe/tests/xe_mocs_test.c
> @@ -9,6 +9,7 @@
> 
>  static struct kunit_case xe_mocs_tests[] = {
>  	KUNIT_CASE(xe_live_mocs_kernel_kunit),
> +	KUNIT_CASE(xe_live_mocs_reset_kunit),
>  	{}
>  };
> 
> diff --git a/drivers/gpu/drm/xe/tests/xe_mocs_test.h
> b/drivers/gpu/drm/xe/tests/xe_mocs_test.h
> index 7faa3575e6c3..e7699d495411 100644
> --- a/drivers/gpu/drm/xe/tests/xe_mocs_test.h
> +++ b/drivers/gpu/drm/xe/tests/xe_mocs_test.h
> @@ -9,5 +9,6 @@
>  struct kunit;
> 
>  void xe_live_mocs_kernel_kunit(struct kunit *test);
> +void xe_live_mocs_reset_kunit(struct kunit *test);
> 
>  #endif
> --
> 2.25.1



More information about the Intel-xe mailing list