[PATCH i-g-t 5/6] tests/intel/xe_oa: Reduce test_non_zero_reason execution time

Umesh Nerlige Ramappa umesh.nerlige.ramappa at intel.com
Fri May 2 22:07:50 UTC 2025


On Tue, Apr 22, 2025 at 12:34:57PM -0700, Ashutosh Dixit wrote:
>Only check a single report from a random location to reduce
>test_non_zero_reason execution time.
>
>Before:
>	Starting subtest: non-zero-reason
>	Starting dynamic subtest: rcs-0
>	Dynamic subtest rcs-0: SUCCESS (11.108s)
>	Subtest non-zero-reason: SUCCESS (11.108s)
>
>With this patch:
>	Starting subtest: non-zero-reason
>	Starting dynamic subtest: rcs-0
>	Dynamic subtest rcs-0: SUCCESS (1.200s)
>	Subtest non-zero-reason: SUCCESS (1.200s)
>
>v2: Check one report at a random location (Umesh)
>
>Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>

Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>

>---
> tests/intel/xe_oa.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
>diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
>index 83495bbacf..c01adbad34 100644
>--- a/tests/intel/xe_oa.c
>+++ b/tests/intel/xe_oa.c
>@@ -2616,7 +2616,7 @@ test_non_zero_reason(const struct drm_xe_engine_class_instance *hwe, size_t oa_b
> 	uint8_t *buf = malloc(buf_size);
> 	uint32_t total_len = 0;
> 	const uint32_t *last_report;
>-	int len;
>+	int len, check_idx;
> 	u32 oa_status;
>
> 	igt_assert(buf);
>@@ -2651,6 +2651,9 @@ test_non_zero_reason(const struct drm_xe_engine_class_instance *hwe, size_t oa_b
>
> 	igt_debug("Got %u bytes\n", total_len);
>
>+	check_idx = random() % (total_len / report_size);
>+	check_idx = check_idx ?: 1;
>+
> 	last_report = NULL;
> 	for (uint32_t offset = 0; offset < total_len; offset += report_size) {
> 		const uint32_t *report = (void *) (buf + offset);
>@@ -2660,9 +2663,10 @@ test_non_zero_reason(const struct drm_xe_engine_class_instance *hwe, size_t oa_b
>
> 		/*
> 		 * Only check for default OA buffer size, since non-default
>-		 * sizes can drop reports due to buffer overrun.
>+		 * sizes can drop reports due to buffer overrun. Also, only
>+		 * check one random report to reduce test execution time.
> 		 */
>-		if (!oa_buffer_size && last_report) {
>+		if (!oa_buffer_size && last_report && (offset / report_size == check_idx)) {
> 			sanity_check_reports(last_report, report, fmt);
> 			pec_sanity_check_reports(last_report, report, metric_set(hwe));
> 		}
>-- 
>2.48.1
>


More information about the igt-dev mailing list