[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
Thu Oct 6 12:20:03 UTC 2022
From: Janga Rahul Kumar <janga.rahul.kumar at intel.com>
Add test description to all the available subtests.
Reviewed-by: 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 f24bebdb..e8d51a73 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -2848,6 +2848,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;
@@ -2908,6 +2910,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;
@@ -2969,6 +2974,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;
@@ -3129,12 +3137,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 EXEC_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) {
@@ -3145,6 +3157,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));
@@ -3155,6 +3168,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));
@@ -3166,6 +3180,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));
@@ -3177,6 +3193,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));
@@ -3188,6 +3206,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);
@@ -3207,24 +3227,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 async 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)
@@ -3250,9 +3278,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);
}
@@ -3265,33 +3295,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);
@@ -3354,12 +3398,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