[igt-dev] [PATCH 1/2] tests/i915/gem_exec_fence : Add subtests description

janga.rahul.kumar at intel.com janga.rahul.kumar at intel.com
Wed Jun 29 21:00:20 UTC 2022


From: Janga Rahul Kumar <janga.rahul.kumar at intel.com>

Add test description to all the available subtests.

Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Signed-off-by: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
---
 tests/i915/gem_exec_fence.c | 47 +++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index a6499a68..503faa98 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -2807,6 +2807,8 @@ static void teardown_timeline_chain_engines(struct inter_engine_context *context
 	free(context->batches);
 }
 
+static const char *test_syncobj_timeline_chain_engines_desc =
+	"Engine chaining tests to verify ordering of timeline syncobjs through execbuf.";
 static void test_syncobj_timeline_chain_engines(int fd, const intel_ctx_cfg_t *cfg)
 {
 	struct inter_engine_context ctx;
@@ -2867,6 +2869,9 @@ static void test_syncobj_timeline_chain_engines(int fd, const intel_ctx_cfg_t *c
 	teardown_timeline_chain_engines(&ctx);
 }
 
+static const char *test_syncobj_stationary_timeline_chain_engines_desc =
+	"Engine chaining tests to verify ordering of timeline syncobj with stationary timeline"
+	" points.";
 static void test_syncobj_stationary_timeline_chain_engines(int fd, const intel_ctx_cfg_t *cfg)
 {
 	struct inter_engine_context ctx;
@@ -2928,6 +2933,9 @@ static void test_syncobj_stationary_timeline_chain_engines(int fd, const intel_c
 	teardown_timeline_chain_engines(&ctx);
 }
 
+static const char *test_syncobj_backward_timeline_chain_engines_desc =
+	"Engine chaining tests to verify ordering of timeline syncobjs with backward timeline"
+	" points.";
 static void test_syncobj_backward_timeline_chain_engines(int fd, const intel_ctx_cfg_t *cfg)
 {
 	struct inter_engine_context ctx;
@@ -3088,12 +3096,16 @@ igt_main
 								 NONBLOCK);
 				}
 			}
+			igt_describe("Check in-fence is not overwritten with out-fence on each"
+				     " engine.");
 			igt_subtest_with_dynamic("keep-in-fence") {
 				for_each_ctx_engine(i915, ctx, e) {
 					igt_dynamic_f("%s", e->name)
 						test_keep_in_fence(i915, ctx, e);
 				}
 			}
+			igt_describe("Check for EXCE_FENCE_SUBMIT in parallel execution scenarios"
+				     " on each engine.");
 			igt_subtest_with_dynamic("parallel") {
 				igt_require(has_submit_fence(i915));
 				for_each_ctx_engine(i915, ctx, e) {
@@ -3104,6 +3116,7 @@ igt_main
 				}
 			}
 
+			igt_describe("Check blocking bonded fences on each engine.");
 			igt_subtest_with_dynamic("concurrent") {
 				igt_require(has_submit_fence(i915));
 				igt_require(gem_scheduler_has_semaphores(i915));
@@ -3114,6 +3127,7 @@ igt_main
 				}
 			}
 
+			igt_describe("Check timeslicing on submit-fence.");
 			igt_subtest_with_dynamic("submit") {
 				igt_require(gem_scheduler_has_semaphores(i915));
 				igt_require(gem_scheduler_has_preemption(i915));
@@ -3125,6 +3139,8 @@ igt_main
 				}
 			}
 
+			igt_describe("Check timeslicing on submit-fence by submitting coupled"
+				     " batches.");
 			igt_subtest_with_dynamic("submit3") {
 				igt_require(gem_scheduler_has_semaphores(i915));
 				igt_require(gem_scheduler_has_preemption(i915));
@@ -3136,6 +3152,8 @@ igt_main
 				}
 			}
 
+			igt_describe("Check timeslicing on submit-fence by submitting more"
+				     " coupled batches than can possibly fit into the ELSP.");
 			igt_subtest_with_dynamic("submit67") {
 				igt_require(gem_scheduler_has_semaphores(i915));
 				igt_require(gem_scheduler_has_preemption(i915));
@@ -3147,6 +3165,8 @@ igt_main
 				}
 			}
 
+			igt_describe("Check launching a chain of spinners across all engines using"
+				     " submit-fence.");
 			igt_subtest("submit-chain") {
 				igt_require(has_submit_fence(i915));
 				test_submit_chain(i915, ctx);
@@ -3166,24 +3186,32 @@ igt_main
 				intel_allocator_multiprocess_start();
 			}
 
+			igt_describe("Check for explicit fence on each busy engine with a pending"
+				     " gpu hang.");
 			igt_subtest_with_dynamic("busy-hang") {
 				for_each_ctx_engine(i915, ctx, e) {
 					igt_dynamic_f("%s", e->name)
 						test_fence_busy(i915, ctx, e, HANG);
 				}
 			}
+			igt_describe("Check for explicit fence with additional wait time on each"
+				     " busy engine with a pending gpu hang.");
 			igt_subtest_with_dynamic("wait-hang") {
 				for_each_ctx_engine(i915, ctx, e) {
 					igt_dynamic_f("%s", e->name)
 						test_fence_busy(i915, ctx, e, HANG | WAIT);
 				}
 			}
+			igt_describe("Check for explicit fence with async wait on each engine with"
+				     " a pending gpu hang.");
 			igt_subtest_with_dynamic("await-hang") {
 				for_each_ctx_engine(i915, ctx, e) {
 					igt_dynamic_f("%s", e->name)
 						test_fence_await(i915, ctx, e, HANG);
 				}
 			}
+			igt_describe("Check for explicit fence with non-blocking wait on each"
+				     " engine with a pending gpu hang.");
 			igt_subtest_with_dynamic("nb-await-hang") {
 				for_each_ctx_engine(i915, ctx, e) {
 					igt_dynamic_f("%s", e->name)
@@ -3209,9 +3237,11 @@ igt_main
 			gem_require_contexts(i915);
 		}
 
+		igt_describe("Verifies accumulation of long history of fences.");
 		igt_subtest("long-history")
 			test_long_history(i915, ctx, ring_size, 0);
 
+		igt_describe("Verifies long history of fences are expired.");
 		igt_subtest("expired-history")
 			test_long_history(i915, ctx, ring_size, EXPIRED);
 	}
@@ -3224,33 +3254,47 @@ igt_main
 			intel_allocator_multiprocess_start();
 		}
 
+		igt_describe("Verifies invalid fence-array pointers are rejected.");
 		igt_subtest("invalid-fence-array")
 			test_invalid_fence_array(i915);
 
+		igt_describe("Verifies that a syncobj passed into execbuf but with no signal/wait"
+			     " flag is left untouched.");
 		igt_subtest("syncobj-unused-fence")
 			test_syncobj_unused_fence(i915);
 
+		igt_describe("Verifies that submitting an execbuf with a wait on a syncobj that"
+			     " doesn't exists is rejected.");
 		igt_subtest("syncobj-invalid-wait")
 			test_syncobj_invalid_wait(i915);
 
+		igt_describe("Verifies that invalid fence flags in fence-array are rejected.");
 		igt_subtest("syncobj-invalid-flags")
 			test_syncobj_invalid_flags(i915);
 
+		igt_describe("Verifies proper signaling of a fence-array syncobj through execbuf.");
 		igt_subtest("syncobj-signal")
 			test_syncobj_signal(i915);
 
+		igt_describe("Verifies that waiting on a timeline syncobj point between engines"
+			     " works.");
 		igt_subtest("syncobj-wait")
 			test_syncobj_wait(i915, ctx);
 
+		igt_describe("Verify exporting of fence-array syncobj signaled by i915.");
 		igt_subtest("syncobj-export")
 			test_syncobj_export(i915);
 
+		igt_describe("Verifies that waiting & signaling a same fence-array syncobj within"
+			     " the same execbuf works.");
 		igt_subtest("syncobj-repeat")
 			test_syncobj_repeat(i915);
 
+		igt_describe("Verifies creating of a syncobj from explicit fence.");
 		igt_subtest("syncobj-import")
 			test_syncobj_import(i915);
 
+		igt_describe("Verifies two clients racing for syncobj using channel.");
 		igt_subtest("syncobj-channel")
 			test_syncobj_channel(i915);
 
@@ -3313,12 +3357,15 @@ igt_main
 				igt_require(intel_gen(intel_get_drm_devid(i915)) >= 8);
 			}
 
+			igt_describe(test_syncobj_timeline_chain_engines_desc);
 			igt_subtest("syncobj-timeline-chain-engines")
 				test_syncobj_timeline_chain_engines(i915, &ctx->cfg);
 
+			igt_describe(test_syncobj_stationary_timeline_chain_engines_desc);
 			igt_subtest("syncobj-stationary-timeline-chain-engines")
 				test_syncobj_stationary_timeline_chain_engines(i915, &ctx->cfg);
 
+			igt_describe(test_syncobj_backward_timeline_chain_engines_desc);
 			igt_subtest("syncobj-backward-timeline-chain-engines")
 				test_syncobj_backward_timeline_chain_engines(i915, &ctx->cfg);
 		}
-- 
2.25.1



More information about the igt-dev mailing list