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

Kamil Konieczny kamil.konieczny at linux.intel.com
Tue Aug 30 15:01:11 UTC 2022


Hi Janga,

On 2022-06-30 at 02:30:20 +0530, janga.rahul.kumar at intel.com wrote:
> 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"
----------------------------------------------- ^
s/EXCE/EXEC/

> +				     " 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"
------------------------------------------------------------------------------- ^
insert async here, s/wait/async wait/

With that fixed you can add my r-b tag.

--
Kamil

> +				     " 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