* [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests
@ 2022-03-21 7:11 Zbigniew Kempczyński
2022-03-21 7:11 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_ccs: Check ctrl-surf-copy in new context Zbigniew Kempczyński
` (3 more replies)
0 siblings, 4 replies; 15+ messages in thread
From: Zbigniew Kempczyński @ 2022-03-21 7:11 UTC (permalink / raw)
To: igt-dev
Introduce two new subtests - ctrl-surf-copy-new-ctx + suspend-resume.
ctrl-surf-copy-new-ctx checks ccs data is binded to physical mem.
suspend-resume checks S0 suspend state.
v2 Adding separate allocator handle for new context (Zbigniew)
v3 Address review comments (Kamil)
Apoorva Singh (2):
tests/i915/gem_ccs: Check ctrl-surf-copy in new context
tests/i915/gem_ccs: Add suspend-resume subtest
tests/i915/gem_ccs.c | 94 +++++++++++++++++++++++++++++++++++++-------
1 file changed, 79 insertions(+), 15 deletions(-)
--
2.32.0
^ permalink raw reply [flat|nested] 15+ messages in thread* [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_ccs: Check ctrl-surf-copy in new context 2022-03-21 7:11 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński @ 2022-03-21 7:11 ` Zbigniew Kempczyński 2022-03-21 7:11 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński ` (2 subsequent siblings) 3 siblings, 0 replies; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-21 7:11 UTC (permalink / raw) To: igt-dev From: Apoorva Singh <apoorva1.singh@intel.com> Verify ccs data is binded to physical memory by using XY_CTRL_SURF_COPY_BLT command in separate context. v2: add separate allocator handle for new context (Zbigniew) Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_ccs.c | 50 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c index fdf1fe75f5..7e104f6ad8 100644 --- a/tests/i915/gem_ccs.c +++ b/tests/i915/gem_ccs.c @@ -39,6 +39,7 @@ struct test_config { bool compression; bool inplace; bool surfcopy; + bool new_ctx; }; static void set_object(struct blt_copy_object *obj, @@ -234,9 +235,8 @@ static void block_copy(int i915, const intel_ctx_t *ctx, const struct intel_execution_engine2 *e, uint32_t region1, uint32_t region2, - enum blt_tiling mid_tiling, bool compression, - bool inplace, - bool surfcopy) + enum blt_tiling mid_tiling, + const struct test_config *config) { struct blt_copy_data blt = {}; struct blt_block_copy_data_ext ext = {}, *pext = &ext; @@ -249,7 +249,7 @@ static void block_copy(int i915, uint32_t run_id = mid_tiling; uint32_t mid_region = region2, bb; uint32_t width = param.width, height = param.height; - enum blt_compression mid_compression = compression; + enum blt_compression mid_compression = config->compression; int mid_compression_format = param.compression_format; enum blt_compression_type comp_type = COMPRESSION_TYPE_3D; uint8_t uc_mocs = intel_get_uc_mocs(i915); @@ -293,8 +293,31 @@ static void block_copy(int i915, WRITE_PNG(i915, run_id, "src", &blt.src, width, height); WRITE_PNG(i915, run_id, "mid", &blt.dst, width, height); - if (surfcopy && pext) - surf_copy(i915, ctx, e, ahnd, src, mid, dst, run_id); + if (config->surfcopy && pext) { + const intel_ctx_t *surf_ctx = ctx; + uint64_t surf_ahnd = ahnd; + struct intel_execution_engine2 surf_e = *e; + + if (config->new_ctx) { + intel_ctx_cfg_t cfg = {}; + + cfg.num_engines = 1; + cfg.engines[0].engine_class = e->class; + cfg.engines[0].engine_instance = e->instance; + surf_ctx = intel_ctx_create(i915, &cfg); + surf_e.flags = 0; + ahnd = intel_allocator_open_full(i915, surf_ctx->id, 0, 0, + INTEL_ALLOCATOR_SIMPLE, + ALLOC_STRATEGY_LOW_TO_HIGH, 0); + } + + surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); + + if (surf_ctx != ctx) { + intel_ctx_destroy(i915, surf_ctx); + put_ahnd(surf_ahnd); + } + } memset(&blt, 0, sizeof(blt)); blt.color_depth = CD_32bit; @@ -303,7 +326,7 @@ static void block_copy(int i915, set_blt_object(&blt.dst, dst); set_object_ext(&ext.src, mid_compression_format, width, height, SURFACE_TYPE_2D); set_object_ext(&ext.dst, 0, width, height, SURFACE_TYPE_2D); - if (inplace) { + if (config->inplace) { set_object(&blt.dst, mid->handle, dst->size, mid->region, 0, T_LINEAR, COMPRESSION_DISABLED, comp_type); blt.dst.ptr = mid->ptr; @@ -367,10 +390,7 @@ static void block_copy_test(int i915, param.compression_format, regtxt) { block_copy(i915, ctx, e, region1, region2, - tiling, - config->compression, - config->inplace, - config->surfcopy); + tiling, config); } free(regtxt); } @@ -480,6 +500,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) block_copy_test(i915, &config, ctx, set); } + igt_subtest_with_dynamic("ctrl-surf-copy-new-ctx") { + struct test_config config = { .compression = true, + .surfcopy = true, + .new_ctx = true }; + + block_copy_test(i915, &config, ctx, set); + } + igt_fixture { igt_disallow_hang(i915, hang); close(i915); -- 2.32.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-21 7:11 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-21 7:11 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_ccs: Check ctrl-surf-copy in new context Zbigniew Kempczyński @ 2022-03-21 7:11 ` Zbigniew Kempczyński 2022-03-21 8:06 ` [igt-dev] ✓ Fi.CI.BAT: success for Add two gem-ccs subtests (rev3) Patchwork 2022-03-21 9:35 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 3 siblings, 0 replies; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-21 7:11 UTC (permalink / raw) To: igt-dev From: Apoorva Singh <apoorva1.singh@intel.com> Verify flatccs data won't be corrupted when device will be put to S0 (s2idle) state. v2: addressing review comments (Kamil) Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_ccs.c | 46 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c index 7e104f6ad8..1b58668ad0 100644 --- a/tests/i915/gem_ccs.c +++ b/tests/i915/gem_ccs.c @@ -4,6 +4,7 @@ */ #include <errno.h> +#include <glib.h> #include <sys/ioctl.h> #include <sys/time.h> #include <malloc.h> @@ -40,6 +41,7 @@ struct test_config { bool inplace; bool surfcopy; bool new_ctx; + bool suspend_resume; }; static void set_object(struct blt_copy_object *obj, @@ -162,22 +164,23 @@ static void surf_copy(int i915, const struct blt_copy_object *src, const struct blt_copy_object *mid, const struct blt_copy_object *dst, - int run_id) + int run_id, bool suspend_resume) { struct blt_copy_data blt = {}; struct blt_block_copy_data_ext ext = {}; struct blt_ctrl_surf_copy_data surf = {}; - uint32_t bb, ccs, *ccsmap; - uint64_t bb_size = 4096; - uint64_t ccssize = mid->size / CCS_RATIO; + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; uint32_t *ccscopy; uint8_t uc_mocs = intel_get_uc_mocs(i915); int result; igt_assert(mid->compression); ccscopy = (uint32_t *) malloc(ccssize); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); ccs = gem_create(i915, ccssize); + ccs2 = gem_create(i915, ccssize); surf.i915 = i915; surf.print_bb = param.print_bb; @@ -193,6 +196,29 @@ static void surf_copy(int i915, PROT_READ | PROT_WRITE); memcpy(ccscopy, ccsmap, ccssize); + if (suspend_resume) { + char *orig, *orig2, *newsum, *newsum2; + + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); + + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, + 0, DIRECT_ACCESS); + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); + gem_sync(i915, surf.dst.handle); + + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, + PROT_READ | PROT_WRITE); + newsum = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); + newsum2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + munmap(ccsmap2, ccssize); + igt_assert(!strcmp(orig, newsum)); + igt_assert(!strcmp(orig2, newsum2)); + } + /* corrupt ccs */ for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) ccsmap[i] = i; @@ -209,6 +235,7 @@ static void surf_copy(int i915, set_blt_object(&blt.dst, dst); set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); set_batch(&blt.bb, bb, bb_size, REGION_SMEM); blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); @@ -311,7 +338,8 @@ static void block_copy(int i915, ALLOC_STRATEGY_LOW_TO_HIGH, 0); } - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); + surf_copy(i915, surf_ctx, &surf_e, ahnd, src, mid, dst, run_id, + config->suspend_resume); if (surf_ctx != ctx) { intel_ctx_destroy(i915, surf_ctx); @@ -508,6 +536,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) block_copy_test(i915, &config, ctx, set); } + igt_subtest_with_dynamic("suspend-resume") { + struct test_config config = { .compression = true, + .surfcopy = true, + .suspend_resume = true }; + + block_copy_test(i915, &config, ctx, set); + } + igt_fixture { igt_disallow_hang(i915, hang); close(i915); -- 2.32.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Add two gem-ccs subtests (rev3) 2022-03-21 7:11 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-21 7:11 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_ccs: Check ctrl-surf-copy in new context Zbigniew Kempczyński 2022-03-21 7:11 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński @ 2022-03-21 8:06 ` Patchwork 2022-03-21 9:35 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork 3 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2022-03-21 8:06 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 7521 bytes --] == Series Details == Series: Add two gem-ccs subtests (rev3) URL : https://patchwork.freedesktop.org/series/101472/ State : success == Summary == CI Bug Log - changes from CI_DRM_11387 -> IGTPW_6803 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/index.html Participating hosts (43 -> 38) ------------------------------ Additional (1): bat-dg1-6 Missing (6): fi-kbl-soraka shard-tglu fi-bsw-cyan fi-pnv-d510 shard-rkl shard-dg1 Known issues ------------ Here are the changes found in IGTPW_6803 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_exec_gttfill@basic: - bat-dg1-6: NOTRUN -> [SKIP][1] ([i915#4086]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@gem_exec_gttfill@basic.html * igt@gem_mmap@basic: - bat-dg1-6: NOTRUN -> [SKIP][2] ([i915#4083]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@gem_mmap@basic.html * igt@gem_tiled_blits@basic: - bat-dg1-6: NOTRUN -> [SKIP][3] ([i915#4077]) +2 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@gem_tiled_blits@basic.html * igt@gem_tiled_pread_basic: - bat-dg1-6: NOTRUN -> [SKIP][4] ([i915#4079]) +1 similar issue [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@gem_tiled_pread_basic.html * igt@i915_pm_backlight@basic-brightness: - bat-dg1-6: NOTRUN -> [SKIP][5] ([i915#1155]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@i915_pm_backlight@basic-brightness.html * igt@i915_pm_rps@basic-api: - bat-dg1-6: NOTRUN -> [FAIL][6] ([i915#4032]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@i915_pm_rps@basic-api.html * igt@i915_selftest@live@hangcheck: - bat-dg1-6: NOTRUN -> [DMESG-FAIL][7] ([i915#4494] / [i915#4957]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@i915_selftest@live@hangcheck.html - fi-snb-2600: [PASS][8] -> [INCOMPLETE][9] ([i915#3921]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/fi-snb-2600/igt@i915_selftest@live@hangcheck.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/fi-snb-2600/igt@i915_selftest@live@hangcheck.html * igt@kms_addfb_basic@addfb25-x-tiled-legacy: - bat-dg1-6: NOTRUN -> [SKIP][10] ([i915#4212]) +7 similar issues [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-dg1-6: NOTRUN -> [SKIP][11] ([i915#4215]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_chamelium@hdmi-edid-read: - bat-dg1-6: NOTRUN -> [SKIP][12] ([fdo#111827]) +8 similar issues [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@kms_chamelium@hdmi-edid-read.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - bat-dg1-6: NOTRUN -> [SKIP][13] ([i915#4103] / [i915#4213]) +1 similar issue [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html * igt@kms_force_connector_basic@force-load-detect: - bat-dg1-6: NOTRUN -> [SKIP][14] ([fdo#109285]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_psr@cursor_plane_move: - bat-dg1-6: NOTRUN -> [SKIP][15] ([i915#1072] / [i915#4078]) +3 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@kms_psr@cursor_plane_move.html * igt@kms_setmode@basic-clone-single-crtc: - bat-dg1-6: NOTRUN -> [SKIP][16] ([i915#3555]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-flip: - bat-dg1-6: NOTRUN -> [SKIP][17] ([i915#3708]) +3 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@prime_vgem@basic-fence-flip.html * igt@prime_vgem@basic-gtt: - bat-dg1-6: NOTRUN -> [SKIP][18] ([i915#3708] / [i915#4077]) +1 similar issue [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@prime_vgem@basic-gtt.html * igt@prime_vgem@basic-userptr: - bat-dg1-6: NOTRUN -> [SKIP][19] ([i915#3708] / [i915#4873]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/bat-dg1-6/igt@prime_vgem@basic-userptr.html #### Possible fixes #### * igt@i915_selftest@live@perf: - {fi-tgl-dsi}: [DMESG-WARN][20] ([i915#2867]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/fi-tgl-dsi/igt@i915_selftest@live@perf.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/fi-tgl-dsi/igt@i915_selftest@live@perf.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155 [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921 [i915#4032]: https://gitlab.freedesktop.org/drm/intel/issues/4032 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4086]: https://gitlab.freedesktop.org/drm/intel/issues/4086 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494 [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873 [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957 [i915#5339]: https://gitlab.freedesktop.org/drm/intel/issues/5339 [i915#5342]: https://gitlab.freedesktop.org/drm/intel/issues/5342 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_6386 -> IGTPW_6803 CI-20190529: 20190529 CI_DRM_11387: 028e1cf1266d3cd2bc46952c6003fd3253a1cc4e @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_6803: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/index.html IGT_6386: 0fcd59ad25b2960c0b654f90dfe4dd9e7c7b874d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git == Testlist changes == +igt@gem_ccs@ctrl-surf-copy-new-ctx +igt@gem_ccs@suspend-resume == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/index.html [-- Attachment #2: Type: text/html, Size: 8603 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for Add two gem-ccs subtests (rev3) 2022-03-21 7:11 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński ` (2 preceding siblings ...) 2022-03-21 8:06 ` [igt-dev] ✓ Fi.CI.BAT: success for Add two gem-ccs subtests (rev3) Patchwork @ 2022-03-21 9:35 ` Patchwork 3 siblings, 0 replies; 15+ messages in thread From: Patchwork @ 2022-03-21 9:35 UTC (permalink / raw) To: Zbigniew Kempczyński; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 30246 bytes --] == Series Details == Series: Add two gem-ccs subtests (rev3) URL : https://patchwork.freedesktop.org/series/101472/ State : failure == Summary == CI Bug Log - changes from CI_DRM_11387_full -> IGTPW_6803_full ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_6803_full absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_6803_full, 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_6803/index.html Participating hosts (13 -> 9) ------------------------------ Missing (4): pig-skl-6260u pig-kbl-iris shard-dg1 pig-glk-j5005 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_6803_full: ### IGT changes ### #### Possible regressions #### * {igt@gem_ccs@ctrl-surf-copy-new-ctx} (NEW): - shard-iclb: NOTRUN -> [SKIP][1] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb8/igt@gem_ccs@ctrl-surf-copy-new-ctx.html - {shard-rkl}: NOTRUN -> [SKIP][2] [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-1/igt@gem_ccs@ctrl-surf-copy-new-ctx.html - shard-tglb: NOTRUN -> [SKIP][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb8/igt@gem_ccs@ctrl-surf-copy-new-ctx.html * igt@kms_plane_lowres@pipe-a-tiling-none: - shard-glk: [PASS][4] -> [FAIL][5] [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-glk4/igt@kms_plane_lowres@pipe-a-tiling-none.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-glk3/igt@kms_plane_lowres@pipe-a-tiling-none.html * igt@kms_plane_scaling@scaler-with-pixel-format-unity-scaling@pipe-b-edp-1-scaler-with-pixel-format: - shard-iclb: [PASS][6] -> [INCOMPLETE][7] [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-iclb4/igt@kms_plane_scaling@scaler-with-pixel-format-unity-scaling@pipe-b-edp-1-scaler-with-pixel-format.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb2/igt@kms_plane_scaling@scaler-with-pixel-format-unity-scaling@pipe-b-edp-1-scaler-with-pixel-format.html #### Warnings #### * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp: - shard-iclb: [SKIP][8] ([fdo#110892]) -> [INCOMPLETE][9] [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-iclb8/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb4/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * {igt@gem_ccs@suspend-resume}: - shard-iclb: NOTRUN -> [SKIP][10] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb4/igt@gem_ccs@suspend-resume.html - {shard-tglu}: NOTRUN -> [SKIP][11] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglu-3/igt@gem_ccs@suspend-resume.html - shard-tglb: NOTRUN -> [SKIP][12] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@gem_ccs@suspend-resume.html * igt@kms_color@pipe-c-legacy-gamma: - {shard-rkl}: [SKIP][13] ([i915#4070]) -> [SKIP][14] +2 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-1/igt@kms_color@pipe-c-legacy-gamma.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_color@pipe-c-legacy-gamma.html * igt@kms_cursor_crc@pipe-a-cursor-32x10-rapid-movement: - {shard-rkl}: [SKIP][15] ([fdo#112022] / [i915#4070]) -> [SKIP][16] +5 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-2/igt@kms_cursor_crc@pipe-a-cursor-32x10-rapid-movement.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_cursor_crc@pipe-a-cursor-32x10-rapid-movement.html * igt@kms_cursor_crc@pipe-a-cursor-32x32-sliding: - {shard-rkl}: [SKIP][17] ([i915#3319] / [i915#4070]) -> [SKIP][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-6/igt@kms_cursor_crc@pipe-a-cursor-32x32-sliding.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_cursor_crc@pipe-a-cursor-32x32-sliding.html * igt@kms_cursor_crc@pipe-b-cursor-256x85-rapid-movement: - {shard-rkl}: ([SKIP][19], [SKIP][20]) ([fdo#112022]) -> [SKIP][21] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-4/igt@kms_cursor_crc@pipe-b-cursor-256x85-rapid-movement.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-5/igt@kms_cursor_crc@pipe-b-cursor-256x85-rapid-movement.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_cursor_crc@pipe-b-cursor-256x85-rapid-movement.html * igt@kms_cursor_crc@pipe-c-cursor-dpms: - {shard-rkl}: [SKIP][22] ([fdo#112022]) -> [SKIP][23] +2 similar issues [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-5/igt@kms_cursor_crc@pipe-c-cursor-dpms.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_cursor_crc@pipe-c-cursor-dpms.html * igt@kms_cursor_edge_walk@pipe-a-128x128-left-edge: - {shard-rkl}: [SKIP][24] ([i915#1849] / [i915#4070] / [i915#4098]) -> [SKIP][25] [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-1/igt@kms_cursor_edge_walk@pipe-a-128x128-left-edge.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_cursor_edge_walk@pipe-a-128x128-left-edge.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render: - {shard-rkl}: ([SKIP][26], [SKIP][27]) ([i915#1849] / [i915#4098]) -> [SKIP][28] +2 similar issues [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt: - {shard-rkl}: [SKIP][29] ([i915#4098]) -> [SKIP][30] +3 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt: - {shard-rkl}: [SKIP][31] ([fdo#111825] / [i915#1825]) -> [SKIP][32] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt: - {shard-rkl}: [SKIP][33] ([i915#1849]) -> [SKIP][34] +17 similar issues [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-msflip-blt.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc: - {shard-rkl}: NOTRUN -> [SKIP][35] +27 similar issues [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc.html * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-a: - {shard-rkl}: [PASS][36] -> [SKIP][37] +5 similar issues [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-6/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-a.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-a.html * igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb: - {shard-rkl}: [SKIP][38] ([i915#1849] / [i915#4098]) -> [SKIP][39] +4 similar issues [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-5/igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb.html * igt@kms_plane_lowres@pipe-c-tiling-4: - {shard-rkl}: ([SKIP][40], [SKIP][41]) ([i915#4070] / [i915#4098]) -> [SKIP][42] [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-4/igt@kms_plane_lowres@pipe-c-tiling-4.html [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-rkl-2/igt@kms_plane_lowres@pipe-c-tiling-4.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-rkl-3/igt@kms_plane_lowres@pipe-c-tiling-4.html New tests --------- New tests have been introduced between CI_DRM_11387_full and IGTPW_6803_full: ### New IGT tests (1) ### * igt@gem_ccs@ctrl-surf-copy-new-ctx: - Statuses : 7 skip(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in IGTPW_6803_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@feature_discovery@psr2: - shard-iclb: [PASS][43] -> [SKIP][44] ([i915#658]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-iclb2/igt@feature_discovery@psr2.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb4/igt@feature_discovery@psr2.html * {igt@gem_ccs@ctrl-surf-copy-new-ctx} (NEW): - shard-glk: NOTRUN -> [SKIP][45] ([fdo#109271]) +72 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-glk1/igt@gem_ccs@ctrl-surf-copy-new-ctx.html * igt@gem_ctx_param@set-priority-not-supported: - shard-tglb: NOTRUN -> [SKIP][46] ([fdo#109314]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb5/igt@gem_ctx_param@set-priority-not-supported.html - shard-iclb: NOTRUN -> [SKIP][47] ([fdo#109314]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb8/igt@gem_ctx_param@set-priority-not-supported.html * igt@gem_ctx_persistence@engines-mixed: - shard-snb: NOTRUN -> [SKIP][48] ([fdo#109271] / [i915#1099]) +2 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-snb7/igt@gem_ctx_persistence@engines-mixed.html * igt@gem_ctx_sseu@invalid-args: - shard-tglb: NOTRUN -> [SKIP][49] ([i915#280]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@gem_ctx_sseu@invalid-args.html * igt@gem_exec_balancer@parallel-ordering: - shard-kbl: NOTRUN -> [DMESG-FAIL][50] ([i915#5076]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl3/igt@gem_exec_balancer@parallel-ordering.html * igt@gem_exec_endless@dispatch@bcs0: - shard-tglb: [PASS][51] -> [INCOMPLETE][52] ([i915#3778]) [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-tglb5/igt@gem_exec_endless@dispatch@bcs0.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb6/igt@gem_exec_endless@dispatch@bcs0.html * igt@gem_exec_fair@basic-flow@rcs0: - shard-tglb: NOTRUN -> [FAIL][53] ([i915#2842]) +1 similar issue [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html * igt@gem_exec_fair@basic-none-solo@rcs0: - shard-glk: NOTRUN -> [FAIL][54] ([i915#2842]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-glk2/igt@gem_exec_fair@basic-none-solo@rcs0.html * igt@gem_exec_fair@basic-none@vcs1: - shard-iclb: NOTRUN -> [FAIL][55] ([i915#2842]) +1 similar issue [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb4/igt@gem_exec_fair@basic-none@vcs1.html * igt@gem_exec_fair@basic-pace-share@rcs0: - shard-apl: [PASS][56] -> [FAIL][57] ([i915#2842]) [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-apl2/igt@gem_exec_fair@basic-pace-share@rcs0.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-apl6/igt@gem_exec_fair@basic-pace-share@rcs0.html * igt@gem_exec_fair@basic-pace@vecs0: - shard-kbl: NOTRUN -> [FAIL][58] ([i915#2842]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html * igt@gem_exec_fair@basic-throttle@rcs0: - shard-iclb: NOTRUN -> [FAIL][59] ([i915#2849]) [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb1/igt@gem_exec_fair@basic-throttle@rcs0.html * igt@gem_exec_flush@basic-batch-kernel-default-cmd: - shard-iclb: NOTRUN -> [SKIP][60] ([fdo#109313]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb3/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html - shard-tglb: NOTRUN -> [SKIP][61] ([fdo#109313]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb8/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html * igt@gem_exec_params@no-vebox: - shard-tglb: NOTRUN -> [SKIP][62] ([fdo#109283] / [i915#4877]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb7/igt@gem_exec_params@no-vebox.html * igt@gem_exec_params@rsvd2-dirt: - shard-tglb: NOTRUN -> [SKIP][63] ([fdo#109283]) [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb6/igt@gem_exec_params@rsvd2-dirt.html - shard-iclb: NOTRUN -> [SKIP][64] ([fdo#109283]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb6/igt@gem_exec_params@rsvd2-dirt.html * igt@gem_lmem_swapping@heavy-verify-multi: - shard-kbl: NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#4613]) [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl4/igt@gem_lmem_swapping@heavy-verify-multi.html * igt@gem_lmem_swapping@random-engines: - shard-apl: NOTRUN -> [SKIP][66] ([fdo#109271] / [i915#4613]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-apl7/igt@gem_lmem_swapping@random-engines.html * igt@gem_pwrite@basic-exhaustion: - shard-kbl: NOTRUN -> [WARN][67] ([i915#2658]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl6/igt@gem_pwrite@basic-exhaustion.html - shard-tglb: NOTRUN -> [WARN][68] ([i915#2658]) [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb3/igt@gem_pwrite@basic-exhaustion.html * igt@gem_pxp@create-regular-buffer: - shard-tglb: NOTRUN -> [SKIP][69] ([i915#4270]) +4 similar issues [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@gem_pxp@create-regular-buffer.html * igt@gem_pxp@reject-modify-context-protection-off-3: - shard-iclb: NOTRUN -> [SKIP][70] ([i915#4270]) +4 similar issues [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb6/igt@gem_pxp@reject-modify-context-protection-off-3.html * igt@gem_render_copy@yf-tiled-to-vebox-linear: - shard-iclb: NOTRUN -> [SKIP][71] ([i915#768]) +2 similar issues [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb7/igt@gem_render_copy@yf-tiled-to-vebox-linear.html * igt@gem_softpin@allocator-evict-all-engines: - shard-glk: [PASS][72] -> [FAIL][73] ([i915#4171]) [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-glk2/igt@gem_softpin@allocator-evict-all-engines.html [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-glk5/igt@gem_softpin@allocator-evict-all-engines.html * igt@gem_softpin@evict-snoop-interruptible: - shard-iclb: NOTRUN -> [SKIP][74] ([fdo#109312]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb7/igt@gem_softpin@evict-snoop-interruptible.html * igt@gem_userptr_blits@coherency-sync: - shard-iclb: NOTRUN -> [SKIP][75] ([fdo#109290]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb2/igt@gem_userptr_blits@coherency-sync.html * igt@gem_userptr_blits@dmabuf-sync: - shard-kbl: NOTRUN -> [SKIP][76] ([fdo#109271] / [i915#3323]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl4/igt@gem_userptr_blits@dmabuf-sync.html - shard-tglb: NOTRUN -> [SKIP][77] ([i915#3323]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb3/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@unsync-unmap-after-close: - shard-tglb: NOTRUN -> [SKIP][78] ([i915#3297]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb3/igt@gem_userptr_blits@unsync-unmap-after-close.html - shard-iclb: NOTRUN -> [SKIP][79] ([i915#3297]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb7/igt@gem_userptr_blits@unsync-unmap-after-close.html * igt@gem_workarounds@suspend-resume-fd: - shard-kbl: [PASS][80] -> [DMESG-WARN][81] ([i915#180]) +1 similar issue [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-kbl6/igt@gem_workarounds@suspend-resume-fd.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl7/igt@gem_workarounds@suspend-resume-fd.html * igt@gen3_render_mixed_blits: - shard-tglb: NOTRUN -> [SKIP][82] ([fdo#109289]) +1 similar issue [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb3/igt@gen3_render_mixed_blits.html * igt@gen7_exec_parse@oacontrol-tracking: - shard-iclb: NOTRUN -> [SKIP][83] ([fdo#109289]) +2 similar issues [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb5/igt@gen7_exec_parse@oacontrol-tracking.html * igt@gen9_exec_parse@allowed-all: - shard-iclb: NOTRUN -> [SKIP][84] ([i915#2856]) +1 similar issue [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb8/igt@gen9_exec_parse@allowed-all.html * igt@gen9_exec_parse@cmd-crossing-page: - shard-tglb: NOTRUN -> [SKIP][85] ([i915#2527] / [i915#2856]) +2 similar issues [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb8/igt@gen9_exec_parse@cmd-crossing-page.html * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp: - shard-kbl: NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#1937]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl4/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html - shard-apl: NOTRUN -> [SKIP][87] ([fdo#109271] / [i915#1937]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-apl8/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp.html * igt@i915_pm_rpm@modeset-non-lpsp-stress: - shard-iclb: NOTRUN -> [SKIP][88] ([fdo#110892]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb6/igt@i915_pm_rpm@modeset-non-lpsp-stress.html * igt@i915_pm_rpm@modeset-pc8-residency-stress: - shard-apl: NOTRUN -> [SKIP][89] ([fdo#109271]) +102 similar issues [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-apl7/igt@i915_pm_rpm@modeset-pc8-residency-stress.html - shard-tglb: NOTRUN -> [SKIP][90] ([fdo#109506] / [i915#2411]) [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb3/igt@i915_pm_rpm@modeset-pc8-residency-stress.html - shard-iclb: NOTRUN -> [SKIP][91] ([fdo#109293] / [fdo#109506]) [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb4/igt@i915_pm_rpm@modeset-pc8-residency-stress.html * igt@kms_big_fb@4-tiled-32bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][92] ([i915#5286]) +4 similar issues [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb3/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0: - shard-tglb: NOTRUN -> [SKIP][93] ([i915#5286]) +8 similar issues [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0.html * igt@kms_big_fb@linear-32bpp-rotate-180: - shard-glk: [PASS][94] -> [DMESG-WARN][95] ([i915#118]) +2 similar issues [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11387/shard-glk2/igt@kms_big_fb@linear-32bpp-rotate-180.html [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-glk9/igt@kms_big_fb@linear-32bpp-rotate-180.html * igt@kms_big_fb@linear-8bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][96] ([fdo#110725] / [fdo#111614]) +1 similar issue [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb7/igt@kms_big_fb@linear-8bpp-rotate-90.html * igt@kms_big_fb@x-tiled-8bpp-rotate-90: - shard-tglb: NOTRUN -> [SKIP][97] ([fdo#111614]) +2 similar issues [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb2/igt@kms_big_fb@x-tiled-8bpp-rotate-90.html * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip: - shard-kbl: NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#3777]) +3 similar issues [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html * igt@kms_big_fb@yf-tiled-64bpp-rotate-90: - shard-iclb: NOTRUN -> [SKIP][99] ([fdo#110723]) +2 similar issues [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb8/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html * igt@kms_big_fb@yf-tiled-8bpp-rotate-90: - shard-tglb: NOTRUN -> [SKIP][100] ([fdo#111615]) +8 similar issues [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc: - shard-iclb: NOTRUN -> [SKIP][101] ([fdo#109278] / [i915#3886]) +12 similar issues [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb3/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][102] ([i915#3689]) +3 similar issues [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs.html * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs_cc: - shard-kbl: NOTRUN -> [SKIP][103] ([fdo#109271] / [i915#3886]) +15 similar issues [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl4/igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs: - shard-tglb: NOTRUN -> [SKIP][104] ([fdo#111615] / [i915#3689]) +8 similar issues [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb2/igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs.html * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs: - shard-tglb: NOTRUN -> [SKIP][105] ([i915#3689] / [i915#3886]) +9 similar issues [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb7/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc: - shard-glk: NOTRUN -> [SKIP][106] ([fdo#109271] / [i915#3886]) +8 similar issues [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-glk8/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html - shard-apl: NOTRUN -> [SKIP][107] ([fdo#109271] / [i915#3886]) +7 similar issues [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-apl1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html * igt@kms_chamelium@hdmi-hpd-enable-disable-mode: - shard-iclb: NOTRUN -> [SKIP][108] ([fdo#109284] / [fdo#111827]) +12 similar issues [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb2/igt@kms_chamelium@hdmi-hpd-enable-disable-mode.html - shard-snb: NOTRUN -> [SKIP][109] ([fdo#109271] / [fdo#111827]) +4 similar issues [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-snb2/igt@kms_chamelium@hdmi-hpd-enable-disable-mode.html * igt@kms_chamelium@hdmi-hpd-storm: - shard-kbl: NOTRUN -> [SKIP][110] ([fdo#109271] / [fdo#111827]) +19 similar issues [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl7/igt@kms_chamelium@hdmi-hpd-storm.html * igt@kms_color@pipe-d-ctm-0-5: - shard-iclb: NOTRUN -> [SKIP][111] ([fdo#109278] / [i915#1149]) [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb4/igt@kms_color@pipe-d-ctm-0-5.html * igt@kms_color_chamelium@pipe-d-ctm-0-25: - shard-glk: NOTRUN -> [SKIP][112] ([fdo#109271] / [fdo#111827]) +4 similar issues [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-glk9/igt@kms_color_chamelium@pipe-d-ctm-0-25.html - shard-apl: NOTRUN -> [SKIP][113] ([fdo#109271] / [fdo#111827]) +5 similar issues [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-apl4/igt@kms_color_chamelium@pipe-d-ctm-0-25.html * igt@kms_color_chamelium@pipe-d-ctm-max: - shard-tglb: NOTRUN -> [SKIP][114] ([fdo#109284] / [fdo#111827]) +17 similar issues [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb6/igt@kms_color_chamelium@pipe-d-ctm-max.html * igt@kms_color_chamelium@pipe-d-ctm-negative: - shard-iclb: NOTRUN -> [SKIP][115] ([fdo#109278] / [fdo#109284] / [fdo#111827]) +3 similar issues [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb1/igt@kms_color_chamelium@pipe-d-ctm-negative.html * igt@kms_content_protection@atomic: - shard-kbl: NOTRUN -> [TIMEOUT][116] ([i915#1319]) +1 similar issue [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl1/igt@kms_content_protection@atomic.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-iclb: NOTRUN -> [SKIP][117] ([i915#3116]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb6/igt@kms_content_protection@dp-mst-lic-type-0.html - shard-tglb: NOTRUN -> [SKIP][118] ([i915#3116] / [i915#3299]) [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb7/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_content_protection@lic: - shard-apl: NOTRUN -> [TIMEOUT][119] ([i915#1319]) +1 similar issue [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-apl7/igt@kms_content_protection@lic.html - shard-iclb: NOTRUN -> [SKIP][120] ([fdo#109300] / [fdo#111066]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb1/igt@kms_content_protection@lic.html - shard-tglb: NOTRUN -> [SKIP][121] ([i915#1063]) +1 similar issue [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb2/igt@kms_content_protection@lic.html * igt@kms_cursor_crc@pipe-a-cursor-32x10-offscreen: - shard-tglb: NOTRUN -> [SKIP][122] ([i915#3359]) +8 similar issues [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb8/igt@kms_cursor_crc@pipe-a-cursor-32x10-offscreen.html * igt@kms_cursor_crc@pipe-a-cursor-512x512-offscreen: - shard-iclb: NOTRUN -> [SKIP][123] ([fdo#109278] / [fdo#109279]) +8 similar issues [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb5/igt@kms_cursor_crc@pipe-a-cursor-512x512-offscreen.html * igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen: - shard-tglb: NOTRUN -> [SKIP][124] ([i915#3319]) +1 similar issue [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html * igt@kms_cursor_crc@pipe-c-cursor-suspend: - shard-kbl: NOTRUN -> [DMESG-WARN][125] ([i915#180]) +3 similar issues [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html * igt@kms_cursor_crc@pipe-d-cursor-512x170-offscreen: - shard-tglb: NOTRUN -> [SKIP][126] ([fdo#109279] / [i915#3359]) +12 similar issues [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@kms_cursor_crc@pipe-d-cursor-512x170-offscreen.html * igt@kms_cursor_crc@pipe-d-cursor-suspend: - shard-kbl: NOTRUN -> [SKIP][127] ([fdo#109271]) +303 similar issues [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-kbl1/igt@kms_cursor_crc@pipe-d-cursor-suspend.html * igt@kms_cursor_legacy@cursora-vs-flipb-atomic: - shard-tglb: NOTRUN -> [SKIP][128] ([fdo#109274] / [fdo#111825]) +12 similar issues [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb1/igt@kms_cursor_legacy@cursora-vs-flipb-atomic.html * igt@kms_cursor_legacy@cursorb-vs-flipb-toggle: - shard-iclb: NOTRUN -> [SKIP][129] ([fdo#109274] / [fdo#109278]) +4 similar issues [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb6/igt@kms_cursor_legacy@cursorb-vs-flipb-toggle.html * igt@kms_draw_crc@draw-method-xrgb2101010-render-4tiled: - shard-tglb: NOTRUN -> [SKIP][130] ([i915#5287]) [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-tglb3/igt@kms_draw_crc@draw-method-xrgb2101010-render-4tiled.html - shard-iclb: NOTRUN -> [SKIP][131] ([i915#5287]) [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/shard-iclb4/igt@kms_draw_crc@draw-method-xrgb2101010-render-4tiled.html * igt@kms_dsc@basic-dsc-enable: - shard-iclb: == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6803/index.html [-- Attachment #2: Type: text/html, Size: 33710 bytes --] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests @ 2022-03-22 8:25 Zbigniew Kempczyński 2022-03-22 8:25 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-22 8:25 UTC (permalink / raw) To: igt-dev Introduce two new subtests - ctrl-surf-copy-new-ctx + suspend-resume. ctrl-surf-copy-new-ctx checks ccs data is binded to physical mem. suspend-resume checks S0 suspend state. v2 Adding separate allocator handle for new context (Zbigniew) v3 Address review comments (Kamil) v4 Remove memory leak (Kamil) v5 Add igt_describe (Kamil) v6 Fix incorrect ahnd usage - should be surf_ahnd (Kamil) Apoorva Singh (2): tests/i915/gem_ccs: Check ctrl-surf-copy in new context tests/i915/gem_ccs: Add suspend-resume subtest tests/i915/gem_ccs.c | 101 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 86 insertions(+), 15 deletions(-) -- 2.32.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-22 8:25 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński @ 2022-03-22 8:25 ` Zbigniew Kempczyński 2022-03-22 11:56 ` Kamil Konieczny 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-22 8:25 UTC (permalink / raw) To: igt-dev From: Apoorva Singh <apoorva1.singh@intel.com> Verify flatccs data won't be corrupted when device will be put to S0 (s2idle) state. v2: addressing review comments (Kamil) v3: fix memory leak (Kamil) Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_ccs.c | 51 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c index b697ea56f9..4ecb3e36ac 100644 --- a/tests/i915/gem_ccs.c +++ b/tests/i915/gem_ccs.c @@ -4,6 +4,7 @@ */ #include <errno.h> +#include <glib.h> #include <sys/ioctl.h> #include <sys/time.h> #include <malloc.h> @@ -40,6 +41,7 @@ struct test_config { bool inplace; bool surfcopy; bool new_ctx; + bool suspend_resume; }; static void set_object(struct blt_copy_object *obj, @@ -162,22 +164,23 @@ static void surf_copy(int i915, const struct blt_copy_object *src, const struct blt_copy_object *mid, const struct blt_copy_object *dst, - int run_id) + int run_id, bool suspend_resume) { struct blt_copy_data blt = {}; struct blt_block_copy_data_ext ext = {}; struct blt_ctrl_surf_copy_data surf = {}; - uint32_t bb, ccs, *ccsmap; - uint64_t bb_size = 4096; - uint64_t ccssize = mid->size / CCS_RATIO; + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; uint32_t *ccscopy; uint8_t uc_mocs = intel_get_uc_mocs(i915); int result; igt_assert(mid->compression); ccscopy = (uint32_t *) malloc(ccssize); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); ccs = gem_create(i915, ccssize); + ccs2 = gem_create(i915, ccssize); surf.i915 = i915; surf.print_bb = param.print_bb; @@ -193,6 +196,33 @@ static void surf_copy(int i915, PROT_READ | PROT_WRITE); memcpy(ccscopy, ccsmap, ccssize); + if (suspend_resume) { + char *orig, *orig2, *newsum, *newsum2; + + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); + + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, + 0, DIRECT_ACCESS); + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); + gem_sync(i915, surf.dst.handle); + + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, + PROT_READ | PROT_WRITE); + newsum = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); + newsum2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + munmap(ccsmap2, ccssize); + igt_assert(!strcmp(orig, newsum)); + igt_assert(!strcmp(orig2, newsum2)); + g_free(orig); + g_free(orig2); + g_free(newsum); + g_free(newsum2); + } + /* corrupt ccs */ for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) ccsmap[i] = i; @@ -209,6 +239,7 @@ static void surf_copy(int i915, set_blt_object(&blt.dst, dst); set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); set_batch(&blt.bb, bb, bb_size, REGION_SMEM); blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); @@ -311,7 +342,8 @@ static void block_copy(int i915, ALLOC_STRATEGY_LOW_TO_HIGH, 0); } - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); + surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id, + config->suspend_resume); if (surf_ctx != ctx) { intel_ctx_destroy(i915, surf_ctx); @@ -510,6 +542,15 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) block_copy_test(i915, &config, ctx, set); } + igt_describe("Check flatccs data persists after suspend / resume (S0)"); + igt_subtest_with_dynamic("suspend-resume") { + struct test_config config = { .compression = true, + .surfcopy = true, + .suspend_resume = true }; + + block_copy_test(i915, &config, ctx, set); + } + igt_fixture { igt_disallow_hang(i915, hang); close(i915); -- 2.32.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-22 8:25 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński @ 2022-03-22 11:56 ` Kamil Konieczny 0 siblings, 0 replies; 15+ messages in thread From: Kamil Konieczny @ 2022-03-22 11:56 UTC (permalink / raw) To: igt-dev Dnia 2022-03-22 at 09:25:18 +0100, Zbigniew Kempczyński napisał(a): > From: Apoorva Singh <apoorva1.singh@intel.com> > > Verify flatccs data won't be corrupted when device will be put > to S0 (s2idle) state. > > v2: addressing review comments (Kamil) > v3: fix memory leak (Kamil) > > Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > tests/i915/gem_ccs.c | 51 +++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 46 insertions(+), 5 deletions(-) > > diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c > index b697ea56f9..4ecb3e36ac 100644 > --- a/tests/i915/gem_ccs.c > +++ b/tests/i915/gem_ccs.c > @@ -4,6 +4,7 @@ > */ > > #include <errno.h> > +#include <glib.h> > #include <sys/ioctl.h> > #include <sys/time.h> > #include <malloc.h> > @@ -40,6 +41,7 @@ struct test_config { > bool inplace; > bool surfcopy; > bool new_ctx; > + bool suspend_resume; > }; > > static void set_object(struct blt_copy_object *obj, > @@ -162,22 +164,23 @@ static void surf_copy(int i915, > const struct blt_copy_object *src, > const struct blt_copy_object *mid, > const struct blt_copy_object *dst, > - int run_id) > + int run_id, bool suspend_resume) > { > struct blt_copy_data blt = {}; > struct blt_block_copy_data_ext ext = {}; > struct blt_ctrl_surf_copy_data surf = {}; > - uint32_t bb, ccs, *ccsmap; > - uint64_t bb_size = 4096; > - uint64_t ccssize = mid->size / CCS_RATIO; > + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; > + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; > uint32_t *ccscopy; > uint8_t uc_mocs = intel_get_uc_mocs(i915); > int result; > > igt_assert(mid->compression); > ccscopy = (uint32_t *) malloc(ccssize); > + bb_size = 4096; > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > ccs = gem_create(i915, ccssize); > + ccs2 = gem_create(i915, ccssize); > > surf.i915 = i915; > surf.print_bb = param.print_bb; > @@ -193,6 +196,33 @@ static void surf_copy(int i915, > PROT_READ | PROT_WRITE); > memcpy(ccscopy, ccsmap, ccssize); > > + if (suspend_resume) { > + char *orig, *orig2, *newsum, *newsum2; > + > + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); > + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); > + > + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, > + 0, DIRECT_ACCESS); > + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); > + gem_sync(i915, surf.dst.handle); > + > + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, > + PROT_READ | PROT_WRITE); > + newsum = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); > + newsum2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + munmap(ccsmap2, ccssize); > + igt_assert(!strcmp(orig, newsum)); > + igt_assert(!strcmp(orig2, newsum2)); > + g_free(orig); > + g_free(orig2); > + g_free(newsum); > + g_free(newsum2); > + } > + > /* corrupt ccs */ > for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) > ccsmap[i] = i; > @@ -209,6 +239,7 @@ static void surf_copy(int i915, > set_blt_object(&blt.dst, dst); > set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); > set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); > + bb_size = 4096; > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > set_batch(&blt.bb, bb, bb_size, REGION_SMEM); > blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); > @@ -311,7 +342,8 @@ static void block_copy(int i915, > ALLOC_STRATEGY_LOW_TO_HIGH, 0); > } > > - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); > + surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id, > + config->suspend_resume); > > if (surf_ctx != ctx) { > intel_ctx_destroy(i915, surf_ctx); > @@ -510,6 +542,15 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) > block_copy_test(i915, &config, ctx, set); > } > > + igt_describe("Check flatccs data persists after suspend / resume (S0)"); > + igt_subtest_with_dynamic("suspend-resume") { > + struct test_config config = { .compression = true, > + .surfcopy = true, > + .suspend_resume = true }; > + > + block_copy_test(i915, &config, ctx, set); > + } > + > igt_fixture { > igt_disallow_hang(i915, hang); > close(i915); > -- > 2.32.0 > Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com> -- Kamil ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests @ 2022-03-22 6:59 Zbigniew Kempczyński 2022-03-22 6:59 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-22 6:59 UTC (permalink / raw) To: igt-dev Introduce two new subtests - ctrl-surf-copy-new-ctx + suspend-resume. ctrl-surf-copy-new-ctx checks ccs data is binded to physical mem. suspend-resume checks S0 suspend state. v2 Adding separate allocator handle for new context (Zbigniew) v3 Address review comments (Kamil) v4 Remove memory leak (Kamil) v5 Add igt_describe (Kamil) Apoorva Singh (2): tests/i915/gem_ccs: Check ctrl-surf-copy in new context tests/i915/gem_ccs: Add suspend-resume subtest tests/i915/gem_ccs.c | 101 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 86 insertions(+), 15 deletions(-) -- 2.32.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-22 6:59 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński @ 2022-03-22 6:59 ` Zbigniew Kempczyński 0 siblings, 0 replies; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-22 6:59 UTC (permalink / raw) To: igt-dev From: Apoorva Singh <apoorva1.singh@intel.com> Verify flatccs data won't be corrupted when device will be put to S0 (s2idle) state. v2: addressing review comments (Kamil) v3: fix memory leak (Kamil) Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_ccs.c | 51 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c index 28711bdc59..2747983925 100644 --- a/tests/i915/gem_ccs.c +++ b/tests/i915/gem_ccs.c @@ -4,6 +4,7 @@ */ #include <errno.h> +#include <glib.h> #include <sys/ioctl.h> #include <sys/time.h> #include <malloc.h> @@ -40,6 +41,7 @@ struct test_config { bool inplace; bool surfcopy; bool new_ctx; + bool suspend_resume; }; static void set_object(struct blt_copy_object *obj, @@ -162,22 +164,23 @@ static void surf_copy(int i915, const struct blt_copy_object *src, const struct blt_copy_object *mid, const struct blt_copy_object *dst, - int run_id) + int run_id, bool suspend_resume) { struct blt_copy_data blt = {}; struct blt_block_copy_data_ext ext = {}; struct blt_ctrl_surf_copy_data surf = {}; - uint32_t bb, ccs, *ccsmap; - uint64_t bb_size = 4096; - uint64_t ccssize = mid->size / CCS_RATIO; + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; uint32_t *ccscopy; uint8_t uc_mocs = intel_get_uc_mocs(i915); int result; igt_assert(mid->compression); ccscopy = (uint32_t *) malloc(ccssize); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); ccs = gem_create(i915, ccssize); + ccs2 = gem_create(i915, ccssize); surf.i915 = i915; surf.print_bb = param.print_bb; @@ -193,6 +196,33 @@ static void surf_copy(int i915, PROT_READ | PROT_WRITE); memcpy(ccscopy, ccsmap, ccssize); + if (suspend_resume) { + char *orig, *orig2, *newsum, *newsum2; + + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); + + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, + 0, DIRECT_ACCESS); + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); + gem_sync(i915, surf.dst.handle); + + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, + PROT_READ | PROT_WRITE); + newsum = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); + newsum2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + munmap(ccsmap2, ccssize); + igt_assert(!strcmp(orig, newsum)); + igt_assert(!strcmp(orig2, newsum2)); + g_free(orig); + g_free(orig2); + g_free(newsum); + g_free(newsum2); + } + /* corrupt ccs */ for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) ccsmap[i] = i; @@ -209,6 +239,7 @@ static void surf_copy(int i915, set_blt_object(&blt.dst, dst); set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); set_batch(&blt.bb, bb, bb_size, REGION_SMEM); blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); @@ -311,7 +342,8 @@ static void block_copy(int i915, ALLOC_STRATEGY_LOW_TO_HIGH, 0); } - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); + surf_copy(i915, surf_ctx, &surf_e, ahnd, src, mid, dst, run_id, + config->suspend_resume); if (surf_ctx != ctx) { intel_ctx_destroy(i915, surf_ctx); @@ -510,6 +542,15 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) block_copy_test(i915, &config, ctx, set); } + igt_describe("Check flatccs data persists after suspend / resume (S0)"); + igt_subtest_with_dynamic("suspend-resume") { + struct test_config config = { .compression = true, + .surfcopy = true, + .suspend_resume = true }; + + block_copy_test(i915, &config, ctx, set); + } + igt_fixture { igt_disallow_hang(i915, hang); close(i915); -- 2.32.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests @ 2022-03-21 11:11 Zbigniew Kempczyński 2022-03-21 11:11 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-21 11:11 UTC (permalink / raw) To: igt-dev Introduce two new subtests - ctrl-surf-copy-new-ctx + suspend-resume. ctrl-surf-copy-new-ctx checks ccs data is binded to physical mem. suspend-resume checks S0 suspend state. v2 Adding separate allocator handle for new context (Zbigniew) v3 Address review comments (Kamil) v4 Remove memory leak (Kamil) Apoorva Singh (2): tests/i915/gem_ccs: Check ctrl-surf-copy in new context tests/i915/gem_ccs: Add suspend-resume subtest tests/i915/gem_ccs.c | 98 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 83 insertions(+), 15 deletions(-) -- 2.32.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-21 11:11 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński @ 2022-03-21 11:11 ` Zbigniew Kempczyński 2022-03-21 16:04 ` Kamil Konieczny 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-21 11:11 UTC (permalink / raw) To: igt-dev From: Apoorva Singh <apoorva1.singh@intel.com> Verify flatccs data won't be corrupted when device will be put to S0 (s2idle) state. v2: addressing review comments (Kamil) v3: fix memory leak (Kamil) Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_ccs.c | 50 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c index 7e104f6ad8..1f8f98ce62 100644 --- a/tests/i915/gem_ccs.c +++ b/tests/i915/gem_ccs.c @@ -4,6 +4,7 @@ */ #include <errno.h> +#include <glib.h> #include <sys/ioctl.h> #include <sys/time.h> #include <malloc.h> @@ -40,6 +41,7 @@ struct test_config { bool inplace; bool surfcopy; bool new_ctx; + bool suspend_resume; }; static void set_object(struct blt_copy_object *obj, @@ -162,22 +164,23 @@ static void surf_copy(int i915, const struct blt_copy_object *src, const struct blt_copy_object *mid, const struct blt_copy_object *dst, - int run_id) + int run_id, bool suspend_resume) { struct blt_copy_data blt = {}; struct blt_block_copy_data_ext ext = {}; struct blt_ctrl_surf_copy_data surf = {}; - uint32_t bb, ccs, *ccsmap; - uint64_t bb_size = 4096; - uint64_t ccssize = mid->size / CCS_RATIO; + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; uint32_t *ccscopy; uint8_t uc_mocs = intel_get_uc_mocs(i915); int result; igt_assert(mid->compression); ccscopy = (uint32_t *) malloc(ccssize); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); ccs = gem_create(i915, ccssize); + ccs2 = gem_create(i915, ccssize); surf.i915 = i915; surf.print_bb = param.print_bb; @@ -193,6 +196,33 @@ static void surf_copy(int i915, PROT_READ | PROT_WRITE); memcpy(ccscopy, ccsmap, ccssize); + if (suspend_resume) { + char *orig, *orig2, *newsum, *newsum2; + + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); + + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, + 0, DIRECT_ACCESS); + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); + gem_sync(i915, surf.dst.handle); + + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, + PROT_READ | PROT_WRITE); + newsum = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); + newsum2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + munmap(ccsmap2, ccssize); + igt_assert(!strcmp(orig, newsum)); + igt_assert(!strcmp(orig2, newsum2)); + g_free(orig); + g_free(orig2); + g_free(newsum); + g_free(newsum2); + } + /* corrupt ccs */ for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) ccsmap[i] = i; @@ -209,6 +239,7 @@ static void surf_copy(int i915, set_blt_object(&blt.dst, dst); set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); set_batch(&blt.bb, bb, bb_size, REGION_SMEM); blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); @@ -311,7 +342,8 @@ static void block_copy(int i915, ALLOC_STRATEGY_LOW_TO_HIGH, 0); } - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); + surf_copy(i915, surf_ctx, &surf_e, ahnd, src, mid, dst, run_id, + config->suspend_resume); if (surf_ctx != ctx) { intel_ctx_destroy(i915, surf_ctx); @@ -508,6 +540,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) block_copy_test(i915, &config, ctx, set); } + igt_subtest_with_dynamic("suspend-resume") { + struct test_config config = { .compression = true, + .surfcopy = true, + .suspend_resume = true }; + + block_copy_test(i915, &config, ctx, set); + } + igt_fixture { igt_disallow_hang(i915, hang); close(i915); -- 2.32.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-21 11:11 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński @ 2022-03-21 16:04 ` Kamil Konieczny 0 siblings, 0 replies; 15+ messages in thread From: Kamil Konieczny @ 2022-03-21 16:04 UTC (permalink / raw) To: igt-dev Hi, only two comments, see below. Dnia 2022-03-21 at 12:11:30 +0100, Zbigniew Kempczyński napisał(a): > From: Apoorva Singh <apoorva1.singh@intel.com> > > Verify flatccs data won't be corrupted when device will be put > to S0 (s2idle) state. > > v2: addressing review comments (Kamil) > v3: fix memory leak (Kamil) > > Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > tests/i915/gem_ccs.c | 50 +++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 45 insertions(+), 5 deletions(-) > > diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c > index 7e104f6ad8..1f8f98ce62 100644 > --- a/tests/i915/gem_ccs.c > +++ b/tests/i915/gem_ccs.c > @@ -4,6 +4,7 @@ > */ > > #include <errno.h> > +#include <glib.h> > #include <sys/ioctl.h> > #include <sys/time.h> > #include <malloc.h> > @@ -40,6 +41,7 @@ struct test_config { > bool inplace; > bool surfcopy; > bool new_ctx; > + bool suspend_resume; > }; > > static void set_object(struct blt_copy_object *obj, > @@ -162,22 +164,23 @@ static void surf_copy(int i915, > const struct blt_copy_object *src, > const struct blt_copy_object *mid, > const struct blt_copy_object *dst, > - int run_id) > + int run_id, bool suspend_resume) > { > struct blt_copy_data blt = {}; > struct blt_block_copy_data_ext ext = {}; > struct blt_ctrl_surf_copy_data surf = {}; > - uint32_t bb, ccs, *ccsmap; > - uint64_t bb_size = 4096; > - uint64_t ccssize = mid->size / CCS_RATIO; > + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; > + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; > uint32_t *ccscopy; > uint8_t uc_mocs = intel_get_uc_mocs(i915); > int result; > > igt_assert(mid->compression); > ccscopy = (uint32_t *) malloc(ccssize); > + bb_size = 4096; > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > ccs = gem_create(i915, ccssize); > + ccs2 = gem_create(i915, ccssize); > > surf.i915 = i915; > surf.print_bb = param.print_bb; > @@ -193,6 +196,33 @@ static void surf_copy(int i915, > PROT_READ | PROT_WRITE); > memcpy(ccscopy, ccsmap, ccssize); > > + if (suspend_resume) { > + char *orig, *orig2, *newsum, *newsum2; > + > + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); > + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); > + > + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, > + 0, DIRECT_ACCESS); > + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); > + gem_sync(i915, surf.dst.handle); > + > + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, > + PROT_READ | PROT_WRITE); > + newsum = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); > + newsum2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + munmap(ccsmap2, ccssize); > + igt_assert(!strcmp(orig, newsum)); > + igt_assert(!strcmp(orig2, newsum2)); > + g_free(orig); > + g_free(orig2); > + g_free(newsum); > + g_free(newsum2); > + } > + > /* corrupt ccs */ > for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) > ccsmap[i] = i; > @@ -209,6 +239,7 @@ static void surf_copy(int i915, > set_blt_object(&blt.dst, dst); > set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); > set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); > + bb_size = 4096; > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > set_batch(&blt.bb, bb, bb_size, REGION_SMEM); > blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); > @@ -311,7 +342,8 @@ static void block_copy(int i915, > ALLOC_STRATEGY_LOW_TO_HIGH, 0); > } > > - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); > + surf_copy(i915, surf_ctx, &surf_e, ahnd, src, mid, dst, run_id, -------------------------------------------------- ^ imho this change to ahand should be in 1/2, > + config->suspend_resume); so the only change will be adding suspend_resume option. > > if (surf_ctx != ctx) { > intel_ctx_destroy(i915, surf_ctx); > @@ -508,6 +540,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) > block_copy_test(i915, &config, ctx, set); > } > Add description to new test. > + igt_subtest_with_dynamic("suspend-resume") { > + struct test_config config = { .compression = true, > + .surfcopy = true, > + .suspend_resume = true }; > + > + block_copy_test(i915, &config, ctx, set); > + } > + > igt_fixture { > igt_disallow_hang(i915, hang); > close(i915); > -- > 2.32.0 > Regards, Kamil ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests @ 2022-03-18 7:30 Zbigniew Kempczyński 2022-03-18 7:30 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-18 7:30 UTC (permalink / raw) To: igt-dev Introduce two new subtests - ctrl-surf-copy-new-ctx + suspend-resume. ctrl-surf-copy-new-ctx checks ccs data is binded to physical mem. suspend-resume checks S0 suspend state. v2 Adding separate allocator handle for new context (Zbigniew) Apoorva Singh (2): tests/i915/gem_ccs: Check ctrl-surf-copy in new context tests/i915/gem_ccs: Add suspend-resume subtest tests/i915/gem_ccs.c | 93 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 78 insertions(+), 15 deletions(-) -- 2.32.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-18 7:30 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński @ 2022-03-18 7:30 ` Zbigniew Kempczyński 2022-03-18 10:29 ` Kamil Konieczny 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-18 7:30 UTC (permalink / raw) To: igt-dev From: Apoorva Singh <apoorva1.singh@intel.com> Verify flatccs data won't be corrupted when device will be put to S0 (s2idle) state. Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_ccs.c | 45 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c index 7e104f6ad8..eaa8e043b0 100644 --- a/tests/i915/gem_ccs.c +++ b/tests/i915/gem_ccs.c @@ -4,6 +4,7 @@ */ #include <errno.h> +#include <glib.h> #include <sys/ioctl.h> #include <sys/time.h> #include <malloc.h> @@ -40,6 +41,7 @@ struct test_config { bool inplace; bool surfcopy; bool new_ctx; + bool suspend_resume; }; static void set_object(struct blt_copy_object *obj, @@ -162,22 +164,24 @@ static void surf_copy(int i915, const struct blt_copy_object *src, const struct blt_copy_object *mid, const struct blt_copy_object *dst, - int run_id) + int run_id, bool suspend_resume) { struct blt_copy_data blt = {}; struct blt_block_copy_data_ext ext = {}; struct blt_ctrl_surf_copy_data surf = {}; - uint32_t bb, ccs, *ccsmap; - uint64_t bb_size = 4096; - uint64_t ccssize = mid->size / CCS_RATIO; + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; uint32_t *ccscopy; uint8_t uc_mocs = intel_get_uc_mocs(i915); int result; + char *orig, *orig2, *new, *new2; igt_assert(mid->compression); ccscopy = (uint32_t *) malloc(ccssize); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); ccs = gem_create(i915, ccssize); + ccs2 = gem_create(i915, ccssize); surf.i915 = i915; surf.print_bb = param.print_bb; @@ -193,6 +197,27 @@ static void surf_copy(int i915, PROT_READ | PROT_WRITE); memcpy(ccscopy, ccsmap, ccssize); + if (suspend_resume) { + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); + + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, + 0, DIRECT_ACCESS); + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); + gem_sync(i915, surf.dst.handle); + + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, + PROT_READ | PROT_WRITE); + new = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); + new2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_assert(!strcmp(orig, new)); + igt_assert(!strcmp(orig2, new2)); + munmap(ccsmap2, ccssize); + } + /* corrupt ccs */ for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) ccsmap[i] = i; @@ -209,6 +234,7 @@ static void surf_copy(int i915, set_blt_object(&blt.dst, dst); set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); set_batch(&blt.bb, bb, bb_size, REGION_SMEM); blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); @@ -311,7 +337,8 @@ static void block_copy(int i915, ALLOC_STRATEGY_LOW_TO_HIGH, 0); } - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); + surf_copy(i915, surf_ctx, &surf_e, ahnd, src, mid, dst, run_id, + config->suspend_resume); if (surf_ctx != ctx) { intel_ctx_destroy(i915, surf_ctx); @@ -508,6 +535,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) block_copy_test(i915, &config, ctx, set); } + igt_subtest_with_dynamic("suspend-resume") { + struct test_config config = { .compression = true, + .surfcopy = true, + .suspend_resume = true }; + + block_copy_test(i915, &config, ctx, set); + } + igt_fixture { igt_disallow_hang(i915, hang); close(i915); -- 2.32.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-18 7:30 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński @ 2022-03-18 10:29 ` Kamil Konieczny 2022-03-21 6:18 ` Zbigniew Kempczyński 0 siblings, 1 reply; 15+ messages in thread From: Kamil Konieczny @ 2022-03-18 10:29 UTC (permalink / raw) To: igt-dev Hi, Dnia 2022-03-18 at 08:30:18 +0100, Zbigniew Kempczyński napisał(a): > From: Apoorva Singh <apoorva1.singh@intel.com> > > Verify flatccs data won't be corrupted when device will be put > to S0 (s2idle) state. > > Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > --- > tests/i915/gem_ccs.c | 45 +++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 40 insertions(+), 5 deletions(-) > > diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c > index 7e104f6ad8..eaa8e043b0 100644 > --- a/tests/i915/gem_ccs.c > +++ b/tests/i915/gem_ccs.c > @@ -4,6 +4,7 @@ > */ > > #include <errno.h> > +#include <glib.h> > #include <sys/ioctl.h> > #include <sys/time.h> > #include <malloc.h> > @@ -40,6 +41,7 @@ struct test_config { > bool inplace; > bool surfcopy; > bool new_ctx; > + bool suspend_resume; > }; > > static void set_object(struct blt_copy_object *obj, > @@ -162,22 +164,24 @@ static void surf_copy(int i915, > const struct blt_copy_object *src, > const struct blt_copy_object *mid, > const struct blt_copy_object *dst, > - int run_id) > + int run_id, bool suspend_resume) > { > struct blt_copy_data blt = {}; > struct blt_block_copy_data_ext ext = {}; > struct blt_ctrl_surf_copy_data surf = {}; > - uint32_t bb, ccs, *ccsmap; > - uint64_t bb_size = 4096; Please keep it here so number of changes will be lower. > - uint64_t ccssize = mid->size / CCS_RATIO; > + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; > + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; No need to move bb_size here. > uint32_t *ccscopy; > uint8_t uc_mocs = intel_get_uc_mocs(i915); > int result; > + char *orig, *orig2, *new, *new2; These are used only in suspend_resume block, so move it there. > > igt_assert(mid->compression); > ccscopy = (uint32_t *) malloc(ccssize); > + bb_size = 4096; May be removed (if you keep it above). > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > ccs = gem_create(i915, ccssize); > + ccs2 = gem_create(i915, ccssize); > > surf.i915 = i915; > surf.print_bb = param.print_bb; > @@ -193,6 +197,27 @@ static void surf_copy(int i915, > PROT_READ | PROT_WRITE); > memcpy(ccscopy, ccsmap, ccssize); > > + if (suspend_resume) { > + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); > + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); > + > + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, > + 0, DIRECT_ACCESS); > + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); > + gem_sync(i915, surf.dst.handle); > + > + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, > + PROT_READ | PROT_WRITE); > + new = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); > + new2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + igt_assert(!strcmp(orig, new)); > + igt_assert(!strcmp(orig2, new2)); May you rename new and new2 into something meaningfull ? Like newsum_ccs, newsum_ctrl ? It can help if assert triggers. Checksums are pointers allocated by g_compute_checksum so they need to be free after use. > + munmap(ccsmap2, ccssize); Move this before two asserts. > + } > + > /* corrupt ccs */ > for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) > ccsmap[i] = i; > @@ -209,6 +234,7 @@ static void surf_copy(int i915, > set_blt_object(&blt.dst, dst); > set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); > set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); > + bb_size = 4096; Looks strange here, remove this. > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > set_batch(&blt.bb, bb, bb_size, REGION_SMEM); > blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); > @@ -311,7 +337,8 @@ static void block_copy(int i915, > ALLOC_STRATEGY_LOW_TO_HIGH, 0); > } > > - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); > + surf_copy(i915, surf_ctx, &surf_e, ahnd, src, mid, dst, run_id, This should be in first patch ? Regards, Kamil > + config->suspend_resume); > > if (surf_ctx != ctx) { > intel_ctx_destroy(i915, surf_ctx); > @@ -508,6 +535,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) > block_copy_test(i915, &config, ctx, set); > } > > + igt_subtest_with_dynamic("suspend-resume") { > + struct test_config config = { .compression = true, > + .surfcopy = true, > + .suspend_resume = true }; > + > + block_copy_test(i915, &config, ctx, set); > + } > + > igt_fixture { > igt_disallow_hang(i915, hang); > close(i915); > -- > 2.32.0 > ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-18 10:29 ` Kamil Konieczny @ 2022-03-21 6:18 ` Zbigniew Kempczyński 0 siblings, 0 replies; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-21 6:18 UTC (permalink / raw) To: Kamil Konieczny, igt-dev, Apoorva Singh On Fri, Mar 18, 2022 at 11:29:53AM +0100, Kamil Konieczny wrote: > Hi, > > Dnia 2022-03-18 at 08:30:18 +0100, Zbigniew Kempczyński napisał(a): > > From: Apoorva Singh <apoorva1.singh@intel.com> > > > > Verify flatccs data won't be corrupted when device will be put > > to S0 (s2idle) state. > > > > Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> > > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > > --- > > tests/i915/gem_ccs.c | 45 +++++++++++++++++++++++++++++++++++++++----- > > 1 file changed, 40 insertions(+), 5 deletions(-) > > > > diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c > > index 7e104f6ad8..eaa8e043b0 100644 > > --- a/tests/i915/gem_ccs.c > > +++ b/tests/i915/gem_ccs.c > > @@ -4,6 +4,7 @@ > > */ > > > > #include <errno.h> > > +#include <glib.h> > > #include <sys/ioctl.h> > > #include <sys/time.h> > > #include <malloc.h> > > @@ -40,6 +41,7 @@ struct test_config { > > bool inplace; > > bool surfcopy; > > bool new_ctx; > > + bool suspend_resume; > > }; > > > > static void set_object(struct blt_copy_object *obj, > > @@ -162,22 +164,24 @@ static void surf_copy(int i915, > > const struct blt_copy_object *src, > > const struct blt_copy_object *mid, > > const struct blt_copy_object *dst, > > - int run_id) > > + int run_id, bool suspend_resume) > > { > > struct blt_copy_data blt = {}; > > struct blt_block_copy_data_ext ext = {}; > > struct blt_ctrl_surf_copy_data surf = {}; > > - uint32_t bb, ccs, *ccsmap; > > - uint64_t bb_size = 4096; > > Please keep it here so number of changes will be lower. > > > - uint64_t ccssize = mid->size / CCS_RATIO; > > + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; > > + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; > > No need to move bb_size here. > > > uint32_t *ccscopy; > > uint8_t uc_mocs = intel_get_uc_mocs(i915); > > int result; > > + char *orig, *orig2, *new, *new2; > > These are used only in suspend_resume block, so move it there. Ack, makes sense. > > > > > igt_assert(mid->compression); > > ccscopy = (uint32_t *) malloc(ccssize); > > + bb_size = 4096; > > May be removed (if you keep it above). My intent was to point the reader that bb_size can alter by the driver regarding created buffer size. For smem there's 4k, but for lmem can vary. gem_create_from_pool() is new call, so I try to build some patterns to avoid mismatch between sizes and allocator calls. > > > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > > ccs = gem_create(i915, ccssize); > > + ccs2 = gem_create(i915, ccssize); > > > > surf.i915 = i915; > > surf.print_bb = param.print_bb; > > @@ -193,6 +197,27 @@ static void surf_copy(int i915, > > PROT_READ | PROT_WRITE); > > memcpy(ccscopy, ccsmap, ccssize); > > > > + if (suspend_resume) { > > + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); > > + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > > + > > + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); > > + > > + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, > > + 0, DIRECT_ACCESS); > > + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); > > + gem_sync(i915, surf.dst.handle); > > + > > + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, > > + PROT_READ | PROT_WRITE); > > + new = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); > > + new2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > > + > > + igt_assert(!strcmp(orig, new)); > > + igt_assert(!strcmp(orig2, new2)); > > May you rename new and new2 into something meaningfull ? Like > newsum_ccs, newsum_ctrl ? It can help if assert triggers. > Checksums are pointers allocated by g_compute_checksum so they > need to be free after use. Ok, will do. > > > + munmap(ccsmap2, ccssize); > > Move this before two asserts. Ack. > > > + } > > + > > /* corrupt ccs */ > > for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) > > ccsmap[i] = i; > > @@ -209,6 +234,7 @@ static void surf_copy(int i915, > > set_blt_object(&blt.dst, dst); > > set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); > > set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); > > + bb_size = 4096; > > Looks strange here, remove this. I'm not sure what bb_size is before gem_create_from_pool() - it may be altered by previous call (not for smem but lmem likely). > > > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > > set_batch(&blt.bb, bb, bb_size, REGION_SMEM); > > blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); > > @@ -311,7 +337,8 @@ static void block_copy(int i915, > > ALLOC_STRATEGY_LOW_TO_HIGH, 0); > > } > > > > - surf_copy(i915, surf_ctx, &surf_e, surf_ahnd, src, mid, dst, run_id); > > + surf_copy(i915, surf_ctx, &surf_e, ahnd, src, mid, dst, run_id, > > This should be in first patch ? Hmm, likely not. First (new ctx) changes to use &surf_e. For suspend-resume there's new option which is additional arg for surf_copy. Thanks for the review, new series will be sent soon. -- Zbigniew > > Regards, > Kamil > > > + config->suspend_resume); > > > > if (surf_ctx != ctx) { > > intel_ctx_destroy(i915, surf_ctx); > > @@ -508,6 +535,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) > > block_copy_test(i915, &config, ctx, set); > > } > > > > + igt_subtest_with_dynamic("suspend-resume") { > > + struct test_config config = { .compression = true, > > + .surfcopy = true, > > + .suspend_resume = true }; > > + > > + block_copy_test(i915, &config, ctx, set); > > + } > > + > > igt_fixture { > > igt_disallow_hang(i915, hang); > > close(i915); > > -- > > 2.32.0 > > > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests @ 2022-03-17 10:20 Zbigniew Kempczyński 2022-03-17 10:20 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-17 10:20 UTC (permalink / raw) To: igt-dev Introduce two new subtests - ctrl-surf-copy-new-ctx + suspend-resume. ctrl-surf-copy-new-ctx checks ccs data is binded to physical mem. suspend-resume checks S0 suspend state. Apoorva Singh (2): tests/i915/gem_ccs: Check ctrl-surf-copy in new context tests/i915/gem_ccs: Add suspend-resume subtest tests/i915/gem_ccs.c | 79 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 64 insertions(+), 15 deletions(-) -- 2.32.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-17 10:20 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński @ 2022-03-17 10:20 ` Zbigniew Kempczyński 2022-03-17 16:46 ` Zbigniew Kempczyński 0 siblings, 1 reply; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-17 10:20 UTC (permalink / raw) To: igt-dev From: Apoorva Singh <apoorva1.singh@intel.com> Verify flatccs data won't be corrupted when device will be put to S0 (s2idle) state. Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> --- tests/i915/gem_ccs.c | 45 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c index 1a21e24597..5bf11c9a8e 100644 --- a/tests/i915/gem_ccs.c +++ b/tests/i915/gem_ccs.c @@ -4,6 +4,7 @@ */ #include <errno.h> +#include <glib.h> #include <sys/ioctl.h> #include <sys/time.h> #include <malloc.h> @@ -40,6 +41,7 @@ struct test_config { bool inplace; bool surfcopy; bool new_ctx; + bool suspend_resume; }; static void set_object(struct blt_copy_object *obj, @@ -162,22 +164,24 @@ static void surf_copy(int i915, const struct blt_copy_object *src, const struct blt_copy_object *mid, const struct blt_copy_object *dst, - int run_id) + int run_id, bool suspend_resume) { struct blt_copy_data blt = {}; struct blt_block_copy_data_ext ext = {}; struct blt_ctrl_surf_copy_data surf = {}; - uint32_t bb, ccs, *ccsmap; - uint64_t bb_size = 4096; - uint64_t ccssize = mid->size / CCS_RATIO; + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; uint32_t *ccscopy; uint8_t uc_mocs = intel_get_uc_mocs(i915); int result; + char *orig, *orig2, *new, *new2; igt_assert(mid->compression); ccscopy = (uint32_t *) malloc(ccssize); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); ccs = gem_create(i915, ccssize); + ccs2 = gem_create(i915, ccssize); surf.i915 = i915; surf.print_bb = param.print_bb; @@ -193,6 +197,27 @@ static void surf_copy(int i915, PROT_READ | PROT_WRITE); memcpy(ccscopy, ccsmap, ccssize); + if (suspend_resume) { + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); + + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, + 0, DIRECT_ACCESS); + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); + gem_sync(i915, surf.dst.handle); + + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, + PROT_READ | PROT_WRITE); + new = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); + new2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); + + igt_assert(!strcmp(orig, new)); + igt_assert(!strcmp(orig2, new2)); + munmap(ccsmap2, ccssize); + } + /* corrupt ccs */ for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) ccsmap[i] = i; @@ -209,6 +234,7 @@ static void surf_copy(int i915, set_blt_object(&blt.dst, dst); set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); + bb_size = 4096; bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); set_batch(&blt.bb, bb, bb_size, REGION_SMEM); blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); @@ -299,7 +325,8 @@ static void block_copy(int i915, if (config->new_ctx) surf_ctx = intel_ctx_create(i915, &ctx->cfg); - surf_copy(i915, surf_ctx, e, ahnd, src, mid, dst, run_id); + surf_copy(i915, surf_ctx, e, ahnd, src, mid, dst, run_id, + config->suspend_resume); if (surf_ctx != ctx) intel_ctx_destroy(i915, surf_ctx); @@ -494,6 +521,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) block_copy_test(i915, &config, ctx, set); } + igt_subtest_with_dynamic("suspend-resume") { + struct test_config config = { .compression = true, + .surfcopy = true, + .suspend_resume = true }; + + block_copy_test(i915, &config, ctx, set); + } + igt_fixture { igt_disallow_hang(i915, hang); close(i915); -- 2.32.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest 2022-03-17 10:20 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński @ 2022-03-17 16:46 ` Zbigniew Kempczyński 0 siblings, 0 replies; 15+ messages in thread From: Zbigniew Kempczyński @ 2022-03-17 16:46 UTC (permalink / raw) To: igt-dev On Thu, Mar 17, 2022 at 11:20:02AM +0100, Zbigniew Kempczyński wrote: > From: Apoorva Singh <apoorva1.singh@intel.com> > > Verify flatccs data won't be corrupted when device will be put > to S0 (s2idle) state. > > Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Looks good for me: Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> -- Zbigniew > --- > tests/i915/gem_ccs.c | 45 +++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 40 insertions(+), 5 deletions(-) > > diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c > index 1a21e24597..5bf11c9a8e 100644 > --- a/tests/i915/gem_ccs.c > +++ b/tests/i915/gem_ccs.c > @@ -4,6 +4,7 @@ > */ > > #include <errno.h> > +#include <glib.h> > #include <sys/ioctl.h> > #include <sys/time.h> > #include <malloc.h> > @@ -40,6 +41,7 @@ struct test_config { > bool inplace; > bool surfcopy; > bool new_ctx; > + bool suspend_resume; > }; > > static void set_object(struct blt_copy_object *obj, > @@ -162,22 +164,24 @@ static void surf_copy(int i915, > const struct blt_copy_object *src, > const struct blt_copy_object *mid, > const struct blt_copy_object *dst, > - int run_id) > + int run_id, bool suspend_resume) > { > struct blt_copy_data blt = {}; > struct blt_block_copy_data_ext ext = {}; > struct blt_ctrl_surf_copy_data surf = {}; > - uint32_t bb, ccs, *ccsmap; > - uint64_t bb_size = 4096; > - uint64_t ccssize = mid->size / CCS_RATIO; > + uint32_t bb, ccs, ccs2, *ccsmap, *ccsmap2; > + uint64_t bb_size, ccssize = mid->size / CCS_RATIO; > uint32_t *ccscopy; > uint8_t uc_mocs = intel_get_uc_mocs(i915); > int result; > + char *orig, *orig2, *new, *new2; > > igt_assert(mid->compression); > ccscopy = (uint32_t *) malloc(ccssize); > + bb_size = 4096; > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > ccs = gem_create(i915, ccssize); > + ccs2 = gem_create(i915, ccssize); > > surf.i915 = i915; > surf.print_bb = param.print_bb; > @@ -193,6 +197,27 @@ static void surf_copy(int i915, > PROT_READ | PROT_WRITE); > memcpy(ccscopy, ccsmap, ccssize); > > + if (suspend_resume) { > + orig = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap, surf.dst.size); > + orig2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + igt_system_suspend_autoresume(SUSPEND_STATE_FREEZE, SUSPEND_TEST_NONE); > + > + set_surf_object(&surf.dst, ccs2, REGION_SMEM, ccssize, > + 0, DIRECT_ACCESS); > + blt_ctrl_surf_copy(i915, ctx, e, ahnd, &surf); > + gem_sync(i915, surf.dst.handle); > + > + ccsmap2 = gem_mmap__device_coherent(i915, ccs2, 0, surf.dst.size, > + PROT_READ | PROT_WRITE); > + new = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)ccsmap2, surf.dst.size); > + new2 = g_compute_checksum_for_data(G_CHECKSUM_SHA1, (void *)mid->ptr, mid->size); > + > + igt_assert(!strcmp(orig, new)); > + igt_assert(!strcmp(orig2, new2)); > + munmap(ccsmap2, ccssize); > + } > + > /* corrupt ccs */ > for (int i = 0; i < surf.dst.size / sizeof(uint32_t); i++) > ccsmap[i] = i; > @@ -209,6 +234,7 @@ static void surf_copy(int i915, > set_blt_object(&blt.dst, dst); > set_object_ext(&ext.src, mid->compression_type, mid->x2, mid->y2, SURFACE_TYPE_2D); > set_object_ext(&ext.dst, 0, dst->x2, dst->y2, SURFACE_TYPE_2D); > + bb_size = 4096; > bb = gem_create_from_pool(i915, &bb_size, REGION_SMEM); > set_batch(&blt.bb, bb, bb_size, REGION_SMEM); > blt_block_copy(i915, ctx, e, ahnd, &blt, &ext); > @@ -299,7 +325,8 @@ static void block_copy(int i915, > if (config->new_ctx) > surf_ctx = intel_ctx_create(i915, &ctx->cfg); > > - surf_copy(i915, surf_ctx, e, ahnd, src, mid, dst, run_id); > + surf_copy(i915, surf_ctx, e, ahnd, src, mid, dst, run_id, > + config->suspend_resume); > > if (surf_ctx != ctx) > intel_ctx_destroy(i915, surf_ctx); > @@ -494,6 +521,14 @@ igt_main_args("bf:pst:W:H:", NULL, help_str, opt_handler, NULL) > block_copy_test(i915, &config, ctx, set); > } > > + igt_subtest_with_dynamic("suspend-resume") { > + struct test_config config = { .compression = true, > + .surfcopy = true, > + .suspend_resume = true }; > + > + block_copy_test(i915, &config, ctx, set); > + } > + > igt_fixture { > igt_disallow_hang(i915, hang); > close(i915); > -- > 2.32.0 > ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2022-03-22 11:56 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-03-21 7:11 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-21 7:11 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/gem_ccs: Check ctrl-surf-copy in new context Zbigniew Kempczyński 2022-03-21 7:11 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 2022-03-21 8:06 ` [igt-dev] ✓ Fi.CI.BAT: success for Add two gem-ccs subtests (rev3) Patchwork 2022-03-21 9:35 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork -- strict thread matches above, loose matches on Subject: below -- 2022-03-22 8:25 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-22 8:25 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 2022-03-22 11:56 ` Kamil Konieczny 2022-03-22 6:59 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-22 6:59 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 2022-03-21 11:11 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-21 11:11 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 2022-03-21 16:04 ` Kamil Konieczny 2022-03-18 7:30 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-18 7:30 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 2022-03-18 10:29 ` Kamil Konieczny 2022-03-21 6:18 ` Zbigniew Kempczyński 2022-03-17 10:20 [igt-dev] [PATCH i-g-t 0/2] Add two gem-ccs subtests Zbigniew Kempczyński 2022-03-17 10:20 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/gem_ccs: Add suspend-resume subtest Zbigniew Kempczyński 2022-03-17 16:46 ` Zbigniew Kempczyński
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox