[igt-dev] [PATCH i-g-t v2] tests/i915/gem_ctx_exec: Skip test for RCS+CCS

priyanka.dandamudi at intel.com priyanka.dandamudi at intel.com
Wed Jan 5 10:10:22 UTC 2022


From: Priyanka Dandamudi <priyanka.dandamudi at intel.com>

The test tries to submit non-preemptible spinners to all engines,
causes a hang and expects the non-preemptible spinners to survive
but fails to do for RCS+CCS.
So, updated the code to skip nohangcheck subtest for a platform with RCS+CCS.

Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi at intel.com>
Cc: John Harrison <John.C.Harrison at Intel.com>
Cc: Melkaveri, Arjun <arjun.melkaveri at intel.com>
---
 tests/i915/gem_ctx_exec.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
index a1270a88..7b2aa390 100644
--- a/tests/i915/gem_ctx_exec.c
+++ b/tests/i915/gem_ctx_exec.c
@@ -276,6 +276,8 @@ static void nohangcheck_hostile(int i915)
 	int err = 0;
 	int dir;
 	uint64_t ahnd;
+	bool rcs0 = false;
+	bool ccs0 = false;
 
 	/*
 	 * Even if the user disables hangcheck during their context,
@@ -292,6 +294,20 @@ static void nohangcheck_hostile(int i915)
 	ahnd = get_reloc_ahnd(i915, ctx->id);
 
 	igt_require(__enable_hangcheck(dir, false));
+	/* Skips for RCS+CCS combination when nopreemption batch submitted*/
+	for_each_ctx_engine (i915, ctx, e) {
+		if (rcs0 && ccs0)
+			break;
+		else if (!rcs0) {
+			if (e->class == I915_ENGINE_CLASS_RENDER)
+				rcs0 = true;
+		}
+		else if (!ccs0) {
+			if (e->class == I915_ENGINE_CLASS_COMPUTE)
+				ccs0 = true;
+		}
+	}
+	igt_require(!(rcs0 && ccs0));
 
 	for_each_ctx_engine(i915, ctx, e) {
 		igt_spin_t *spin;
-- 
2.25.1



More information about the igt-dev mailing list