* [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync @ 2022-06-27 11:07 sai.gowtham.ch 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-27 11:07 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Add test description to gem_sync. Sai Gowtham Ch (2): tests/i915/gem_sync: Added test description for test case. HAX: don't do full run tests/i915/gem_sync.c | 92 +++++++++---- tests/intel-ci/fast-feedback.testlist | 178 +------------------------- 2 files changed, 70 insertions(+), 200 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case. 2022-06-27 11:07 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch @ 2022-06-27 11:08 ` sai.gowtham.ch 2022-06-27 18:00 ` Kamil Konieczny 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 2/2] HAX: don't do full run sai.gowtham.ch 2022-06-27 13:54 ` [igt-dev] ✗ Fi.CI.BAT: failure for HAX add description to gem_sync Patchwork 2 siblings, 1 reply; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-27 11:08 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Added test description for test and to all the subtests that are available. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> --- tests/i915/gem_sync.c | 92 ++++++++++++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 23 deletions(-) diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c index 8c435845..8c9ad641 100644 --- a/tests/i915/gem_sync.c +++ b/tests/i915/gem_sync.c @@ -1208,32 +1208,60 @@ igt_main int num_children, int timeout); int num_children; int timeout; + const char *describe; } all[] = { - { "basic-each", sync_ring, 1, 2 }, - { "basic-store-each", store_ring, 1, 2 }, - { "basic-many-each", store_many, 0, 2 }, - { "switch-each", switch_ring, 1, 20 }, - { "forked-switch-each", switch_ring, ncpus, 20 }, - { "forked-each", sync_ring, ncpus, 20 }, - { "forked-store-each", store_ring, ncpus, 20 }, - { "active-each", active_ring, 0, 20 }, - { "wakeup-each", wakeup_ring, 20, 1 }, - { "active-wakeup-each", active_wakeup_ring, 20, 1 }, - { "double-wakeup-each", wakeup_ring, 20, 2 }, + { "basic-each", sync_ring, 1, 2, + "Check synchronisation of ring."}, + { "basic-store-each", store_ring, 1, 2, + "Check that store synchronisation works."}, + { "basic-many-each", store_many, 0, 2, + "Try and create race condition see if we" + " can catch interrupts."}, + { "switch-each", switch_ring, 1, 20, + "Check sync after context switch."}, + { "forked-switch-each", switch_ring, ncpus, 20, + "Check sync after context switch parallelly."}, + { "forked-each", sync_ring, ncpus, 20, + "Forked varient of sync_ring, which checks synchronisation" + " of ring with parallel executions."}, + { "forked-store-each", store_ring, ncpus, 20, + "Forked varient of store_ring, check parallel store" + " synchronisation works."}, + { "active-each", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy."}, + { "wakeup-each", wakeup_ring, 20, 1, + "Check Alternate stress for nop+sync."}, + { "active-wakeup-each", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch."}, + { "double-wakeup-each", wakeup_ring, 20, 2, + "Stress test for nop+sync"}, {} }, individual[] = { - { "default", sync_ring, 1, 20 }, - { "idle", idle_ring, 0, 20 }, - { "active", active_ring, 0, 20 }, - { "wakeup", wakeup_ring, 20, 1 }, - { "active-wakeup", active_wakeup_ring, 20, 1 }, - { "double-wakeup", wakeup_ring, 20, 2 }, - { "store", store_ring, 1, 20 }, - { "switch", switch_ring, 1, 20 }, - { "forked-switch", switch_ring, ncpus, 20 }, - { "many", store_many, 0, 20 }, - { "forked", sync_ring, ncpus, 20 }, - { "forked-store", store_ring, ncpus, 20 }, + { "default", sync_ring, 1, 20, + "Check synchronisation of rings for each engine."}, + { "idle", idle_ring, 0, 20, + "Exercise and measure idle requests."}, + { "active", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy."}, + { "wakeup", wakeup_ring, 20, 1, + "Check Alternate stress for nop+sync."}, + { "active-wakeup", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch."}, + { "double-wakeup", wakeup_ring, 20, 2, + "Stress test for nop + sync"}, + { "store", store_ring, 1, 20, + "Check that store synchronisation works."}, + { "switch", switch_ring, 1, 20, + "Check sync after context switch."}, + { "forked-switch", switch_ring, ncpus, 20, + "Check sync after context switch parallelly."}, + { "many", store_many, 0, 20, + "Try and create race condition and see if we catch interrupts."}, + { "forked", sync_ring, ncpus, 20, + "Check synchronisation of ring with parallel executions."}, + { "forked-store", store_ring, ncpus, 20, + "Check store synchronisation works with parallel multiple" + " executions."}, {} }; #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++) @@ -1255,6 +1283,7 @@ igt_main /* Legacy for selecting rings. */ for_each_test(t, individual) { + igt_describe_f("For each legacy engine %s", t->describe); igt_subtest_with_dynamic_f("legacy-%s", t->name) { for (const struct intel_execution_ring *l = intel_execution_rings; l->name; l++) { igt_dynamic_f("%s", l->name) { @@ -1265,27 +1294,38 @@ igt_main } } + igt_describe("Basic test to wait upon a batch on all rings."); igt_subtest("basic-all") sync_all(fd, ctx, 1, 2); + + igt_describe("Extended version of store synchronisation test."); igt_subtest("basic-store-all") store_all(fd, ctx, 1, 2); + igt_describe("Extended version of existing basic-all test."); igt_subtest("all") sync_all(fd, ctx, 1, 20); + igt_describe("Extended version of existing basic-store-all test."); igt_subtest("store-all") store_all(fd, ctx, 1, 20); + + igt_describe("Parallel execution of batch on all rings and then wait."); igt_subtest("forked-all") sync_all(fd, ctx, ncpus, 20); + + igt_describe("Parallel execution of store synchronisation."); igt_subtest("forked-store-all") store_all(fd, ctx, ncpus, 20); for_each_test(t, all) { + igt_describe(t->describe); igt_subtest_f("%s", t->name) t->func(fd, ctx, ALL_ENGINES, t->num_children, t->timeout); } /* New way of selecting engines. */ for_each_test(t, individual) { + igt_describe_f("For each engine %s", t->describe); igt_subtest_with_dynamic_f("%s", t->name) { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) { @@ -1303,8 +1343,14 @@ igt_main igt_require(gem_scheduler_has_preemption(fd)); } + igt_describe("Check and measure how well we can submit a second" + " high priority task when the engine is already" + " busy with a low priority task on all engines."); igt_subtest("preempt-all") preempt(fd, ctx, ALL_ENGINES, 1, 20); + + igt_describe("For each context engine check how priority of task are" + " submitted when engine is already busy."); igt_subtest_with_dynamic("preempt") { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) -- 2.35.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case. 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch @ 2022-06-27 18:00 ` Kamil Konieczny 0 siblings, 0 replies; 10+ messages in thread From: Kamil Konieczny @ 2022-06-27 18:00 UTC (permalink / raw) To: igt-dev; +Cc: Sai Gowtham Ch Hi Sai, On 2022-06-27 at 16:38:00 +0530, sai.gowtham.ch@intel.com wrote: > From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> > > Added test description for test and to all the subtests that are > available. > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> > --- > tests/i915/gem_sync.c | 92 ++++++++++++++++++++++++++++++++----------- > 1 file changed, 69 insertions(+), 23 deletions(-) > > diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c > index 8c435845..8c9ad641 100644 > --- a/tests/i915/gem_sync.c > +++ b/tests/i915/gem_sync.c > @@ -1208,32 +1208,60 @@ igt_main > int num_children, int timeout); > int num_children; > int timeout; > + const char *describe; > } all[] = { > - { "basic-each", sync_ring, 1, 2 }, > - { "basic-store-each", store_ring, 1, 2 }, > - { "basic-many-each", store_many, 0, 2 }, > - { "switch-each", switch_ring, 1, 20 }, > - { "forked-switch-each", switch_ring, ncpus, 20 }, > - { "forked-each", sync_ring, ncpus, 20 }, > - { "forked-store-each", store_ring, ncpus, 20 }, > - { "active-each", active_ring, 0, 20 }, > - { "wakeup-each", wakeup_ring, 20, 1 }, > - { "active-wakeup-each", active_wakeup_ring, 20, 1 }, > - { "double-wakeup-each", wakeup_ring, 20, 2 }, > + { "basic-each", sync_ring, 1, 2, > + "Check synchronisation of ring."}, ------------------------------------------------------^ ^ Add space before '}' and remove dot (do it also on all following lines). You may add dot later in igt_describe_f(). > + { "basic-store-each", store_ring, 1, 2, > + "Check that store synchronisation works."}, > + { "basic-many-each", store_many, 0, 2, > + "Try and create race condition see if we" s/see/and see/ > + " can catch interrupts."}, > + { "switch-each", switch_ring, 1, 20, > + "Check sync after context switch."}, > + { "forked-switch-each", switch_ring, ncpus, 20, > + "Check sync after context switch parallelly."}, > + { "forked-each", sync_ring, ncpus, 20, > + "Forked varient of sync_ring, which checks synchronisation" ------------------------------------^ s/varient/variant/ > + " of ring with parallel executions."}, > + { "forked-store-each", store_ring, ncpus, 20, > + "Forked varient of store_ring, check parallel store" ------------------------------------^ s/varient/variant/ s/check/check if/ > + " synchronisation works."}, > + { "active-each", active_ring, 0, 20, > + "Exercise waiting while keeping the GPU busy."}, > + { "wakeup-each", wakeup_ring, 20, 1, > + "Check Alternate stress for nop+sync."}, ------------------------ ^ s/Check// Also, s/nop+sync/nop + sync/ > + { "active-wakeup-each", active_wakeup_ring, 20, 1, > + "Measure wakeup latency while also scheduling the next batch."}, > + { "double-wakeup-each", wakeup_ring, 20, 2, > + "Stress test for nop+sync"}, What about moving this to wakeup-each, and change description here into "Double stress test for nop + sync" ? > {} > }, individual[] = { > - { "default", sync_ring, 1, 20 }, > - { "idle", idle_ring, 0, 20 }, > - { "active", active_ring, 0, 20 }, > - { "wakeup", wakeup_ring, 20, 1 }, > - { "active-wakeup", active_wakeup_ring, 20, 1 }, > - { "double-wakeup", wakeup_ring, 20, 2 }, > - { "store", store_ring, 1, 20 }, > - { "switch", switch_ring, 1, 20 }, > - { "forked-switch", switch_ring, ncpus, 20 }, > - { "many", store_many, 0, 20 }, > - { "forked", sync_ring, ncpus, 20 }, > - { "forked-store", store_ring, ncpus, 20 }, > + { "default", sync_ring, 1, 20, > + "Check synchronisation of rings for each engine."}, > + { "idle", idle_ring, 0, 20, > + "Exercise and measure idle requests."}, > + { "active", active_ring, 0, 20, > + "Exercise waiting while keeping the GPU busy."}, > + { "wakeup", wakeup_ring, 20, 1, ---------------------------------------------- ^ Remove trailing space. Please use checkpatch, it can help catch such errors. > + "Check Alternate stress for nop+sync."}, > + { "active-wakeup", active_wakeup_ring, 20, 1, > + "Measure wakeup latency while also scheduling the next batch."}, > + { "double-wakeup", wakeup_ring, 20, 2, > + "Stress test for nop + sync"}, > + { "store", store_ring, 1, 20, > + "Check that store synchronisation works."}, > + { "switch", switch_ring, 1, 20, > + "Check sync after context switch."}, > + { "forked-switch", switch_ring, ncpus, 20, > + "Check sync after context switch parallelly."}, > + { "many", store_many, 0, 20, > + "Try and create race condition and see if we catch interrupts."}, > + { "forked", sync_ring, ncpus, 20, ------------------------------------------------ ^ Remove trailing space. > + "Check synchronisation of ring with parallel executions."}, > + { "forked-store", store_ring, ncpus, 20, > + "Check store synchronisation works with parallel multiple" > + " executions."}, > {} > }; > #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++) > @@ -1255,6 +1283,7 @@ igt_main > > /* Legacy for selecting rings. */ > for_each_test(t, individual) { > + igt_describe_f("For each legacy engine %s", t->describe); ------------------------------- ^ Put that after description, like: "%s for legacy engines." > igt_subtest_with_dynamic_f("legacy-%s", t->name) { > for (const struct intel_execution_ring *l = intel_execution_rings; l->name; l++) { > igt_dynamic_f("%s", l->name) { > @@ -1265,27 +1294,38 @@ igt_main > } > } > > + igt_describe("Basic test to wait upon a batch on all rings."); > igt_subtest("basic-all") > sync_all(fd, ctx, 1, 2); > + > + igt_describe("Extended version of store synchronisation test."); > igt_subtest("basic-store-all") > store_all(fd, ctx, 1, 2); > > + igt_describe("Extended version of existing basic-all test."); > igt_subtest("all") > sync_all(fd, ctx, 1, 20); > + igt_describe("Extended version of existing basic-store-all test."); > igt_subtest("store-all") > store_all(fd, ctx, 1, 20); > + > + igt_describe("Parallel execution of batch on all rings and then wait."); > igt_subtest("forked-all") > sync_all(fd, ctx, ncpus, 20); > + > + igt_describe("Parallel execution of store synchronisation."); > igt_subtest("forked-store-all") > store_all(fd, ctx, ncpus, 20); > > for_each_test(t, all) { > + igt_describe(t->describe); Here use igt_describe_f() and add dot at end. > igt_subtest_f("%s", t->name) > t->func(fd, ctx, ALL_ENGINES, t->num_children, t->timeout); > } > > /* New way of selecting engines. */ > for_each_test(t, individual) { > + igt_describe_f("For each engine %s", t->describe); ------------------------------- ^ --------------- ^ Drop this and add dot, you can use "%s." or "%s on each engine." (see which one fits better). Regards, Kamil > igt_subtest_with_dynamic_f("%s", t->name) { > for_each_ctx_engine(fd, ctx, e) { > igt_dynamic_f("%s", e->name) { > @@ -1303,8 +1343,14 @@ igt_main > igt_require(gem_scheduler_has_preemption(fd)); > } > > + igt_describe("Check and measure how well we can submit a second" > + " high priority task when the engine is already" > + " busy with a low priority task on all engines."); > igt_subtest("preempt-all") > preempt(fd, ctx, ALL_ENGINES, 1, 20); > + > + igt_describe("For each context engine check how priority of task are" > + " submitted when engine is already busy."); > igt_subtest_with_dynamic("preempt") { > for_each_ctx_engine(fd, ctx, e) { > igt_dynamic_f("%s", e->name) > -- > 2.35.1 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] HAX: don't do full run 2022-06-27 11:07 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch @ 2022-06-27 11:08 ` sai.gowtham.ch 2022-06-27 13:54 ` [igt-dev] ✗ Fi.CI.BAT: failure for HAX add description to gem_sync Patchwork 2 siblings, 0 replies; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-27 11:08 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Just for test description, no full run is necessary. Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> --- tests/intel-ci/fast-feedback.testlist | 178 +------------------------- 1 file changed, 1 insertion(+), 177 deletions(-) diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist index bd5538a0..9f8e18ce 100644 --- a/tests/intel-ci/fast-feedback.testlist +++ b/tests/intel-ci/fast-feedback.testlist @@ -1,177 +1 @@ -# Try to load the driver if it's not available yet. -igt@i915_module_load@load - -# Keep alphabetically sorted by default -igt@core_auth@basic-auth -igt@debugfs_test@read_all_entries -igt@fbdev@eof -igt@fbdev@info -igt@fbdev@nullptr -igt@fbdev@read -igt@fbdev@write -igt@gem_basic@bad-close -igt@gem_basic@create-close -igt@gem_basic@create-fd-close -igt@gem_busy@busy@all -igt@gem_close_race@basic-process -igt@gem_close_race@basic-threads -igt@gem_ctx_create@basic -igt@gem_ctx_create@basic-files -igt@gem_ctx_exec@basic -igt@gem_exec_basic@basic -igt@gem_exec_create@basic -igt@gem_exec_fence@basic-busy -igt@gem_exec_fence@basic-wait -igt@gem_exec_fence@basic-await -igt@gem_exec_fence@nb-await -igt@gem_exec_gttfill@basic -igt@gem_exec_parallel@engines -igt@gem_exec_store@basic -igt@gem_flink_basic@bad-flink -igt@gem_flink_basic@bad-open -igt@gem_flink_basic@basic -igt@gem_flink_basic@double-flink -igt@gem_flink_basic@flink-lifetime -igt@gem_huc_copy@huc-copy -igt@gem_linear_blits@basic -igt@gem_mmap@basic -igt@gem_mmap_gtt@basic -igt@gem_render_linear_blits@basic -igt@gem_render_tiled_blits@basic -igt@gem_ringfill@basic-all -igt@gem_softpin@allocator-basic -igt@gem_softpin@allocator-basic-reserve -igt@gem_softpin@safe-alignment -igt@gem_sync@basic-all -igt@gem_sync@basic-each -igt@gem_tiled_blits@basic -igt@gem_tiled_fence_blits@basic -igt@gem_tiled_pread_basic -igt@gem_wait@busy@all -igt@gem_wait@wait@all -igt@i915_getparams_basic@basic-eu-total -igt@i915_getparams_basic@basic-subslice-total -igt@i915_hangman@error-state-basic -igt@i915_pciid -igt@kms_addfb_basic@addfb25-bad-modifier -igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling -igt@kms_addfb_basic@addfb25-modifier-no-flag -igt@kms_addfb_basic@addfb25-x-tiled-legacy -igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy -igt@kms_addfb_basic@addfb25-yf-tiled-legacy -igt@kms_addfb_basic@addfb25-y-tiled-legacy -igt@kms_addfb_basic@addfb25-y-tiled-small-legacy -igt@kms_addfb_basic@bad-pitch-0 -igt@kms_addfb_basic@bad-pitch-1024 -igt@kms_addfb_basic@bad-pitch-128 -igt@kms_addfb_basic@bad-pitch-256 -igt@kms_addfb_basic@bad-pitch-32 -igt@kms_addfb_basic@bad-pitch-63 -igt@kms_addfb_basic@bad-pitch-65536 -igt@kms_addfb_basic@bad-pitch-999 -igt@kms_addfb_basic@basic -igt@kms_addfb_basic@basic-x-tiled-legacy -igt@kms_addfb_basic@basic-y-tiled-legacy -igt@kms_addfb_basic@bo-too-small -igt@kms_addfb_basic@bo-too-small-due-to-tiling -igt@kms_addfb_basic@clobberred-modifier -igt@kms_addfb_basic@framebuffer-vs-set-tiling -igt@kms_addfb_basic@invalid-get-prop -igt@kms_addfb_basic@invalid-get-prop-any -igt@kms_addfb_basic@invalid-set-prop -igt@kms_addfb_basic@invalid-set-prop-any -igt@kms_addfb_basic@no-handle -igt@kms_addfb_basic@size-max -igt@kms_addfb_basic@small-bo -igt@kms_addfb_basic@tile-pitch-mismatch -igt@kms_addfb_basic@too-high -igt@kms_addfb_basic@too-wide -igt@kms_addfb_basic@unused-handle -igt@kms_addfb_basic@unused-modifier -igt@kms_addfb_basic@unused-offsets -igt@kms_addfb_basic@unused-pitches -igt@kms_busy@basic -igt@kms_chamelium@dp-hpd-fast -igt@kms_chamelium@dp-edid-read -igt@kms_chamelium@dp-crc-fast -igt@kms_chamelium@hdmi-hpd-fast -igt@kms_chamelium@hdmi-edid-read -igt@kms_chamelium@hdmi-crc-fast -igt@kms_chamelium@vga-hpd-fast -igt@kms_chamelium@vga-edid-read -igt@kms_prop_blob@basic -igt@kms_cursor_legacy@basic-busy-flip-before-cursor -igt@kms_cursor_legacy@basic-flip-after-cursor -igt@kms_cursor_legacy@basic-flip-before-cursor -igt@kms_flip@basic-flip-vs-dpms -igt@kms_flip@basic-flip-vs-modeset -igt@kms_flip@basic-flip-vs-wf_vblank -igt@kms_flip@basic-plain-flip -igt@kms_force_connector_basic@force-connector-state -igt@kms_force_connector_basic@force-edid -igt@kms_force_connector_basic@force-load-detect -igt@kms_force_connector_basic@prune-stale-modes -igt@kms_frontbuffer_tracking@basic -igt@kms_pipe_crc_basic@compare-crc-sanitycheck -igt@kms_pipe_crc_basic@hang-read-crc -igt@kms_pipe_crc_basic@nonblocking-crc -igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence -igt@kms_pipe_crc_basic@read-crc -igt@kms_pipe_crc_basic@read-crc-frame-sequence -igt@kms_psr@primary_page_flip -igt@kms_psr@cursor_plane_move -igt@kms_psr@sprite_plane_onoff -igt@kms_psr@primary_mmap_gtt -igt@kms_setmode@basic-clone-single-crtc -igt@i915_pm_backlight@basic-brightness -igt@i915_pm_rpm@basic-pci-d3-state -igt@i915_pm_rpm@basic-rte -igt@i915_pm_rps@basic-api -igt@prime_self_import@basic-llseek-bad -igt@prime_self_import@basic-llseek-size -igt@prime_self_import@basic-with_fd_dup -igt@prime_self_import@basic-with_one_bo -igt@prime_self_import@basic-with_one_bo_two_files -igt@prime_self_import@basic-with_two_bos -igt@prime_vgem@basic-fence-flip -igt@prime_vgem@basic-fence-mmap -igt@prime_vgem@basic-fence-read -igt@prime_vgem@basic-gtt -igt@prime_vgem@basic-read -igt@prime_vgem@basic-write -igt@prime_vgem@basic-userptr -igt@vgem_basic@setversion -igt@vgem_basic@create -igt@vgem_basic@debugfs -igt@vgem_basic@dmabuf-export -igt@vgem_basic@dmabuf-fence -igt@vgem_basic@dmabuf-fence-before -igt@vgem_basic@dmabuf-mmap -igt@vgem_basic@mmap -igt@vgem_basic@second-client -igt@vgem_basic@sysfs - -# All tests that do module unloading and reloading are executed last. -# They will sometimes reveal issues of earlier tests leaving the -# driver in a broken state that is not otherwise noticed in that test. - -igt@core_hotunplug@unbind-rebind -igt@vgem_basic@unload -igt@i915_module_load@reload -igt@gem_lmem_swapping@basic -igt@gem_lmem_swapping@parallel-random-engines -igt@gem_lmem_swapping@random-engines -igt@gem_lmem_swapping@verify-random -igt@i915_pm_rpm@module-reload - -# Kernel selftests -igt@i915_selftest@live -igt@dmabuf@all - -# System wide suspend tests -igt@i915_suspend@basic-s2idle-without-i915 -igt@i915_suspend@basic-s3-without-i915 -igt@gem_exec_suspend@basic-s0 -igt@gem_exec_suspend@basic-s3 -igt@kms_chamelium@common-hpd-after-suspend -igt@kms_pipe_crc_basic@suspend-read-crc +igt@meta_test@fail-result -- 2.35.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for HAX add description to gem_sync 2022-06-27 11:07 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 2/2] HAX: don't do full run sai.gowtham.ch @ 2022-06-27 13:54 ` Patchwork 2 siblings, 0 replies; 10+ messages in thread From: Patchwork @ 2022-06-27 13:54 UTC (permalink / raw) To: sai.gowtham.ch; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 8172 bytes --] == Series Details == Series: HAX add description to gem_sync URL : https://patchwork.freedesktop.org/series/105661/ State : failure == Summary == CI Bug Log - changes from CI_DRM_11810 -> IGTPW_7396 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_7396 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_7396, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/index.html Participating hosts (43 -> 42) ------------------------------ Missing (1): fi-bdw-samus Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_7396: ### IGT changes ### #### Possible regressions #### * igt@meta_test@fail-result (NEW): - fi-ilk-650: NOTRUN -> [FAIL][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-ilk-650/igt@meta_test@fail-result.html - fi-tgl-u2: NOTRUN -> [FAIL][2] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-tgl-u2/igt@meta_test@fail-result.html - {bat-jsl-1}: NOTRUN -> [FAIL][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-jsl-1/igt@meta_test@fail-result.html - fi-bxt-dsi: NOTRUN -> [FAIL][4] [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-bxt-dsi/igt@meta_test@fail-result.html - {fi-jsl-1}: NOTRUN -> [FAIL][5] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-jsl-1/igt@meta_test@fail-result.html - fi-blb-e6850: NOTRUN -> [FAIL][6] [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-blb-e6850/igt@meta_test@fail-result.html - {bat-adlp-6}: NOTRUN -> [FAIL][7] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-adlp-6/igt@meta_test@fail-result.html - fi-skl-6600u: NOTRUN -> [FAIL][8] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-skl-6600u/igt@meta_test@fail-result.html - fi-glk-dsi: NOTRUN -> [FAIL][9] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-glk-dsi/igt@meta_test@fail-result.html - {fi-ehl-2}: NOTRUN -> [FAIL][10] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-ehl-2/igt@meta_test@fail-result.html - fi-icl-u2: NOTRUN -> [FAIL][11] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-icl-u2/igt@meta_test@fail-result.html - fi-apl-guc: NOTRUN -> [FAIL][12] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-apl-guc/igt@meta_test@fail-result.html - bat-dg1-5: NOTRUN -> [FAIL][13] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-dg1-5/igt@meta_test@fail-result.html - fi-pnv-d510: NOTRUN -> [FAIL][14] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-pnv-d510/igt@meta_test@fail-result.html - fi-bdw-5557u: NOTRUN -> [FAIL][15] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-bdw-5557u/igt@meta_test@fail-result.html - fi-snb-2520m: NOTRUN -> [FAIL][16] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-snb-2520m/igt@meta_test@fail-result.html - fi-glk-j4005: NOTRUN -> [FAIL][17] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-glk-j4005/igt@meta_test@fail-result.html - fi-rkl-guc: NOTRUN -> [FAIL][18] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-rkl-guc/igt@meta_test@fail-result.html - fi-skl-guc: NOTRUN -> [FAIL][19] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-skl-guc/igt@meta_test@fail-result.html - fi-kbl-soraka: NOTRUN -> [FAIL][20] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-kbl-soraka/igt@meta_test@fail-result.html - bat-dg1-6: NOTRUN -> [FAIL][21] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-dg1-6/igt@meta_test@fail-result.html - fi-kbl-7567u: NOTRUN -> [FAIL][22] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-kbl-7567u/igt@meta_test@fail-result.html - fi-cfl-8700k: NOTRUN -> [FAIL][23] [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-cfl-8700k/igt@meta_test@fail-result.html - {fi-tgl-dsi}: NOTRUN -> [FAIL][24] [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-tgl-dsi/igt@meta_test@fail-result.html - fi-bsw-nick: NOTRUN -> [FAIL][25] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-bsw-nick/igt@meta_test@fail-result.html - fi-rkl-11600: NOTRUN -> [FAIL][26] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-rkl-11600/igt@meta_test@fail-result.html - fi-hsw-g3258: NOTRUN -> [FAIL][27] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-hsw-g3258/igt@meta_test@fail-result.html - fi-bdw-gvtdvm: NOTRUN -> [FAIL][28] [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-bdw-gvtdvm/igt@meta_test@fail-result.html - fi-bsw-kefka: NOTRUN -> [FAIL][29] [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-bsw-kefka/igt@meta_test@fail-result.html - fi-adl-ddr5: NOTRUN -> [FAIL][30] [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-adl-ddr5/igt@meta_test@fail-result.html - {bat-dg2-9}: NOTRUN -> [FAIL][31] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-dg2-9/igt@meta_test@fail-result.html - fi-hsw-4770: NOTRUN -> [FAIL][32] [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-hsw-4770/igt@meta_test@fail-result.html - fi-skl-6700k2: NOTRUN -> [FAIL][33] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-skl-6700k2/igt@meta_test@fail-result.html - fi-cfl-8109u: NOTRUN -> [FAIL][34] [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-cfl-8109u/igt@meta_test@fail-result.html - bat-adlp-4: NOTRUN -> [FAIL][35] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-adlp-4/igt@meta_test@fail-result.html - {bat-adln-1}: NOTRUN -> [FAIL][36] [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-adln-1/igt@meta_test@fail-result.html - fi-kbl-8809g: NOTRUN -> [FAIL][37] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-kbl-8809g/igt@meta_test@fail-result.html - fi-ivb-3770: NOTRUN -> [FAIL][38] [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-ivb-3770/igt@meta_test@fail-result.html - fi-elk-e7500: NOTRUN -> [FAIL][39] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-elk-e7500/igt@meta_test@fail-result.html - {bat-dg2-8}: NOTRUN -> [FAIL][40] [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/bat-dg2-8/igt@meta_test@fail-result.html - fi-kbl-guc: NOTRUN -> [FAIL][41] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-kbl-guc/igt@meta_test@fail-result.html - fi-snb-2600: NOTRUN -> [FAIL][42] [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/fi-snb-2600/igt@meta_test@fail-result.html New tests --------- New tests have been introduced between CI_DRM_11810 and IGTPW_7396: ### New IGT tests (1) ### * igt@meta_test@fail-result: - Statuses : 42 fail(s) - Exec time: [0.00, 0.23] s {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6542 -> IGTPW_7396 CI-20190529: 20190529 CI_DRM_11810: 3c2c4f54d75ac013f8d395c71d4ccb94d662a481 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_7396: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/index.html IGT_6542: d38a476ee4b9f9a95d8f452de0d66cc52f7f079b @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7396/index.html [-- Attachment #2: Type: text/html, Size: 9421 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync @ 2022-06-28 4:25 sai.gowtham.ch 2022-06-28 4:25 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch 0 siblings, 1 reply; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-28 4:25 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Add test description to gem_sync. Sai Gowtham Ch (2): tests/i915/gem_sync: Added test description for test case. HAX: don't do full run tests/i915/gem_sync.c | 92 +++++++++---- tests/intel-ci/fast-feedback.testlist | 178 +------------------------- 2 files changed, 70 insertions(+), 200 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case. 2022-06-28 4:25 [igt-dev] [PATCH i-g-t 0/2] " sai.gowtham.ch @ 2022-06-28 4:25 ` sai.gowtham.ch 2022-06-28 7:32 ` Kamil Konieczny 0 siblings, 1 reply; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-28 4:25 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Added test description for test and to all the subtests that are available. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> --- tests/i915/gem_sync.c | 92 ++++++++++++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 23 deletions(-) diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c index 8c435845..412a785d 100644 --- a/tests/i915/gem_sync.c +++ b/tests/i915/gem_sync.c @@ -1208,32 +1208,60 @@ igt_main int num_children, int timeout); int num_children; int timeout; + const char *describe; } all[] = { - { "basic-each", sync_ring, 1, 2 }, - { "basic-store-each", store_ring, 1, 2 }, - { "basic-many-each", store_many, 0, 2 }, - { "switch-each", switch_ring, 1, 20 }, - { "forked-switch-each", switch_ring, ncpus, 20 }, - { "forked-each", sync_ring, ncpus, 20 }, - { "forked-store-each", store_ring, ncpus, 20 }, - { "active-each", active_ring, 0, 20 }, - { "wakeup-each", wakeup_ring, 20, 1 }, - { "active-wakeup-each", active_wakeup_ring, 20, 1 }, - { "double-wakeup-each", wakeup_ring, 20, 2 }, + { "basic-each", sync_ring, 1, 2, + "Check synchronisation of ring" }, + { "basic-store-each", store_ring, 1, 2, + "Check that store synchronisation works" }, + { "basic-many-each", store_many, 0, 2, + "Try and create race condition and see if we" + " can catch interrupts" }, + { "switch-each", switch_ring, 1, 20, + "Check sync after context switch" }, + { "forked-switch-each", switch_ring, ncpus, 20, + "Check sync after context switch parallelly" }, + { "forked-each", sync_ring, ncpus, 20, + "Forked variant of sync_ring, which checks synchronisation" + " of ring with parallel executions" }, + { "forked-store-each", store_ring, ncpus, 20, + "Forked variant of store_ring, check if parallel store" + " synchronisation works" }, + { "active-each", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy" }, + { "wakeup-each", wakeup_ring, 20, 1, + "Stress test for nop + sync" }, + { "active-wakeup-each", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch" }, + { "double-wakeup-each", wakeup_ring, 20, 2, + "Double stress test for nop + sync" }, {} }, individual[] = { - { "default", sync_ring, 1, 20 }, - { "idle", idle_ring, 0, 20 }, - { "active", active_ring, 0, 20 }, - { "wakeup", wakeup_ring, 20, 1 }, - { "active-wakeup", active_wakeup_ring, 20, 1 }, - { "double-wakeup", wakeup_ring, 20, 2 }, - { "store", store_ring, 1, 20 }, - { "switch", switch_ring, 1, 20 }, - { "forked-switch", switch_ring, ncpus, 20 }, - { "many", store_many, 0, 20 }, - { "forked", sync_ring, ncpus, 20 }, - { "forked-store", store_ring, ncpus, 20 }, + { "default", sync_ring, 1, 20, + "Check synchronisation of rings for each engine" }, + { "idle", idle_ring, 0, 20, + "Exercise and measure idle requests" }, + { "active", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy" }, + { "wakeup", wakeup_ring, 20, 1, + "Checks Alternate stress for nop + sync" }, + { "active-wakeup", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch" }, + { "double-wakeup", wakeup_ring, 20, 2, + "Stress test for nop + sync" }, + { "store", store_ring, 1, 20, + "Check that store synchronisation works" }, + { "switch", switch_ring, 1, 20, + "Check sync after context switch" }, + { "forked-switch", switch_ring, ncpus, 20, + "Check sync after context switch parallelly" }, + { "many", store_many, 0, 20, + "Try and create race condition and see if we catch interrupts" }, + { "forked", sync_ring, ncpus, 20, + "Check synchronisation of ring with parallel executions" }, + { "forked-store", store_ring, ncpus, 20, + "Check store synchronisation works with parallel multiple" + " executions" }, {} }; #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++) @@ -1255,6 +1283,7 @@ igt_main /* Legacy for selecting rings. */ for_each_test(t, individual) { + igt_describe_f("%s for each legacy engine.", t->describe); igt_subtest_with_dynamic_f("legacy-%s", t->name) { for (const struct intel_execution_ring *l = intel_execution_rings; l->name; l++) { igt_dynamic_f("%s", l->name) { @@ -1265,27 +1294,38 @@ igt_main } } + igt_describe("Basic test to wait upon a batch on all rings."); igt_subtest("basic-all") sync_all(fd, ctx, 1, 2); + + igt_describe("Extended version of store synchronisation test."); igt_subtest("basic-store-all") store_all(fd, ctx, 1, 2); + igt_describe("Extended version of existing basic-all test."); igt_subtest("all") sync_all(fd, ctx, 1, 20); + igt_describe("Extended version of existing basic-store-all test."); igt_subtest("store-all") store_all(fd, ctx, 1, 20); + + igt_describe("Parallel execution of batch on all rings and then wait."); igt_subtest("forked-all") sync_all(fd, ctx, ncpus, 20); + + igt_describe("Parallel execution of store synchronisation."); igt_subtest("forked-store-all") store_all(fd, ctx, ncpus, 20); for_each_test(t, all) { + igt_describe_f("%s.",t->describe); igt_subtest_f("%s", t->name) t->func(fd, ctx, ALL_ENGINES, t->num_children, t->timeout); } /* New way of selecting engines. */ for_each_test(t, individual) { + igt_describe_f("%s on each engine.", t->describe); igt_subtest_with_dynamic_f("%s", t->name) { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) { @@ -1303,8 +1343,14 @@ igt_main igt_require(gem_scheduler_has_preemption(fd)); } + igt_describe("Check and measure how well we can submit a second" + " high priority task when the engine is already" + " busy with a low priority task on all engines."); igt_subtest("preempt-all") preempt(fd, ctx, ALL_ENGINES, 1, 20); + + igt_describe("For each context engine check how priority of task are" + " submitted when engine is already busy."); igt_subtest_with_dynamic("preempt") { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) -- 2.35.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case. 2022-06-28 4:25 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch @ 2022-06-28 7:32 ` Kamil Konieczny 0 siblings, 0 replies; 10+ messages in thread From: Kamil Konieczny @ 2022-06-28 7:32 UTC (permalink / raw) To: igt-dev; +Cc: Sai Gowtham Ch Hi Sai, On 2022-06-28 at 09:55:58 +0530, sai.gowtham.ch@intel.com wrote: > From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> > > Added test description for test and to all the subtests that are > available. > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> > --- > tests/i915/gem_sync.c | 92 ++++++++++++++++++++++++++++++++----------- > 1 file changed, 69 insertions(+), 23 deletions(-) > > diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c > index 8c435845..412a785d 100644 > --- a/tests/i915/gem_sync.c > +++ b/tests/i915/gem_sync.c > @@ -1208,32 +1208,60 @@ igt_main > int num_children, int timeout); > int num_children; > int timeout; > + const char *describe; > } all[] = { > - { "basic-each", sync_ring, 1, 2 }, > - { "basic-store-each", store_ring, 1, 2 }, > - { "basic-many-each", store_many, 0, 2 }, > - { "switch-each", switch_ring, 1, 20 }, > - { "forked-switch-each", switch_ring, ncpus, 20 }, > - { "forked-each", sync_ring, ncpus, 20 }, > - { "forked-store-each", store_ring, ncpus, 20 }, > - { "active-each", active_ring, 0, 20 }, > - { "wakeup-each", wakeup_ring, 20, 1 }, > - { "active-wakeup-each", active_wakeup_ring, 20, 1 }, > - { "double-wakeup-each", wakeup_ring, 20, 2 }, > + { "basic-each", sync_ring, 1, 2, > + "Check synchronisation of ring" }, > + { "basic-store-each", store_ring, 1, 2, > + "Check that store synchronisation works" }, > + { "basic-many-each", store_many, 0, 2, > + "Try and create race condition and see if we" s/Try and create race condition/Try racing/ or: Create race > + " can catch interrupts" }, > + { "switch-each", switch_ring, 1, 20, > + "Check sync after context switch" }, > + { "forked-switch-each", switch_ring, ncpus, 20, > + "Check sync after context switch parallelly" }, > + { "forked-each", sync_ring, ncpus, 20, > + "Forked variant of sync_ring, which checks synchronisation" > + " of ring with parallel executions" }, > + { "forked-store-each", store_ring, ncpus, 20, > + "Forked variant of store_ring, check if parallel store" > + " synchronisation works" }, > + { "active-each", active_ring, 0, 20, > + "Exercise waiting while keeping the GPU busy" }, > + { "wakeup-each", wakeup_ring, 20, 1, > + "Stress test for nop + sync" }, > + { "active-wakeup-each", active_wakeup_ring, 20, 1, > + "Measure wakeup latency while also scheduling the next batch" }, > + { "double-wakeup-each", wakeup_ring, 20, 2, > + "Double stress test for nop + sync" }, > {} > }, individual[] = { > - { "default", sync_ring, 1, 20 }, > - { "idle", idle_ring, 0, 20 }, > - { "active", active_ring, 0, 20 }, > - { "wakeup", wakeup_ring, 20, 1 }, > - { "active-wakeup", active_wakeup_ring, 20, 1 }, > - { "double-wakeup", wakeup_ring, 20, 2 }, > - { "store", store_ring, 1, 20 }, > - { "switch", switch_ring, 1, 20 }, > - { "forked-switch", switch_ring, ncpus, 20 }, > - { "many", store_many, 0, 20 }, > - { "forked", sync_ring, ncpus, 20 }, > - { "forked-store", store_ring, ncpus, 20 }, > + { "default", sync_ring, 1, 20, > + "Check synchronisation of rings for each engine" }, s/ for each engine// > + { "idle", idle_ring, 0, 20, > + "Exercise and measure idle requests" }, > + { "active", active_ring, 0, 20, > + "Exercise waiting while keeping the GPU busy" }, > + { "wakeup", wakeup_ring, 20, 1, > + "Checks Alternate stress for nop + sync" }, Use here: "Stress test for nop + sync" > + { "active-wakeup", active_wakeup_ring, 20, 1, > + "Measure wakeup latency while also scheduling the next batch" }, > + { "double-wakeup", wakeup_ring, 20, 2, > + "Stress test for nop + sync" }, ------------------------ ^ s/Stress/Double stress/ > + { "store", store_ring, 1, 20, > + "Check that store synchronisation works" }, > + { "switch", switch_ring, 1, 20, > + "Check sync after context switch" }, > + { "forked-switch", switch_ring, ncpus, 20, > + "Check sync after context switch parallelly" }, > + { "many", store_many, 0, 20, > + "Try and create race condition and see if we catch interrupts" }, s/Try and create race condition/Try racing/ or: Create race > + { "forked", sync_ring, ncpus, 20, > + "Check synchronisation of ring with parallel executions" }, > + { "forked-store", store_ring, ncpus, 20, > + "Check store synchronisation works with parallel multiple" > + " executions" }, > {} > }; > #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++) > @@ -1255,6 +1283,7 @@ igt_main > > /* Legacy for selecting rings. */ > for_each_test(t, individual) { > + igt_describe_f("%s for each legacy engine.", t->describe); > igt_subtest_with_dynamic_f("legacy-%s", t->name) { > for (const struct intel_execution_ring *l = intel_execution_rings; l->name; l++) { > igt_dynamic_f("%s", l->name) { > @@ -1265,27 +1294,38 @@ igt_main > } > } > > + igt_describe("Basic test to wait upon a batch on all rings."); > igt_subtest("basic-all") > sync_all(fd, ctx, 1, 2); > + > + igt_describe("Extended version of store synchronisation test."); --------------------- ^ s/Extended version of/Basic/ > igt_subtest("basic-store-all") > store_all(fd, ctx, 1, 2); > > + igt_describe("Extended version of existing basic-all test."); > igt_subtest("all") > sync_all(fd, ctx, 1, 20); > + igt_describe("Extended version of existing basic-store-all test."); > igt_subtest("store-all") > store_all(fd, ctx, 1, 20); > + > + igt_describe("Parallel execution of batch on all rings and then wait."); > igt_subtest("forked-all") > sync_all(fd, ctx, ncpus, 20); > + > + igt_describe("Parallel execution of store synchronisation."); > igt_subtest("forked-store-all") > store_all(fd, ctx, ncpus, 20); > > for_each_test(t, all) { > + igt_describe_f("%s.",t->describe); ------------------------------------ ^ Put space after ",". Please use checkpatch to catch such errors. Regards, Kamil > igt_subtest_f("%s", t->name) > t->func(fd, ctx, ALL_ENGINES, t->num_children, t->timeout); > } > > /* New way of selecting engines. */ > for_each_test(t, individual) { > + igt_describe_f("%s on each engine.", t->describe); > igt_subtest_with_dynamic_f("%s", t->name) { > for_each_ctx_engine(fd, ctx, e) { > igt_dynamic_f("%s", e->name) { > @@ -1303,8 +1343,14 @@ igt_main > igt_require(gem_scheduler_has_preemption(fd)); > } > > + igt_describe("Check and measure how well we can submit a second" > + " high priority task when the engine is already" > + " busy with a low priority task on all engines."); > igt_subtest("preempt-all") > preempt(fd, ctx, ALL_ENGINES, 1, 20); > + > + igt_describe("For each context engine check how priority of task are" > + " submitted when engine is already busy."); > igt_subtest_with_dynamic("preempt") { > for_each_ctx_engine(fd, ctx, e) { > igt_dynamic_f("%s", e->name) > -- > 2.35.1 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync @ 2022-06-28 8:53 sai.gowtham.ch 2022-06-28 8:54 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch 0 siblings, 1 reply; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-28 8:53 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Add test description to gem_sync. Sai Gowtham Ch (2): tests/i915/gem_sync: Added test description for test case. HAX: don't do full run tests/i915/gem_sync.c | 92 +++++++++---- tests/intel-ci/fast-feedback.testlist | 178 +------------------------- 2 files changed, 70 insertions(+), 200 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case. 2022-06-28 8:53 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch @ 2022-06-28 8:54 ` sai.gowtham.ch 2022-06-28 11:27 ` Kamil Konieczny 0 siblings, 1 reply; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-28 8:54 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Added test description for test and to all the subtests that are available. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> --- tests/i915/gem_sync.c | 92 ++++++++++++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 23 deletions(-) diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c index 8c435845..6e38871d 100644 --- a/tests/i915/gem_sync.c +++ b/tests/i915/gem_sync.c @@ -1208,32 +1208,60 @@ igt_main int num_children, int timeout); int num_children; int timeout; + const char *describe; } all[] = { - { "basic-each", sync_ring, 1, 2 }, - { "basic-store-each", store_ring, 1, 2 }, - { "basic-many-each", store_many, 0, 2 }, - { "switch-each", switch_ring, 1, 20 }, - { "forked-switch-each", switch_ring, ncpus, 20 }, - { "forked-each", sync_ring, ncpus, 20 }, - { "forked-store-each", store_ring, ncpus, 20 }, - { "active-each", active_ring, 0, 20 }, - { "wakeup-each", wakeup_ring, 20, 1 }, - { "active-wakeup-each", active_wakeup_ring, 20, 1 }, - { "double-wakeup-each", wakeup_ring, 20, 2 }, + { "basic-each", sync_ring, 1, 2, + "Check synchronisation of ring" }, + { "basic-store-each", store_ring, 1, 2, + "Check that store synchronisation works" }, + { "basic-many-each", store_many, 0, 2, + "Create race condition and see if we can" + " catch interrupts" }, + { "switch-each", switch_ring, 1, 20, + "Check sync after context switch" }, + { "forked-switch-each", switch_ring, ncpus, 20, + "Check sync after context switch parallelly" }, + { "forked-each", sync_ring, ncpus, 20, + "Forked variant of sync_ring, which checks synchronisation" + " of ring with parallel executions" }, + { "forked-store-each", store_ring, ncpus, 20, + "Forked variant of store_ring, check if parallel store" + " synchronisation works" }, + { "active-each", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy" }, + { "wakeup-each", wakeup_ring, 20, 1, + "Stress test for nop + sync" }, + { "active-wakeup-each", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch" }, + { "double-wakeup-each", wakeup_ring, 20, 2, + "Double stress test for nop + sync" }, {} }, individual[] = { - { "default", sync_ring, 1, 20 }, - { "idle", idle_ring, 0, 20 }, - { "active", active_ring, 0, 20 }, - { "wakeup", wakeup_ring, 20, 1 }, - { "active-wakeup", active_wakeup_ring, 20, 1 }, - { "double-wakeup", wakeup_ring, 20, 2 }, - { "store", store_ring, 1, 20 }, - { "switch", switch_ring, 1, 20 }, - { "forked-switch", switch_ring, ncpus, 20 }, - { "many", store_many, 0, 20 }, - { "forked", sync_ring, ncpus, 20 }, - { "forked-store", store_ring, ncpus, 20 }, + { "default", sync_ring, 1, 20, + "Check synchronisation of rings" }, + { "idle", idle_ring, 0, 20, + "Exercise and measure idle requests" }, + { "active", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy" }, + { "wakeup", wakeup_ring, 20, 1, + "Stress for nop + sync" }, + { "active-wakeup", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch" }, + { "double-wakeup", wakeup_ring, 20, 2, + "Double Stress test for nop + sync" }, + { "store", store_ring, 1, 20, + "Check that store synchronisation works" }, + { "switch", switch_ring, 1, 20, + "Check sync after context switch" }, + { "forked-switch", switch_ring, ncpus, 20, + "Check sync after context switch parallelly" }, + { "many", store_many, 0, 20, + "Create race condition and see if we catch interrupts" }, + { "forked", sync_ring, ncpus, 20, + "Check synchronisation of ring with parallel executions" }, + { "forked-store", store_ring, ncpus, 20, + "Check store synchronisation works with parallel multiple" + " executions" }, {} }; #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++) @@ -1255,6 +1283,7 @@ igt_main /* Legacy for selecting rings. */ for_each_test(t, individual) { + igt_describe_f("%s for each legacy engine.", t->describe); igt_subtest_with_dynamic_f("legacy-%s", t->name) { for (const struct intel_execution_ring *l = intel_execution_rings; l->name; l++) { igt_dynamic_f("%s", l->name) { @@ -1265,27 +1294,38 @@ igt_main } } + igt_describe("Basic test to wait upon a batch on all rings."); igt_subtest("basic-all") sync_all(fd, ctx, 1, 2); + + igt_describe("Basic version of store synchronisation test."); igt_subtest("basic-store-all") store_all(fd, ctx, 1, 2); + igt_describe("Extended version of existing basic-all test."); igt_subtest("all") sync_all(fd, ctx, 1, 20); + igt_describe("Extended version of existing basic-store-all test."); igt_subtest("store-all") store_all(fd, ctx, 1, 20); + + igt_describe("Parallel execution of batch on all rings and then wait."); igt_subtest("forked-all") sync_all(fd, ctx, ncpus, 20); + + igt_describe("Parallel execution of store synchronisation."); igt_subtest("forked-store-all") store_all(fd, ctx, ncpus, 20); for_each_test(t, all) { + igt_describe_f("%s.", t->describe); igt_subtest_f("%s", t->name) t->func(fd, ctx, ALL_ENGINES, t->num_children, t->timeout); } /* New way of selecting engines. */ for_each_test(t, individual) { + igt_describe_f("%s on each engine.", t->describe); igt_subtest_with_dynamic_f("%s", t->name) { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) { @@ -1303,8 +1343,14 @@ igt_main igt_require(gem_scheduler_has_preemption(fd)); } + igt_describe("Check and measure how well we can submit a second" + " high priority task when the engine is already" + " busy with a low priority task on all engines."); igt_subtest("preempt-all") preempt(fd, ctx, ALL_ENGINES, 1, 20); + + igt_describe("For each context engine check how priority of task are" + " submitted when engine is already busy."); igt_subtest_with_dynamic("preempt") { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) -- 2.35.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case. 2022-06-28 8:54 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch @ 2022-06-28 11:27 ` Kamil Konieczny 0 siblings, 0 replies; 10+ messages in thread From: Kamil Konieczny @ 2022-06-28 11:27 UTC (permalink / raw) To: igt-dev; +Cc: Sai Gowtham Ch Hi Sai, On 2022-06-28 at 14:24:00 +0530, sai.gowtham.ch@intel.com wrote: > From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> > > Added test description for test and to all the subtests that are > available. > > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> > --- > tests/i915/gem_sync.c | 92 ++++++++++++++++++++++++++++++++----------- > 1 file changed, 69 insertions(+), 23 deletions(-) > > diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c > index 8c435845..6e38871d 100644 > --- a/tests/i915/gem_sync.c > +++ b/tests/i915/gem_sync.c > @@ -1208,32 +1208,60 @@ igt_main > int num_children, int timeout); > int num_children; > int timeout; > + const char *describe; > } all[] = { > - { "basic-each", sync_ring, 1, 2 }, > - { "basic-store-each", store_ring, 1, 2 }, > - { "basic-many-each", store_many, 0, 2 }, > - { "switch-each", switch_ring, 1, 20 }, > - { "forked-switch-each", switch_ring, ncpus, 20 }, > - { "forked-each", sync_ring, ncpus, 20 }, > - { "forked-store-each", store_ring, ncpus, 20 }, > - { "active-each", active_ring, 0, 20 }, > - { "wakeup-each", wakeup_ring, 20, 1 }, > - { "active-wakeup-each", active_wakeup_ring, 20, 1 }, > - { "double-wakeup-each", wakeup_ring, 20, 2 }, > + { "basic-each", sync_ring, 1, 2, > + "Check synchronisation of ring" }, > + { "basic-store-each", store_ring, 1, 2, > + "Check that store synchronisation works" }, > + { "basic-many-each", store_many, 0, 2, > + "Create race condition and see if we can" > + " catch interrupts" }, > + { "switch-each", switch_ring, 1, 20, > + "Check sync after context switch" }, > + { "forked-switch-each", switch_ring, ncpus, 20, > + "Check sync after context switch parallelly" }, > + { "forked-each", sync_ring, ncpus, 20, > + "Forked variant of sync_ring, which checks synchronisation" > + " of ring with parallel executions" }, > + { "forked-store-each", store_ring, ncpus, 20, > + "Forked variant of store_ring, check if parallel store" > + " synchronisation works" }, > + { "active-each", active_ring, 0, 20, > + "Exercise waiting while keeping the GPU busy" }, > + { "wakeup-each", wakeup_ring, 20, 1, > + "Stress test for nop + sync" }, > + { "active-wakeup-each", active_wakeup_ring, 20, 1, > + "Measure wakeup latency while also scheduling the next batch" }, > + { "double-wakeup-each", wakeup_ring, 20, 2, > + "Double stress test for nop + sync" }, > {} > }, individual[] = { > - { "default", sync_ring, 1, 20 }, > - { "idle", idle_ring, 0, 20 }, > - { "active", active_ring, 0, 20 }, > - { "wakeup", wakeup_ring, 20, 1 }, > - { "active-wakeup", active_wakeup_ring, 20, 1 }, > - { "double-wakeup", wakeup_ring, 20, 2 }, > - { "store", store_ring, 1, 20 }, > - { "switch", switch_ring, 1, 20 }, > - { "forked-switch", switch_ring, ncpus, 20 }, > - { "many", store_many, 0, 20 }, > - { "forked", sync_ring, ncpus, 20 }, > - { "forked-store", store_ring, ncpus, 20 }, > + { "default", sync_ring, 1, 20, > + "Check synchronisation of rings" }, > + { "idle", idle_ring, 0, 20, > + "Exercise and measure idle requests" }, > + { "active", active_ring, 0, 20, > + "Exercise waiting while keeping the GPU busy" }, > + { "wakeup", wakeup_ring, 20, 1, > + "Stress for nop + sync" }, > + { "active-wakeup", active_wakeup_ring, 20, 1, > + "Measure wakeup latency while also scheduling the next batch" }, > + { "double-wakeup", wakeup_ring, 20, 2, > + "Double Stress test for nop + sync" }, ------------------------------- ^ s/Stress/stress/ > + { "store", store_ring, 1, 20, > + "Check that store synchronisation works" }, > + { "switch", switch_ring, 1, 20, > + "Check sync after context switch" }, > + { "forked-switch", switch_ring, ncpus, 20, > + "Check sync after context switch parallelly" }, > + { "many", store_many, 0, 20, > + "Create race condition and see if we catch interrupts" }, ----------------------------------------------------------- ^ s/we/we can/ With that fixed you can add my r-b tag. Regards, Kamil > + { "forked", sync_ring, ncpus, 20, > + "Check synchronisation of ring with parallel executions" }, > + { "forked-store", store_ring, ncpus, 20, > + "Check store synchronisation works with parallel multiple" > + " executions" }, > {} > }; > #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++) > @@ -1255,6 +1283,7 @@ igt_main > > /* Legacy for selecting rings. */ > for_each_test(t, individual) { > + igt_describe_f("%s for each legacy engine.", t->describe); > igt_subtest_with_dynamic_f("legacy-%s", t->name) { > for (const struct intel_execution_ring *l = intel_execution_rings; l->name; l++) { > igt_dynamic_f("%s", l->name) { > @@ -1265,27 +1294,38 @@ igt_main > } > } > > + igt_describe("Basic test to wait upon a batch on all rings."); > igt_subtest("basic-all") > sync_all(fd, ctx, 1, 2); > + > + igt_describe("Basic version of store synchronisation test."); > igt_subtest("basic-store-all") > store_all(fd, ctx, 1, 2); > > + igt_describe("Extended version of existing basic-all test."); > igt_subtest("all") > sync_all(fd, ctx, 1, 20); > + igt_describe("Extended version of existing basic-store-all test."); > igt_subtest("store-all") > store_all(fd, ctx, 1, 20); > + > + igt_describe("Parallel execution of batch on all rings and then wait."); > igt_subtest("forked-all") > sync_all(fd, ctx, ncpus, 20); > + > + igt_describe("Parallel execution of store synchronisation."); > igt_subtest("forked-store-all") > store_all(fd, ctx, ncpus, 20); > > for_each_test(t, all) { > + igt_describe_f("%s.", t->describe); > igt_subtest_f("%s", t->name) > t->func(fd, ctx, ALL_ENGINES, t->num_children, t->timeout); > } > > /* New way of selecting engines. */ > for_each_test(t, individual) { > + igt_describe_f("%s on each engine.", t->describe); > igt_subtest_with_dynamic_f("%s", t->name) { > for_each_ctx_engine(fd, ctx, e) { > igt_dynamic_f("%s", e->name) { > @@ -1303,8 +1343,14 @@ igt_main > igt_require(gem_scheduler_has_preemption(fd)); > } > > + igt_describe("Check and measure how well we can submit a second" > + " high priority task when the engine is already" > + " busy with a low priority task on all engines."); > igt_subtest("preempt-all") > preempt(fd, ctx, ALL_ENGINES, 1, 20); > + > + igt_describe("For each context engine check how priority of task are" > + " submitted when engine is already busy."); > igt_subtest_with_dynamic("preempt") { > for_each_ctx_engine(fd, ctx, e) { > igt_dynamic_f("%s", e->name) > -- > 2.35.1 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync @ 2022-06-28 13:43 sai.gowtham.ch 2022-06-28 13:43 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch 0 siblings, 1 reply; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-28 13:43 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Add test description to gem_sync. Sai Gowtham Ch (2): tests/i915/gem_sync: Added test description for test case. HAX: don't do full run tests/i915/gem_sync.c | 92 +++++++++---- tests/intel-ci/fast-feedback.testlist | 178 +------------------------- 2 files changed, 70 insertions(+), 200 deletions(-) -- 2.35.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case. 2022-06-28 13:43 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch @ 2022-06-28 13:43 ` sai.gowtham.ch 0 siblings, 0 replies; 10+ messages in thread From: sai.gowtham.ch @ 2022-06-28 13:43 UTC (permalink / raw) To: igt-dev, kamil.konieczny, sai.gowtham.ch From: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Added test description for test and to all the subtests that are available. Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com> Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> --- tests/i915/gem_sync.c | 92 ++++++++++++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 23 deletions(-) diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c index 8c435845..8ee33c77 100644 --- a/tests/i915/gem_sync.c +++ b/tests/i915/gem_sync.c @@ -1208,32 +1208,60 @@ igt_main int num_children, int timeout); int num_children; int timeout; + const char *describe; } all[] = { - { "basic-each", sync_ring, 1, 2 }, - { "basic-store-each", store_ring, 1, 2 }, - { "basic-many-each", store_many, 0, 2 }, - { "switch-each", switch_ring, 1, 20 }, - { "forked-switch-each", switch_ring, ncpus, 20 }, - { "forked-each", sync_ring, ncpus, 20 }, - { "forked-store-each", store_ring, ncpus, 20 }, - { "active-each", active_ring, 0, 20 }, - { "wakeup-each", wakeup_ring, 20, 1 }, - { "active-wakeup-each", active_wakeup_ring, 20, 1 }, - { "double-wakeup-each", wakeup_ring, 20, 2 }, + { "basic-each", sync_ring, 1, 2, + "Check synchronisation of ring" }, + { "basic-store-each", store_ring, 1, 2, + "Check that store synchronisation works" }, + { "basic-many-each", store_many, 0, 2, + "Create race condition and see if we can" + " catch interrupts" }, + { "switch-each", switch_ring, 1, 20, + "Check sync after context switch" }, + { "forked-switch-each", switch_ring, ncpus, 20, + "Check sync after context switch parallelly" }, + { "forked-each", sync_ring, ncpus, 20, + "Forked variant of sync_ring, which checks synchronisation" + " of ring with parallel executions" }, + { "forked-store-each", store_ring, ncpus, 20, + "Forked variant of store_ring, check if parallel store" + " synchronisation works" }, + { "active-each", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy" }, + { "wakeup-each", wakeup_ring, 20, 1, + "Stress test for nop + sync" }, + { "active-wakeup-each", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch" }, + { "double-wakeup-each", wakeup_ring, 20, 2, + "Double stress test for nop + sync" }, {} }, individual[] = { - { "default", sync_ring, 1, 20 }, - { "idle", idle_ring, 0, 20 }, - { "active", active_ring, 0, 20 }, - { "wakeup", wakeup_ring, 20, 1 }, - { "active-wakeup", active_wakeup_ring, 20, 1 }, - { "double-wakeup", wakeup_ring, 20, 2 }, - { "store", store_ring, 1, 20 }, - { "switch", switch_ring, 1, 20 }, - { "forked-switch", switch_ring, ncpus, 20 }, - { "many", store_many, 0, 20 }, - { "forked", sync_ring, ncpus, 20 }, - { "forked-store", store_ring, ncpus, 20 }, + { "default", sync_ring, 1, 20, + "Check synchronisation of rings" }, + { "idle", idle_ring, 0, 20, + "Exercise and measure idle requests" }, + { "active", active_ring, 0, 20, + "Exercise waiting while keeping the GPU busy" }, + { "wakeup", wakeup_ring, 20, 1, + "Stress for nop + sync" }, + { "active-wakeup", active_wakeup_ring, 20, 1, + "Measure wakeup latency while also scheduling the next batch" }, + { "double-wakeup", wakeup_ring, 20, 2, + "Double stress test for nop + sync" }, + { "store", store_ring, 1, 20, + "Check that store synchronisation works" }, + { "switch", switch_ring, 1, 20, + "Check sync after context switch" }, + { "forked-switch", switch_ring, ncpus, 20, + "Check sync after context switch parallelly" }, + { "many", store_many, 0, 20, + "Create race condition and see if we can catch interrupts" }, + { "forked", sync_ring, ncpus, 20, + "Check synchronisation of ring with parallel executions" }, + { "forked-store", store_ring, ncpus, 20, + "Check store synchronisation works with parallel multiple" + " executions" }, {} }; #define for_each_test(t, T) for(typeof(*T) *t = T; t->name; t++) @@ -1255,6 +1283,7 @@ igt_main /* Legacy for selecting rings. */ for_each_test(t, individual) { + igt_describe_f("%s for each legacy engine.", t->describe); igt_subtest_with_dynamic_f("legacy-%s", t->name) { for (const struct intel_execution_ring *l = intel_execution_rings; l->name; l++) { igt_dynamic_f("%s", l->name) { @@ -1265,27 +1294,38 @@ igt_main } } + igt_describe("Basic test to wait upon a batch on all rings."); igt_subtest("basic-all") sync_all(fd, ctx, 1, 2); + + igt_describe("Basic version of store synchronisation test."); igt_subtest("basic-store-all") store_all(fd, ctx, 1, 2); + igt_describe("Extended version of existing basic-all test."); igt_subtest("all") sync_all(fd, ctx, 1, 20); + igt_describe("Extended version of existing basic-store-all test."); igt_subtest("store-all") store_all(fd, ctx, 1, 20); + + igt_describe("Parallel execution of batch on all rings and then wait."); igt_subtest("forked-all") sync_all(fd, ctx, ncpus, 20); + + igt_describe("Parallel execution of store synchronisation."); igt_subtest("forked-store-all") store_all(fd, ctx, ncpus, 20); for_each_test(t, all) { + igt_describe_f("%s.", t->describe); igt_subtest_f("%s", t->name) t->func(fd, ctx, ALL_ENGINES, t->num_children, t->timeout); } /* New way of selecting engines. */ for_each_test(t, individual) { + igt_describe_f("%s on each engine.", t->describe); igt_subtest_with_dynamic_f("%s", t->name) { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) { @@ -1303,8 +1343,14 @@ igt_main igt_require(gem_scheduler_has_preemption(fd)); } + igt_describe("Check and measure how well we can submit a second" + " high priority task when the engine is already" + " busy with a low priority task on all engines."); igt_subtest("preempt-all") preempt(fd, ctx, ALL_ENGINES, 1, 20); + + igt_describe("For each context engine check how priority of task are" + " submitted when engine is already busy."); igt_subtest_with_dynamic("preempt") { for_each_ctx_engine(fd, ctx, e) { igt_dynamic_f("%s", e->name) -- 2.35.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-06-28 13:44 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-06-27 11:07 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch 2022-06-27 18:00 ` Kamil Konieczny 2022-06-27 11:08 ` [igt-dev] [PATCH i-g-t 2/2] HAX: don't do full run sai.gowtham.ch 2022-06-27 13:54 ` [igt-dev] ✗ Fi.CI.BAT: failure for HAX add description to gem_sync Patchwork 2022-06-28 4:25 [igt-dev] [PATCH i-g-t 0/2] " sai.gowtham.ch 2022-06-28 4:25 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch 2022-06-28 7:32 ` Kamil Konieczny 2022-06-28 8:53 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch 2022-06-28 8:54 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch 2022-06-28 11:27 ` Kamil Konieczny 2022-06-28 13:43 [igt-dev] [PATCH i-g-t 0/2] HAX add description to gem_sync sai.gowtham.ch 2022-06-28 13:43 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_sync: Added test description for test case sai.gowtham.ch
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.