* [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_suspend: Add support for local memory @ 2021-10-12 5:01 sai.gowtham.ch 2021-10-12 5:47 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork 2021-10-13 15:10 ` [igt-dev] [PATCH i-g-t] " Zbigniew Kempczyński 0 siblings, 2 replies; 3+ messages in thread From: sai.gowtham.ch @ 2021-10-12 5:01 UTC (permalink / raw) To: igt-dev, sai.gowtham.ch, zbigniew.kempczynski From: Ch Sai Gowtham <sai.gowtham.ch@intel.com> Add support for local memory region (Device memory) Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_exec_suspend.c | 187 ++++++++++++++++++++++++++-------- 1 file changed, 147 insertions(+), 40 deletions(-) diff --git a/tests/i915/gem_exec_suspend.c b/tests/i915/gem_exec_suspend.c index 887bb735..ac7e1b7c 100644 --- a/tests/i915/gem_exec_suspend.c +++ b/tests/i915/gem_exec_suspend.c @@ -51,8 +51,19 @@ #define CACHED (1<<8) #define HANG (2<<8) +static uint32_t batch_create(int fd, uint32_t batch_size, uint32_t region) +{ + const uint32_t bbe = MI_BATCH_BUFFER_END; + uint32_t handle; + + handle = gem_create_in_memory_regions(fd, batch_size, region); + gem_write(fd, handle, 0, &bbe, sizeof(bbe)); + + return handle; +} + static void run_test(int fd, const intel_ctx_t *ctx, - unsigned engine, unsigned flags); + unsigned engine, unsigned flags, uint32_t region); static void check_bo(int fd, uint32_t handle) { @@ -67,16 +78,15 @@ static void check_bo(int fd, uint32_t handle) munmap(map, 4096); } -static void test_all(int fd, const intel_ctx_t *ctx, unsigned flags) +static void test_all(int fd, const intel_ctx_t *ctx, unsigned flags, uint32_t region) { - run_test(fd, ctx, ALL_ENGINES, flags & ~0xff); + run_test(fd, ctx, ALL_ENGINES, flags & ~0xff, region); } static void run_test(int fd, const intel_ctx_t *ctx, - unsigned engine, unsigned flags) + unsigned engine, unsigned flags, uint32_t region) { const unsigned int gen = intel_gen(intel_get_drm_devid(fd)); - const uint32_t bbe = MI_BATCH_BUFFER_END; struct drm_i915_gem_exec_object2 obj[2]; struct drm_i915_gem_relocation_entry reloc; struct drm_i915_gem_execbuffer2 execbuf; @@ -100,7 +110,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, /* Before suspending, check normal operation */ if (mode(flags) != NOSLEEP) - test_all(fd, ctx, flags); + test_all(fd, ctx, flags, region); gem_quiescent_gpu(fd); @@ -117,8 +127,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, if (!gem_has_lmem(fd)) gem_set_caching(fd, obj[0].handle, !!(flags & CACHED)); obj[0].flags |= EXEC_OBJECT_WRITE; - obj[1].handle = gem_create(fd, 4096); - gem_write(fd, obj[1].handle, 0, &bbe, sizeof(bbe)); + obj[1].handle = batch_create(fd, 4096, region); igt_require(__gem_execbuf(fd, &execbuf) == 0); gem_close(fd, obj[1].handle); @@ -222,7 +231,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, /* After resume, make sure it still works */ if (mode(flags) != NOSLEEP) - test_all(fd, ctx, flags); + test_all(fd, ctx, flags, region); } struct battery_sample { @@ -250,7 +259,7 @@ static double d_time(const struct battery_sample *after, } static void power_test(int i915, const intel_ctx_t *ctx, - unsigned engine, unsigned flags) + unsigned engine, unsigned flags, uint32_t region) { struct battery_sample before, after; char *status; @@ -270,7 +279,7 @@ static void power_test(int i915, const intel_ctx_t *ctx, igt_set_autoresume_delay(5 * 60); /* 5 minutes; longer == more stable */ igt_assert(get_power(dir, &before)); - run_test(i915, ctx, engine, flags); + run_test(i915, ctx, engine, flags, region); igt_assert(get_power(dir, &after)); igt_set_autoresume_delay(0); @@ -296,6 +305,10 @@ igt_main igt_hang_t hang; const intel_ctx_t *ctx; int fd; + char *sub_name; + uint32_t region; + struct drm_i915_query_memory_regions *query_info; + struct igt_collection *set, *regions; igt_fixture { fd = drm_open_driver_master(DRIVER_INTEL); @@ -304,49 +317,111 @@ igt_main ctx = intel_ctx_create_all_physical(fd); igt_fork_hang_detector(fd); + query_info = gem_get_query_memory_regions(fd); + igt_assert(query_info); + + set = get_memory_region_set(query_info, + I915_SYSTEM_MEMORY, + I915_DEVICE_MEMORY); + } + + igt_subtest_with_dynamic("basic") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, ctx, ALL_ENGINES, NOSLEEP, region); + free(sub_name); + } } - igt_subtest("basic") - run_test(fd, ctx, ALL_ENGINES, NOSLEEP); - igt_subtest("basic-S0") - run_test(fd, ctx, ALL_ENGINES, IDLE); - igt_subtest("basic-S3-devices") - run_test(fd, ctx, ALL_ENGINES, SUSPEND_DEVICES); - igt_subtest("basic-S3") - run_test(fd, ctx, ALL_ENGINES, SUSPEND); - igt_subtest("basic-S4-devices") - run_test(fd, ctx, ALL_ENGINES, HIBERNATE_DEVICES); - igt_subtest("basic-S4") - run_test(fd, ctx, ALL_ENGINES, HIBERNATE); + igt_subtest_with_dynamic("basic-S0") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, ctx, ALL_ENGINES, IDLE, region); + free(sub_name); + } + } + + igt_subtest_with_dynamic("basic-S3-devices") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, ctx, ALL_ENGINES, SUSPEND_DEVICES, region); + free(sub_name); + } + } + + igt_subtest_with_dynamic("basic-S3") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, ctx, ALL_ENGINES, SUSPEND, region); + free(sub_name); + } + } + + igt_subtest_with_dynamic("basic-S4-devices") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, ctx, ALL_ENGINES, HIBERNATE_DEVICES, region); + free(sub_name); + } + } + + igt_subtest_with_dynamic("basic-S4") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, ctx, ALL_ENGINES, HIBERNATE, region); + free(sub_name); + } + } for (m = modes; m->suffix; m++) { igt_subtest_with_dynamic_f("fixed%s", m->suffix) { - igt_require(gem_has_lmem(fd)); for_each_ctx_engine(fd, ctx, e) { if (!gem_class_can_store_dword(fd, e->class)) continue; - igt_dynamic_f("%s", e->name) - run_test(fd, ctx, e->flags, m->mode); + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s-%s", e->name, sub_name) + run_test(fd, ctx, e->flags, m->mode, region); + } } } igt_subtest_with_dynamic_f("uncached%s", m->suffix) { - igt_require(!gem_has_lmem(fd)); for_each_ctx_engine(fd, ctx, e) { if (!gem_class_can_store_dword(fd, e->class)) continue; - igt_dynamic_f("%s", e->name) - run_test(fd, ctx, e->flags, m->mode | UNCACHED); + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s-%s", e->name, sub_name) + run_test(fd, ctx, e->flags, m->mode | UNCACHED, region); + } } } igt_subtest_with_dynamic_f("cached%s", m->suffix) { - igt_require(!gem_has_lmem(fd)); for_each_ctx_engine(fd, ctx, e) { if (!gem_class_can_store_dword(fd, e->class)) continue; - igt_dynamic_f("%s", e->name) - run_test(fd, ctx, e->flags, m->mode | CACHED); + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s-%s", e->name, sub_name) + run_test(fd, ctx, e->flags, m->mode | CACHED, region); + } } } } @@ -356,17 +431,49 @@ igt_main hang = igt_allow_hang(fd, 0, 0); } - igt_subtest("hang-S3") - run_test(fd, intel_ctx_0(fd), 0, SUSPEND | HANG); - igt_subtest("hang-S4") - run_test(fd, intel_ctx_0(fd), 0, HIBERNATE | HANG); + igt_subtest_with_dynamic("hang-S3") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, intel_ctx_0(fd), 0, SUSPEND | HANG, region); + free(sub_name); + } + } - igt_subtest("power-S0") - power_test(fd, intel_ctx_0(fd), 0, IDLE); - igt_subtest("power-S3") - power_test(fd, intel_ctx_0(fd), 0, SUSPEND); + igt_subtest_with_dynamic("hang-S4") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + run_test(fd, intel_ctx_0(fd), 0, HIBERNATE | HANG, region); + free(sub_name); + } + } + + igt_subtest_with_dynamic("power-S0") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + power_test(fd, intel_ctx_0(fd), 0, IDLE, region); + free(sub_name); + } + } + + igt_subtest_with_dynamic("power-S3") { + for_each_combination(regions, 1, set) { + sub_name = memregion_dynamic_subtest_name(regions); + region = igt_collection_get_value(regions, 0); + igt_dynamic_f("%s", sub_name) + power_test(fd, intel_ctx_0(fd), 0, SUSPEND, region); + free(sub_name); + } + } igt_fixture { + free(query_info); + igt_collection_destroy(set); igt_disallow_hang(fd, hang); intel_ctx_destroy(fd, ctx); close(fd); -- 2.32.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/i915/gem_exec_suspend: Add support for local memory 2021-10-12 5:01 [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_suspend: Add support for local memory sai.gowtham.ch @ 2021-10-12 5:47 ` Patchwork 2021-10-13 15:10 ` [igt-dev] [PATCH i-g-t] " Zbigniew Kempczyński 1 sibling, 0 replies; 3+ messages in thread From: Patchwork @ 2021-10-12 5:47 UTC (permalink / raw) To: sai.gowtham.ch; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 4641 bytes --] == Series Details == Series: tests/i915/gem_exec_suspend: Add support for local memory URL : https://patchwork.freedesktop.org/series/95706/ State : failure == Summary == CI Bug Log - changes from CI_DRM_10720 -> IGTPW_6309 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_6309 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_6309, 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_6309/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_6309: ### IGT changes ### #### Possible regressions #### * {igt@gem_exec_suspend@basic-s0@smem} (NEW): - fi-bdw-gvtdvm: NOTRUN -> [INCOMPLETE][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/fi-bdw-gvtdvm/igt@gem_exec_suspend@basic-s0@smem.html * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - fi-icl-y: [PASS][2] -> [INCOMPLETE][3] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10720/fi-icl-y/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/fi-icl-y/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html New tests --------- New tests have been introduced between CI_DRM_10720 and IGTPW_6309: ### New IGT tests (2) ### * igt@gem_exec_suspend@basic-s0@smem: - Statuses : 1 incomplete(s) 31 pass(s) - Exec time: [0.0, 20.39] s * igt@gem_exec_suspend@basic-s3@smem: - Statuses : 31 pass(s) - Exec time: [1.24, 13.60] s Known issues ------------ Here are the changes found in IGTPW_6309 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@amdgpu/amd_basic@cs-compute: - fi-elk-e7500: NOTRUN -> [SKIP][4] ([fdo#109271]) +49 similar issues [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/fi-elk-e7500/igt@amdgpu/amd_basic@cs-compute.html * igt@amdgpu/amd_basic@semaphore: - fi-bdw-5557u: NOTRUN -> [SKIP][5] ([fdo#109271]) +23 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/fi-bdw-5557u/igt@amdgpu/amd_basic@semaphore.html * igt@kms_flip@basic-flip-vs-modeset@c-dp1: - fi-cfl-8109u: [PASS][6] -> [FAIL][7] ([i915#4165]) +1 similar issue [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10720/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html * igt@kms_frontbuffer_tracking@basic: - fi-cml-u2: [PASS][8] -> [DMESG-WARN][9] ([i915#4269]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10720/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b: - fi-cfl-8109u: [PASS][10] -> [DMESG-WARN][11] ([i915#295]) +18 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10720/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295 [i915#4165]: https://gitlab.freedesktop.org/drm/intel/issues/4165 [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269 Participating hosts (35 -> 34) ------------------------------ Additional (1): fi-elk-e7500 Missing (2): fi-kbl-soraka fi-bsw-cyan Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6242 -> IGTPW_6309 CI-20190529: 20190529 CI_DRM_10720: 8a8d1f74b64edddbbb43fa4be5e438a12ba70707 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_6309: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/index.html IGT_6242: 721fd85ee95225ed5df322f7182bdfa9b86a3e68 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6309/index.html [-- Attachment #2: Type: text/html, Size: 5509 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_suspend: Add support for local memory 2021-10-12 5:01 [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_suspend: Add support for local memory sai.gowtham.ch 2021-10-12 5:47 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork @ 2021-10-13 15:10 ` Zbigniew Kempczyński 1 sibling, 0 replies; 3+ messages in thread From: Zbigniew Kempczyński @ 2021-10-13 15:10 UTC (permalink / raw) To: sai.gowtham.ch; +Cc: igt-dev On Tue, Oct 12, 2021 at 10:31:22AM +0530, sai.gowtham.ch@intel.com wrote: > From: Ch Sai Gowtham <sai.gowtham.ch@intel.com> > > Add support for local memory region (Device memory) > > Signed-off-by: Ch Sai Gowtham <sai.gowtham.ch@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > tests/i915/gem_exec_suspend.c | 187 ++++++++++++++++++++++++++-------- > 1 file changed, 147 insertions(+), 40 deletions(-) > > diff --git a/tests/i915/gem_exec_suspend.c b/tests/i915/gem_exec_suspend.c > index 887bb735..ac7e1b7c 100644 > --- a/tests/i915/gem_exec_suspend.c > +++ b/tests/i915/gem_exec_suspend.c > @@ -51,8 +51,19 @@ > #define CACHED (1<<8) > #define HANG (2<<8) > > +static uint32_t batch_create(int fd, uint32_t batch_size, uint32_t region) > +{ > + const uint32_t bbe = MI_BATCH_BUFFER_END; > + uint32_t handle; > + > + handle = gem_create_in_memory_regions(fd, batch_size, region); > + gem_write(fd, handle, 0, &bbe, sizeof(bbe)); > + > + return handle; > +} > + > static void run_test(int fd, const intel_ctx_t *ctx, > - unsigned engine, unsigned flags); > + unsigned engine, unsigned flags, uint32_t region); > > static void check_bo(int fd, uint32_t handle) > { > @@ -67,16 +78,15 @@ static void check_bo(int fd, uint32_t handle) > munmap(map, 4096); > } > > -static void test_all(int fd, const intel_ctx_t *ctx, unsigned flags) > +static void test_all(int fd, const intel_ctx_t *ctx, unsigned flags, uint32_t region) > { > - run_test(fd, ctx, ALL_ENGINES, flags & ~0xff); > + run_test(fd, ctx, ALL_ENGINES, flags & ~0xff, region); > } > > static void run_test(int fd, const intel_ctx_t *ctx, > - unsigned engine, unsigned flags) > + unsigned engine, unsigned flags, uint32_t region) > { > const unsigned int gen = intel_gen(intel_get_drm_devid(fd)); > - const uint32_t bbe = MI_BATCH_BUFFER_END; > struct drm_i915_gem_exec_object2 obj[2]; > struct drm_i915_gem_relocation_entry reloc; > struct drm_i915_gem_execbuffer2 execbuf; > @@ -100,7 +110,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, > > /* Before suspending, check normal operation */ > if (mode(flags) != NOSLEEP) > - test_all(fd, ctx, flags); > + test_all(fd, ctx, flags, region); > > gem_quiescent_gpu(fd); > > @@ -117,8 +127,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, > if (!gem_has_lmem(fd)) > gem_set_caching(fd, obj[0].handle, !!(flags & CACHED)); > obj[0].flags |= EXEC_OBJECT_WRITE; > - obj[1].handle = gem_create(fd, 4096); I think target buffer also should be created in specified region. Currently only batch is moving between regions but target is always taken from system memory. I don't think cross-regioning would be interesting so both objects created within same region would be enough. After resume we would see if target buffer contains what we expect of. > - gem_write(fd, obj[1].handle, 0, &bbe, sizeof(bbe)); > + obj[1].handle = batch_create(fd, 4096, region); > igt_require(__gem_execbuf(fd, &execbuf) == 0); > gem_close(fd, obj[1].handle); > > @@ -222,7 +231,7 @@ static void run_test(int fd, const intel_ctx_t *ctx, > > /* After resume, make sure it still works */ > if (mode(flags) != NOSLEEP) > - test_all(fd, ctx, flags); > + test_all(fd, ctx, flags, region); > } > > struct battery_sample { > @@ -250,7 +259,7 @@ static double d_time(const struct battery_sample *after, > } > > static void power_test(int i915, const intel_ctx_t *ctx, > - unsigned engine, unsigned flags) > + unsigned engine, unsigned flags, uint32_t region) > { > struct battery_sample before, after; > char *status; > @@ -270,7 +279,7 @@ static void power_test(int i915, const intel_ctx_t *ctx, > igt_set_autoresume_delay(5 * 60); /* 5 minutes; longer == more stable */ > > igt_assert(get_power(dir, &before)); > - run_test(i915, ctx, engine, flags); > + run_test(i915, ctx, engine, flags, region); > igt_assert(get_power(dir, &after)); > > igt_set_autoresume_delay(0); > @@ -296,6 +305,10 @@ igt_main > igt_hang_t hang; > const intel_ctx_t *ctx; > int fd; > + char *sub_name; > + uint32_t region; > + struct drm_i915_query_memory_regions *query_info; > + struct igt_collection *set, *regions; > > igt_fixture { > fd = drm_open_driver_master(DRIVER_INTEL); > @@ -304,49 +317,111 @@ igt_main > ctx = intel_ctx_create_all_physical(fd); > > igt_fork_hang_detector(fd); > + query_info = gem_get_query_memory_regions(fd); > + igt_assert(query_info); > + > + set = get_memory_region_set(query_info, > + I915_SYSTEM_MEMORY, > + I915_DEVICE_MEMORY); > + } > + > + igt_subtest_with_dynamic("basic") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, ctx, ALL_ENGINES, NOSLEEP, region); > + free(sub_name); > + } > } > > - igt_subtest("basic") > - run_test(fd, ctx, ALL_ENGINES, NOSLEEP); > - igt_subtest("basic-S0") > - run_test(fd, ctx, ALL_ENGINES, IDLE); > - igt_subtest("basic-S3-devices") > - run_test(fd, ctx, ALL_ENGINES, SUSPEND_DEVICES); > - igt_subtest("basic-S3") > - run_test(fd, ctx, ALL_ENGINES, SUSPEND); > - igt_subtest("basic-S4-devices") > - run_test(fd, ctx, ALL_ENGINES, HIBERNATE_DEVICES); > - igt_subtest("basic-S4") > - run_test(fd, ctx, ALL_ENGINES, HIBERNATE); > + igt_subtest_with_dynamic("basic-S0") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, ctx, ALL_ENGINES, IDLE, region); > + free(sub_name); > + } > + } > + > + igt_subtest_with_dynamic("basic-S3-devices") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, ctx, ALL_ENGINES, SUSPEND_DEVICES, region); > + free(sub_name); > + } > + } > + > + igt_subtest_with_dynamic("basic-S3") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, ctx, ALL_ENGINES, SUSPEND, region); > + free(sub_name); > + } > + } > + > + igt_subtest_with_dynamic("basic-S4-devices") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, ctx, ALL_ENGINES, HIBERNATE_DEVICES, region); > + free(sub_name); > + } > + } > + > + igt_subtest_with_dynamic("basic-S4") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, ctx, ALL_ENGINES, HIBERNATE, region); > + free(sub_name); > + } > + } > > for (m = modes; m->suffix; m++) { > igt_subtest_with_dynamic_f("fixed%s", m->suffix) { > - igt_require(gem_has_lmem(fd)); > for_each_ctx_engine(fd, ctx, e) { > if (!gem_class_can_store_dword(fd, e->class)) > continue; > - igt_dynamic_f("%s", e->name) > - run_test(fd, ctx, e->flags, m->mode); > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s-%s", e->name, sub_name) > + run_test(fd, ctx, e->flags, m->mode, region); > + } > } > } > > igt_subtest_with_dynamic_f("uncached%s", m->suffix) { > - igt_require(!gem_has_lmem(fd)); > for_each_ctx_engine(fd, ctx, e) { > if (!gem_class_can_store_dword(fd, e->class)) > continue; > - igt_dynamic_f("%s", e->name) > - run_test(fd, ctx, e->flags, m->mode | UNCACHED); > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s-%s", e->name, sub_name) > + run_test(fd, ctx, e->flags, m->mode | UNCACHED, region); > + } > } > } > > igt_subtest_with_dynamic_f("cached%s", m->suffix) { > - igt_require(!gem_has_lmem(fd)); > for_each_ctx_engine(fd, ctx, e) { > if (!gem_class_can_store_dword(fd, e->class)) > continue; > - igt_dynamic_f("%s", e->name) > - run_test(fd, ctx, e->flags, m->mode | CACHED); > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s-%s", e->name, sub_name) > + run_test(fd, ctx, e->flags, m->mode | CACHED, region); > + } Cached and uncached runs makes sense only on integrated cards where fixed on discrete. So those igt_require() properly detects runtime constraints to run the test and you should keep those in the code. -- Zbigniew > } > } > } > @@ -356,17 +431,49 @@ igt_main > hang = igt_allow_hang(fd, 0, 0); > } > > - igt_subtest("hang-S3") > - run_test(fd, intel_ctx_0(fd), 0, SUSPEND | HANG); > - igt_subtest("hang-S4") > - run_test(fd, intel_ctx_0(fd), 0, HIBERNATE | HANG); > + igt_subtest_with_dynamic("hang-S3") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, intel_ctx_0(fd), 0, SUSPEND | HANG, region); > + free(sub_name); > + } > + } > > - igt_subtest("power-S0") > - power_test(fd, intel_ctx_0(fd), 0, IDLE); > - igt_subtest("power-S3") > - power_test(fd, intel_ctx_0(fd), 0, SUSPEND); > + igt_subtest_with_dynamic("hang-S4") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + run_test(fd, intel_ctx_0(fd), 0, HIBERNATE | HANG, region); > + free(sub_name); > + } > + } > + > + igt_subtest_with_dynamic("power-S0") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + power_test(fd, intel_ctx_0(fd), 0, IDLE, region); > + free(sub_name); > + } > + } > + > + igt_subtest_with_dynamic("power-S3") { > + for_each_combination(regions, 1, set) { > + sub_name = memregion_dynamic_subtest_name(regions); > + region = igt_collection_get_value(regions, 0); > + igt_dynamic_f("%s", sub_name) > + power_test(fd, intel_ctx_0(fd), 0, SUSPEND, region); > + free(sub_name); > + } > + } > > igt_fixture { > + free(query_info); > + igt_collection_destroy(set); > igt_disallow_hang(fd, hang); > intel_ctx_destroy(fd, ctx); > close(fd); > -- > 2.32.0 > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-10-13 15:11 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-10-12 5:01 [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_suspend: Add support for local memory sai.gowtham.ch 2021-10-12 5:47 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork 2021-10-13 15:10 ` [igt-dev] [PATCH i-g-t] " Zbigniew Kempczyński
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.