* [Intel-gfx] [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small delay to closure @ 2020-06-30 21:25 ` Chris Wilson 0 siblings, 0 replies; 8+ messages in thread From: Chris Wilson @ 2020-06-30 21:25 UTC (permalink / raw) To: intel-gfx; +Cc: igt-dev, Chris Wilson Keep the old handles in a small ring so that we build up a small amount of pressure for i915_gem_close_object() and throw in a few concurrent contexts so we have to process an obj->lut_list containing more than one element. And to make sure the list is truly long enough to schedule, start leaking the contexts. Note that the only correctness check is that the selfcopy doesn't explode; the challenge would be to prove that the old handles are no longer accessible via the execbuf lut. However, this is sufficient to make sure we at least hit the interruptible spinlock used by close-objects. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michael J. Ruhl <michael.j.ruhl@intel.com> --- tests/i915/gem_close_race.c | 68 +++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 15 deletions(-) diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c index db570e8fd..4b72d353c 100644 --- a/tests/i915/gem_close_race.c +++ b/tests/i915/gem_close_race.c @@ -55,7 +55,7 @@ static bool has_64bit_relocations; #define sigev_notify_thread_id _sigev_un._tid -static void selfcopy(int fd, uint32_t handle, int loops) +static void selfcopy(int fd, uint32_t ctx, uint32_t handle, int loops) { struct drm_i915_gem_relocation_entry reloc[2]; struct drm_i915_gem_exec_object2 gem_exec[2]; @@ -113,6 +113,7 @@ static void selfcopy(int fd, uint32_t handle, int loops) execbuf.batch_len = (b - buf) * sizeof(*b); if (HAS_BLT_RING(devid)) execbuf.flags |= I915_EXEC_BLT; + execbuf.rsvd1 = ctx; memset(&gem_pwrite, 0, sizeof(gem_pwrite)); gem_pwrite.handle = create.handle; @@ -135,7 +136,7 @@ static uint32_t load(int fd) if (handle == 0) return 0; - selfcopy(fd, handle, 100); + selfcopy(fd, 0, handle, 100); return handle; } @@ -165,14 +166,19 @@ static void crashme_now(int sig) #define usec(x) (1000*(x)) #define msec(x) usec(1000*(x)) -static void threads(int timeout) +static void thread(int fd, struct drm_gem_open name, + int timeout, unsigned int flags) +#define CONTEXTS 0x1 { struct sigevent sev; struct sigaction act; - struct drm_gem_open name; struct itimerspec its; + uint32_t *history; +#define N_HISTORY (256) timer_t timer; - int fd; + + history = malloc(sizeof(*history) * N_HISTORY); + igt_assert(history); memset(&act, 0, sizeof(act)); act.sa_handler = crashme_now; @@ -184,28 +190,57 @@ static void threads(int timeout) sev.sigev_signo = SIGRTMIN; igt_assert(timer_create(CLOCK_MONOTONIC, &sev, &timer) == 0); - fd = drm_open_driver(DRIVER_INTEL); - name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); - igt_until_timeout(timeout) { - crashme.fd = drm_open_driver(DRIVER_INTEL); + unsigned int n = 0; + + memset(history, 0, sizeof(*history) * N_HISTORY); + + crashme.fd = gem_reopen_driver(fd); memset(&its, 0, sizeof(its)); - its.it_value.tv_nsec = msec(1) + (rand() % msec(10)); + its.it_value.tv_nsec = msec(1) + (rand() % msec(150)); igt_assert(timer_settime(timer, 0, &its, NULL) == 0); do { - if (drmIoctl(crashme.fd, DRM_IOCTL_GEM_OPEN, &name)) + uint32_t ctx = 0; + + if (drmIoctl(crashme.fd, + DRM_IOCTL_GEM_OPEN, + &name)) break; - selfcopy(crashme.fd, name.handle, 100); - drmIoctl(crashme.fd, DRM_IOCTL_GEM_CLOSE, &name.handle); + if (flags & CONTEXTS) + __gem_context_create(crashme.fd, &ctx); + + selfcopy(crashme.fd, ctx, name.handle, 1); + + ctx = history[n % N_HISTORY]; + if (ctx) + drmIoctl(crashme.fd, + DRM_IOCTL_GEM_CLOSE, + &ctx); + history[n % N_HISTORY] = name.handle; + n++; } while (1); close(crashme.fd); } timer_delete(timer); + free(history); +} + +static void threads(int timeout, unsigned int flags) +{ + struct drm_gem_open name; + int fd; + + fd = drm_open_driver(DRIVER_INTEL); + name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); + + igt_fork(child, sysconf(_SC_NPROCESSORS_ONLN)) + thread(fd, name, timeout, flags); + igt_waitchildren(); gem_quiescent_gpu(fd); close(fd); @@ -233,7 +268,7 @@ igt_main } igt_subtest("basic-threads") - threads(1); + threads(1, 0); igt_subtest("process-exit") { igt_fork(child, 768) @@ -241,8 +276,11 @@ igt_main igt_waitchildren(); } + igt_subtest("contexts") + threads(30, CONTEXTS); + igt_subtest("gem-close-race") - threads(150); + threads(150, 0); igt_fixture igt_stop_hang_detector(); -- 2.27.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small delay to closure @ 2020-06-30 21:25 ` Chris Wilson 0 siblings, 0 replies; 8+ messages in thread From: Chris Wilson @ 2020-06-30 21:25 UTC (permalink / raw) To: intel-gfx; +Cc: igt-dev, Chris Wilson Keep the old handles in a small ring so that we build up a small amount of pressure for i915_gem_close_object() and throw in a few concurrent contexts so we have to process an obj->lut_list containing more than one element. And to make sure the list is truly long enough to schedule, start leaking the contexts. Note that the only correctness check is that the selfcopy doesn't explode; the challenge would be to prove that the old handles are no longer accessible via the execbuf lut. However, this is sufficient to make sure we at least hit the interruptible spinlock used by close-objects. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michael J. Ruhl <michael.j.ruhl@intel.com> --- tests/i915/gem_close_race.c | 68 +++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 15 deletions(-) diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c index db570e8fd..4b72d353c 100644 --- a/tests/i915/gem_close_race.c +++ b/tests/i915/gem_close_race.c @@ -55,7 +55,7 @@ static bool has_64bit_relocations; #define sigev_notify_thread_id _sigev_un._tid -static void selfcopy(int fd, uint32_t handle, int loops) +static void selfcopy(int fd, uint32_t ctx, uint32_t handle, int loops) { struct drm_i915_gem_relocation_entry reloc[2]; struct drm_i915_gem_exec_object2 gem_exec[2]; @@ -113,6 +113,7 @@ static void selfcopy(int fd, uint32_t handle, int loops) execbuf.batch_len = (b - buf) * sizeof(*b); if (HAS_BLT_RING(devid)) execbuf.flags |= I915_EXEC_BLT; + execbuf.rsvd1 = ctx; memset(&gem_pwrite, 0, sizeof(gem_pwrite)); gem_pwrite.handle = create.handle; @@ -135,7 +136,7 @@ static uint32_t load(int fd) if (handle == 0) return 0; - selfcopy(fd, handle, 100); + selfcopy(fd, 0, handle, 100); return handle; } @@ -165,14 +166,19 @@ static void crashme_now(int sig) #define usec(x) (1000*(x)) #define msec(x) usec(1000*(x)) -static void threads(int timeout) +static void thread(int fd, struct drm_gem_open name, + int timeout, unsigned int flags) +#define CONTEXTS 0x1 { struct sigevent sev; struct sigaction act; - struct drm_gem_open name; struct itimerspec its; + uint32_t *history; +#define N_HISTORY (256) timer_t timer; - int fd; + + history = malloc(sizeof(*history) * N_HISTORY); + igt_assert(history); memset(&act, 0, sizeof(act)); act.sa_handler = crashme_now; @@ -184,28 +190,57 @@ static void threads(int timeout) sev.sigev_signo = SIGRTMIN; igt_assert(timer_create(CLOCK_MONOTONIC, &sev, &timer) == 0); - fd = drm_open_driver(DRIVER_INTEL); - name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); - igt_until_timeout(timeout) { - crashme.fd = drm_open_driver(DRIVER_INTEL); + unsigned int n = 0; + + memset(history, 0, sizeof(*history) * N_HISTORY); + + crashme.fd = gem_reopen_driver(fd); memset(&its, 0, sizeof(its)); - its.it_value.tv_nsec = msec(1) + (rand() % msec(10)); + its.it_value.tv_nsec = msec(1) + (rand() % msec(150)); igt_assert(timer_settime(timer, 0, &its, NULL) == 0); do { - if (drmIoctl(crashme.fd, DRM_IOCTL_GEM_OPEN, &name)) + uint32_t ctx = 0; + + if (drmIoctl(crashme.fd, + DRM_IOCTL_GEM_OPEN, + &name)) break; - selfcopy(crashme.fd, name.handle, 100); - drmIoctl(crashme.fd, DRM_IOCTL_GEM_CLOSE, &name.handle); + if (flags & CONTEXTS) + __gem_context_create(crashme.fd, &ctx); + + selfcopy(crashme.fd, ctx, name.handle, 1); + + ctx = history[n % N_HISTORY]; + if (ctx) + drmIoctl(crashme.fd, + DRM_IOCTL_GEM_CLOSE, + &ctx); + history[n % N_HISTORY] = name.handle; + n++; } while (1); close(crashme.fd); } timer_delete(timer); + free(history); +} + +static void threads(int timeout, unsigned int flags) +{ + struct drm_gem_open name; + int fd; + + fd = drm_open_driver(DRIVER_INTEL); + name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); + + igt_fork(child, sysconf(_SC_NPROCESSORS_ONLN)) + thread(fd, name, timeout, flags); + igt_waitchildren(); gem_quiescent_gpu(fd); close(fd); @@ -233,7 +268,7 @@ igt_main } igt_subtest("basic-threads") - threads(1); + threads(1, 0); igt_subtest("process-exit") { igt_fork(child, 768) @@ -241,8 +276,11 @@ igt_main igt_waitchildren(); } + igt_subtest("contexts") + threads(30, CONTEXTS); + igt_subtest("gem-close-race") - threads(150); + threads(150, 0); igt_fixture igt_stop_hang_detector(); -- 2.27.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_close_race: Mix in a contexts and a small delay to closure 2020-06-30 21:25 ` [igt-dev] " Chris Wilson (?) @ 2020-07-01 3:17 ` Patchwork -1 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2020-07-01 3:17 UTC (permalink / raw) To: Chris Wilson; +Cc: igt-dev == Series Details == Series: i915/gem_close_race: Mix in a contexts and a small delay to closure URL : https://patchwork.freedesktop.org/series/78959/ State : success == Summary == CI Bug Log - changes from CI_DRM_8679 -> IGTPW_4721 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/index.html Known issues ------------ Here are the changes found in IGTPW_4721 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_tiled_blits@basic: - fi-tgl-y: [PASS][1] -> [DMESG-WARN][2] ([i915#402]) +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-tgl-y/igt@gem_tiled_blits@basic.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-tgl-y/igt@gem_tiled_blits@basic.html * igt@i915_module_load@reload: - fi-byt-n2820: [PASS][3] -> [DMESG-WARN][4] ([i915#1982]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-byt-n2820/igt@i915_module_load@reload.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-byt-n2820/igt@i915_module_load@reload.html - fi-bsw-kefka: [PASS][5] -> [INCOMPLETE][6] ([i915#1909]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-bsw-kefka/igt@i915_module_load@reload.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-bsw-kefka/igt@i915_module_load@reload.html * igt@i915_pm_rpm@basic-pci-d3-state: - fi-bsw-kefka: [PASS][7] -> [DMESG-WARN][8] ([i915#1982]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic: - fi-tgl-y: [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-tgl-y/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-tgl-y/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html #### Possible fixes #### * igt@gem_exec_suspend@basic-s0: - fi-tgl-u2: [FAIL][11] ([i915#1888]) -> [PASS][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html * igt@i915_module_load@reload: - fi-tgl-y: [DMESG-WARN][13] ([i915#1982]) -> [PASS][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-tgl-y/igt@i915_module_load@reload.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-tgl-y/igt@i915_module_load@reload.html * igt@i915_pm_rpm@basic-pci-d3-state: - {fi-tgl-dsi}: [DMESG-WARN][15] ([i915#1982]) -> [PASS][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-tgl-dsi/igt@i915_pm_rpm@basic-pci-d3-state.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-tgl-dsi/igt@i915_pm_rpm@basic-pci-d3-state.html * igt@i915_pm_rpm@module-reload: - fi-glk-dsi: [DMESG-WARN][17] ([i915#1982]) -> [PASS][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-glk-dsi/igt@i915_pm_rpm@module-reload.html * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling: - fi-tgl-y: [DMESG-WARN][19] ([i915#402]) -> [PASS][20] +1 similar issue [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-tgl-y/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-tgl-y/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html #### Warnings #### * igt@i915_pm_rpm@basic-pci-d3-state: - fi-kbl-x1275: [DMESG-WARN][21] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][22] ([i915#62] / [i915#92]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html * igt@kms_force_connector_basic@force-edid: - fi-kbl-x1275: [DMESG-WARN][23] ([i915#62] / [i915#92]) -> [DMESG-WARN][24] ([i915#62] / [i915#92] / [i915#95]) +4 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/fi-kbl-x1275/igt@kms_force_connector_basic@force-edid.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/fi-kbl-x1275/igt@kms_force_connector_basic@force-edid.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888 [i915#1909]: https://gitlab.freedesktop.org/drm/intel/issues/1909 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62 [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92 [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95 Participating hosts (44 -> 37) ------------------------------ Missing (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5718 -> IGTPW_4721 CI-20190529: 20190529 CI_DRM_8679: 3e20fe558381bf798308d3a1171948676af22376 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_4721: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/index.html IGT_5718: af1ef32bfae90bcdbaf1b5d84c61ff4e04368505 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Testlist changes == +igt@gem_close_race@contexts == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 8+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for i915/gem_close_race: Mix in a contexts and a small delay to closure 2020-06-30 21:25 ` [igt-dev] " Chris Wilson (?) (?) @ 2020-07-01 5:43 ` Patchwork -1 siblings, 0 replies; 8+ messages in thread From: Patchwork @ 2020-07-01 5:43 UTC (permalink / raw) To: Chris Wilson; +Cc: igt-dev == Series Details == Series: i915/gem_close_race: Mix in a contexts and a small delay to closure URL : https://patchwork.freedesktop.org/series/78959/ State : success == Summary == CI Bug Log - changes from CI_DRM_8679_full -> IGTPW_4721_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/index.html Known issues ------------ Here are the changes found in IGTPW_4721_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_setmaster_vs_auth: - shard-snb: [PASS][1] -> [TIMEOUT][2] ([i915#1958] / [i915#2119]) +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-snb4/igt@core_setmaster_vs_auth.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-snb4/igt@core_setmaster_vs_auth.html * igt@gem_exec_whisper@basic-fds-priority: - shard-glk: [PASS][3] -> [DMESG-WARN][4] ([i915#118] / [i915#95]) +2 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-glk3/igt@gem_exec_whisper@basic-fds-priority.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-glk2/igt@gem_exec_whisper@basic-fds-priority.html * igt@gem_exec_whisper@basic-normal: - shard-tglb: [PASS][5] -> [DMESG-WARN][6] ([i915#402]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-tglb3/igt@gem_exec_whisper@basic-normal.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-tglb7/igt@gem_exec_whisper@basic-normal.html * igt@i915_module_load@reload-with-fault-injection: - shard-iclb: [PASS][7] -> [DMESG-WARN][8] ([i915#1982]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb8/igt@i915_module_load@reload-with-fault-injection.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb1/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [PASS][9] -> [FAIL][10] ([i915#454]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb5/igt@i915_pm_dc@dc6-psr.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb8/igt@i915_pm_dc@dc6-psr.html * igt@kms_big_fb@linear-8bpp-rotate-180: - shard-apl: [PASS][11] -> [DMESG-WARN][12] ([i915#1982]) +1 similar issue [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl6/igt@kms_big_fb@linear-8bpp-rotate-180.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl3/igt@kms_big_fb@linear-8bpp-rotate-180.html * igt@kms_big_fb@x-tiled-64bpp-rotate-180: - shard-glk: [PASS][13] -> [DMESG-FAIL][14] ([i915#118] / [i915#95]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-glk6/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-glk8/igt@kms_big_fb@x-tiled-64bpp-rotate-180.html * igt@kms_cursor_crc@pipe-a-cursor-256x256-onscreen: - shard-kbl: [PASS][15] -> [DMESG-FAIL][16] ([i915#54] / [i915#95]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-256x256-onscreen.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-256x256-onscreen.html * igt@kms_cursor_crc@pipe-b-cursor-256x85-random: - shard-hsw: [PASS][17] -> [TIMEOUT][18] ([i915#1958] / [i915#2119]) +2 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-hsw6/igt@kms_cursor_crc@pipe-b-cursor-256x85-random.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-hsw7/igt@kms_cursor_crc@pipe-b-cursor-256x85-random.html * igt@kms_cursor_edge_walk@pipe-a-128x128-right-edge: - shard-kbl: [PASS][19] -> [DMESG-FAIL][20] ([i915#70] / [i915#95]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl4/igt@kms_cursor_edge_walk@pipe-a-128x128-right-edge.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl1/igt@kms_cursor_edge_walk@pipe-a-128x128-right-edge.html * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions: - shard-apl: [PASS][21] -> [DMESG-WARN][22] ([i915#1635] / [i915#95]) +44 similar issues [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl3/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl6/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions.html * igt@kms_flip@flip-vs-suspend@c-dp1: - shard-kbl: [PASS][23] -> [DMESG-WARN][24] ([i915#180]) +3 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl3/igt@kms_flip@flip-vs-suspend@c-dp1.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl7/igt@kms_flip@flip-vs-suspend@c-dp1.html * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render: - shard-tglb: [PASS][25] -> [DMESG-WARN][26] ([i915#1982]) +1 similar issue [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-tglb1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render: - shard-kbl: [PASS][27] -> [DMESG-WARN][28] ([i915#93] / [i915#95]) +52 similar issues [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-blt: - shard-glk: [PASS][29] -> [FAIL][30] ([i915#49]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-blt.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-glk5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbc-stridechange: - shard-glk: [PASS][31] -> [DMESG-WARN][32] ([i915#1982]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-glk4/igt@kms_frontbuffer_tracking@fbc-stridechange.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-glk2/igt@kms_frontbuffer_tracking@fbc-stridechange.html * igt@kms_hdmi_inject@inject-audio: - shard-snb: [PASS][33] -> [SKIP][34] ([fdo#109271]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-snb1/igt@kms_hdmi_inject@inject-audio.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-snb5/igt@kms_hdmi_inject@inject-audio.html - shard-tglb: [PASS][35] -> [SKIP][36] ([i915#433]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-tglb5/igt@kms_hdmi_inject@inject-audio.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-tglb8/igt@kms_hdmi_inject@inject-audio.html - shard-kbl: [PASS][37] -> [SKIP][38] ([fdo#109271]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl1/igt@kms_hdmi_inject@inject-audio.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl3/igt@kms_hdmi_inject@inject-audio.html - shard-iclb: [PASS][39] -> [SKIP][40] ([i915#433]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb2/igt@kms_hdmi_inject@inject-audio.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb8/igt@kms_hdmi_inject@inject-audio.html * igt@kms_plane_cursor@pipe-a-viewport-size-128: - shard-apl: [PASS][41] -> [DMESG-FAIL][42] ([i915#1635] / [i915#95]) +1 similar issue [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl4/igt@kms_plane_cursor@pipe-a-viewport-size-128.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl2/igt@kms_plane_cursor@pipe-a-viewport-size-128.html - shard-kbl: [PASS][43] -> [DMESG-FAIL][44] ([i915#95]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl6/igt@kms_plane_cursor@pipe-a-viewport-size-128.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl6/igt@kms_plane_cursor@pipe-a-viewport-size-128.html * igt@kms_psr@psr2_cursor_plane_move: - shard-iclb: [PASS][45] -> [SKIP][46] ([fdo#109441]) +1 similar issue [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb5/igt@kms_psr@psr2_cursor_plane_move.html * igt@kms_setmode@basic: - shard-hsw: [PASS][47] -> [FAIL][48] ([i915#31]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-hsw4/igt@kms_setmode@basic.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-hsw6/igt@kms_setmode@basic.html * igt@perf@blocking-parameterized: - shard-iclb: [PASS][49] -> [FAIL][50] ([i915#1542]) [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb6/igt@perf@blocking-parameterized.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb5/igt@perf@blocking-parameterized.html #### Possible fixes #### * igt@gem_fenced_exec_thrash@no-spare-fences-interruptible: - shard-snb: [TIMEOUT][51] ([i915#1958]) -> [PASS][52] +3 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-snb2/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-snb4/igt@gem_fenced_exec_thrash@no-spare-fences-interruptible.html * igt@gen9_exec_parse@allowed-all: - shard-apl: [DMESG-WARN][53] ([i915#1436] / [i915#716]) -> [PASS][54] [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl1/igt@gen9_exec_parse@allowed-all.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl4/igt@gen9_exec_parse@allowed-all.html * igt@i915_getparams_basic@basic-eu-total: - shard-kbl: [DMESG-WARN][55] ([i915#93] / [i915#95]) -> [PASS][56] +43 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl7/igt@i915_getparams_basic@basic-eu-total.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl4/igt@i915_getparams_basic@basic-eu-total.html * igt@i915_module_load@reload: - shard-tglb: [DMESG-WARN][57] ([i915#402]) -> [PASS][58] +1 similar issue [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-tglb8/igt@i915_module_load@reload.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-tglb1/igt@i915_module_load@reload.html * igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen: - shard-kbl: [DMESG-FAIL][59] ([i915#54] / [i915#95]) -> [PASS][60] +3 similar issues [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl6/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl1/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html * igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][61] ([i915#79]) -> [PASS][62] [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank@ab-hdmi-a1-hdmi-a2.html * igt@kms_flip@2x-flip-vs-expired-vblank@ab-vga1-hdmi-a1: - shard-hsw: [DMESG-WARN][63] ([i915#1982]) -> [PASS][64] [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-hsw6/igt@kms_flip@2x-flip-vs-expired-vblank@ab-vga1-hdmi-a1.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-hsw1/igt@kms_flip@2x-flip-vs-expired-vblank@ab-vga1-hdmi-a1.html * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1: - shard-kbl: [DMESG-WARN][65] ([i915#180]) -> [PASS][66] +6 similar issues [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl3/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack: - shard-iclb: [DMESG-WARN][67] ([i915#1982]) -> [PASS][68] [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack.html * igt@kms_frontbuffer_tracking@psr-farfromfence: - shard-tglb: [DMESG-WARN][69] ([i915#1982]) -> [PASS][70] +7 similar issues [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-tglb7/igt@kms_frontbuffer_tracking@psr-farfromfence.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-tglb1/igt@kms_frontbuffer_tracking@psr-farfromfence.html * igt@kms_lease@lessee_list: - shard-hsw: [TIMEOUT][71] ([i915#1958]) -> [PASS][72] +3 similar issues [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-hsw4/igt@kms_lease@lessee_list.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-hsw6/igt@kms_lease@lessee_list.html * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-mid: - shard-kbl: [DMESG-FAIL][73] ([fdo#108145] / [i915#95]) -> [PASS][74] [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl4/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-mid.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl3/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-mid.html * igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant: - shard-kbl: [DMESG-FAIL][75] ([fdo#108145] / [i915#1982] / [i915#95]) -> [PASS][76] [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl3/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl2/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html - shard-apl: [DMESG-FAIL][77] ([fdo#108145] / [i915#1635] / [i915#95]) -> [PASS][78] +1 similar issue [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl3/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl7/igt@kms_plane_alpha_blend@pipe-a-coverage-vs-premult-vs-constant.html * igt@kms_plane_cursor@pipe-a-overlay-size-128: - shard-kbl: [DMESG-FAIL][79] ([i915#95]) -> [PASS][80] +1 similar issue [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl6/igt@kms_plane_cursor@pipe-a-overlay-size-128.html [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl1/igt@kms_plane_cursor@pipe-a-overlay-size-128.html - shard-apl: [DMESG-FAIL][81] ([i915#1635] / [i915#95]) -> [PASS][82] +1 similar issue [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl2/igt@kms_plane_cursor@pipe-a-overlay-size-128.html [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl1/igt@kms_plane_cursor@pipe-a-overlay-size-128.html * igt@kms_psr@psr2_cursor_mmap_cpu: - shard-iclb: [SKIP][83] ([fdo#109441]) -> [PASS][84] +4 similar issues [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb3/igt@kms_psr@psr2_cursor_mmap_cpu.html [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html * igt@kms_setmode@basic: - shard-kbl: [FAIL][85] ([i915#31]) -> [PASS][86] [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl7/igt@kms_setmode@basic.html [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl6/igt@kms_setmode@basic.html * igt@perf@blocking: - shard-glk: [DMESG-WARN][87] ([i915#118] / [i915#95]) -> [PASS][88] +2 similar issues [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-glk9/igt@perf@blocking.html [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-glk4/igt@perf@blocking.html * igt@perf@invalid-oa-metric-set-id: - shard-apl: [DMESG-WARN][89] ([i915#1635] / [i915#95]) -> [PASS][90] +31 similar issues [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl3/igt@perf@invalid-oa-metric-set-id.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl3/igt@perf@invalid-oa-metric-set-id.html #### Warnings #### * igt@gem_ctx_sseu@mmap-args: - shard-apl: [SKIP][91] ([fdo#109271]) -> [SKIP][92] ([fdo#109271] / [i915#1635]) +12 similar issues [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl1/igt@gem_ctx_sseu@mmap-args.html [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl1/igt@gem_ctx_sseu@mmap-args.html * igt@gem_exec_balancer@hang: - shard-hsw: [SKIP][93] ([fdo#109271]) -> [TIMEOUT][94] ([i915#1958] / [i915#2119]) +1 similar issue [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-hsw4/igt@gem_exec_balancer@hang.html [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-hsw7/igt@gem_exec_balancer@hang.html * igt@gem_exec_reloc@basic-concurrent16: - shard-snb: [TIMEOUT][95] ([i915#1958]) -> [TIMEOUT][96] ([i915#1958] / [i915#2119]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-snb2/igt@gem_exec_reloc@basic-concurrent16.html [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-snb4/igt@gem_exec_reloc@basic-concurrent16.html - shard-hsw: [TIMEOUT][97] ([i915#1958]) -> [TIMEOUT][98] ([i915#1958] / [i915#2119]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-hsw4/igt@gem_exec_reloc@basic-concurrent16.html [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-hsw7/igt@gem_exec_reloc@basic-concurrent16.html * igt@i915_pm_dc@dc3co-vpb-simulation: - shard-iclb: [SKIP][99] ([i915#658]) -> [SKIP][100] ([i915#588]) [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-iclb6/igt@i915_pm_dc@dc3co-vpb-simulation.html [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html * igt@kms_color_chamelium@pipe-b-ctm-limited-range: - shard-apl: [SKIP][101] ([fdo#109271] / [fdo#111827]) -> [SKIP][102] ([fdo#109271] / [fdo#111827] / [i915#1635]) +3 similar issues [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl2/igt@kms_color_chamelium@pipe-b-ctm-limited-range.html [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl4/igt@kms_color_chamelium@pipe-b-ctm-limited-range.html * igt@kms_concurrent@pipe-d: - shard-snb: [SKIP][103] ([fdo#109271]) -> [TIMEOUT][104] ([i915#1958] / [i915#2119]) +2 similar issues [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-snb1/igt@kms_concurrent@pipe-d.html [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-snb4/igt@kms_concurrent@pipe-d.html * igt@kms_content_protection@atomic: - shard-kbl: [TIMEOUT][105] ([i915#1319] / [i915#1958]) -> [TIMEOUT][106] ([i915#1319] / [i915#1958] / [i915#2119]) +4 similar issues [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl1/igt@kms_content_protection@atomic.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl2/igt@kms_content_protection@atomic.html * igt@kms_cursor_crc@pipe-a-cursor-suspend: - shard-kbl: [DMESG-WARN][107] ([i915#180] / [i915#93] / [i915#95]) -> [DMESG-WARN][108] ([i915#180]) [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html * igt@kms_cursor_crc@pipe-d-cursor-512x512-random: - shard-apl: [SKIP][109] ([fdo#109271] / [i915#1635]) -> [SKIP][110] ([fdo#109271]) +14 similar issues [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl7/igt@kms_cursor_crc@pipe-d-cursor-512x512-random.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl6/igt@kms_cursor_crc@pipe-d-cursor-512x512-random.html * igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled: - shard-snb: [TIMEOUT][111] ([i915#1958]) -> [SKIP][112] ([fdo#109271]) +1 similar issue [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-snb2/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled.html [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-snb5/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled.html - shard-hsw: [TIMEOUT][113] ([i915#1958]) -> [SKIP][114] ([fdo#109271]) [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-hsw4/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled.html [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-hsw4/igt@kms_draw_crc@draw-method-rgb565-mmap-gtt-ytiled.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-kbl: [DMESG-WARN][115] ([i915#359]) -> [INCOMPLETE][116] ([i915#155]) [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl6/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_plane_alpha_blend@pipe-a-alpha-basic: - shard-apl: [DMESG-FAIL][117] ([fdo#108145] / [i915#1635] / [i915#95]) -> [FAIL][118] ([fdo#108145] / [i915#265]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl6/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html - shard-kbl: [DMESG-FAIL][119] ([fdo#108145] / [i915#95]) -> [FAIL][120] ([fdo#108145] / [i915#265]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl3/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl1/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html * igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb: - shard-kbl: [FAIL][121] ([fdo#108145] / [i915#265]) -> [DMESG-FAIL][122] ([fdo#108145] / [i915#95]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl4/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl6/igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb.html * igt@perf_pmu@semaphore-busy@rcs0: - shard-kbl: [FAIL][123] ([i915#1820]) -> [FAIL][124] ([i915#1820] / [i915#93] / [i915#95]) [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-kbl7/igt@perf_pmu@semaphore-busy@rcs0.html [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-kbl7/igt@perf_pmu@semaphore-busy@rcs0.html * igt@runner@aborted: - shard-apl: ([FAIL][125], [FAIL][126]) ([fdo#109271] / [i915#1610] / [i915#1635] / [i915#716]) -> [FAIL][127] ([i915#1635]) [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl7/igt@runner@aborted.html [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-apl1/igt@runner@aborted.html [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-apl6/igt@runner@aborted.html - shard-tglb: ([FAIL][128], [FAIL][129]) ([i915#1764] / [i915#2110]) -> [FAIL][130] ([i915#2110]) [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-tglb3/igt@runner@aborted.html [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8679/shard-tglb1/igt@runner@aborted.html [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/shard-tglb7/igt@runner@aborted.html [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118 [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319 [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436 [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542 [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155 [i915#1610]: https://gitlab.freedesktop.org/drm/intel/issues/1610 [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635 [i915#1764]: https://gitlab.freedesktop.org/drm/intel/issues/1764 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#1820]: https://gitlab.freedesktop.org/drm/intel/issues/1820 [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958 [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982 [i915#2110]: https://gitlab.freedesktop.org/drm/intel/issues/2110 [i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119 [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265 [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31 [i915#359]: https://gitlab.freedesktop.org/drm/intel/issues/359 [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402 [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49 [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54 [i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#70]: https://gitlab.freedesktop.org/drm/intel/issues/70 [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#93]: https://gitlab.freedesktop.org/drm/intel/issues/93 [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95 Participating hosts (11 -> 8) ------------------------------ Missing (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5718 -> IGTPW_4721 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_8679: 3e20fe558381bf798308d3a1171948676af22376 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_4721: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/index.html IGT_5718: af1ef32bfae90bcdbaf1b5d84c61ff4e04368505 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4721/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small delay to closure 2020-06-30 21:25 ` [igt-dev] " Chris Wilson @ 2020-07-01 12:39 ` Ruhl, Michael J -1 siblings, 0 replies; 8+ messages in thread From: Ruhl, Michael J @ 2020-07-01 12:39 UTC (permalink / raw) To: Chris Wilson, intel-gfx; +Cc: igt-dev >-----Original Message----- >From: Chris Wilson <chris@chris-wilson.co.uk> >Sent: Tuesday, June 30, 2020 5:25 PM >To: intel-gfx@lists.freedesktop.org >Cc: igt-dev@lists.freedesktop.org; Chris Wilson <chris@chris-wilson.co.uk>; >Ruhl, Michael J <michael.j.ruhl@intel.com> >Subject: [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small >delay to closure > >Keep the old handles in a small ring so that we build up a small amount >of pressure for i915_gem_close_object() and throw in a few concurrent >contexts so we have to process an obj->lut_list containing more than one >element. And to make sure the list is truly long enough to schedule, >start leaking the contexts. > >Note that the only correctness check is that the selfcopy doesn't >explode; the challenge would be to prove that the old handles are no >longer accessible via the execbuf lut. However, this is sufficient to >make sure we at least hit the interruptible spinlock used by >close-objects. > >Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> >Cc: Michael J. Ruhl <michael.j.ruhl@intel.com> >--- > tests/i915/gem_close_race.c | 68 +++++++++++++++++++++++++++++------- >- > 1 file changed, 53 insertions(+), 15 deletions(-) > >diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c >index db570e8fd..4b72d353c 100644 >--- a/tests/i915/gem_close_race.c >+++ b/tests/i915/gem_close_race.c >@@ -55,7 +55,7 @@ static bool has_64bit_relocations; > > #define sigev_notify_thread_id _sigev_un._tid > >-static void selfcopy(int fd, uint32_t handle, int loops) >+static void selfcopy(int fd, uint32_t ctx, uint32_t handle, int loops) > { > struct drm_i915_gem_relocation_entry reloc[2]; > struct drm_i915_gem_exec_object2 gem_exec[2]; >@@ -113,6 +113,7 @@ static void selfcopy(int fd, uint32_t handle, int loops) > execbuf.batch_len = (b - buf) * sizeof(*b); > if (HAS_BLT_RING(devid)) > execbuf.flags |= I915_EXEC_BLT; >+ execbuf.rsvd1 = ctx; > > memset(&gem_pwrite, 0, sizeof(gem_pwrite)); > gem_pwrite.handle = create.handle; >@@ -135,7 +136,7 @@ static uint32_t load(int fd) > if (handle == 0) > return 0; > >- selfcopy(fd, handle, 100); >+ selfcopy(fd, 0, handle, 100); > return handle; > } > >@@ -165,14 +166,19 @@ static void crashme_now(int sig) > #define usec(x) (1000*(x)) > #define msec(x) usec(1000*(x)) > >-static void threads(int timeout) >+static void thread(int fd, struct drm_gem_open name, >+ int timeout, unsigned int flags) >+#define CONTEXTS 0x1 > { > struct sigevent sev; > struct sigaction act; >- struct drm_gem_open name; > struct itimerspec its; >+ uint32_t *history; >+#define N_HISTORY (256) > timer_t timer; >- int fd; >+ >+ history = malloc(sizeof(*history) * N_HISTORY); >+ igt_assert(history); > > memset(&act, 0, sizeof(act)); > act.sa_handler = crashme_now; >@@ -184,28 +190,57 @@ static void threads(int timeout) > sev.sigev_signo = SIGRTMIN; > igt_assert(timer_create(CLOCK_MONOTONIC, &sev, &timer) == 0); > >- fd = drm_open_driver(DRIVER_INTEL); >- name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); >- > igt_until_timeout(timeout) { >- crashme.fd = drm_open_driver(DRIVER_INTEL); >+ unsigned int n = 0; >+ >+ memset(history, 0, sizeof(*history) * N_HISTORY); >+ >+ crashme.fd = gem_reopen_driver(fd); > > memset(&its, 0, sizeof(its)); >- its.it_value.tv_nsec = msec(1) + (rand() % msec(10)); >+ its.it_value.tv_nsec = msec(1) + (rand() % msec(150)); > igt_assert(timer_settime(timer, 0, &its, NULL) == 0); > > do { >- if (drmIoctl(crashme.fd, DRM_IOCTL_GEM_OPEN, >&name)) >+ uint32_t ctx = 0; >+ >+ if (drmIoctl(crashme.fd, >+ DRM_IOCTL_GEM_OPEN, >+ &name)) > break; > >- selfcopy(crashme.fd, name.handle, 100); >- drmIoctl(crashme.fd, DRM_IOCTL_GEM_CLOSE, >&name.handle); >+ if (flags & CONTEXTS) >+ __gem_context_create(crashme.fd, &ctx); >+ >+ selfcopy(crashme.fd, ctx, name.handle, 1); >+ >+ ctx = history[n % N_HISTORY]; Ahh this 'ctx' isn't really a context, it an unclosed handle. So the difference is that you keep around N_HISTORY open handles and the associated contexts (if requested) until the test is done. And 256 is enough history? Any concerns with faster CPU/GPUs? Looks like a good way to stress things. Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> M >+ if (ctx) >+ drmIoctl(crashme.fd, >+ DRM_IOCTL_GEM_CLOSE, >+ &ctx); >+ history[n % N_HISTORY] = name.handle; >+ n++; > } while (1); > > close(crashme.fd); > } > > timer_delete(timer); >+ free(history); >+} >+ >+static void threads(int timeout, unsigned int flags) >+{ >+ struct drm_gem_open name; >+ int fd; >+ >+ fd = drm_open_driver(DRIVER_INTEL); >+ name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); >+ >+ igt_fork(child, sysconf(_SC_NPROCESSORS_ONLN)) >+ thread(fd, name, timeout, flags); >+ igt_waitchildren(); > > gem_quiescent_gpu(fd); > close(fd); >@@ -233,7 +268,7 @@ igt_main > } > > igt_subtest("basic-threads") >- threads(1); >+ threads(1, 0); > > igt_subtest("process-exit") { > igt_fork(child, 768) >@@ -241,8 +276,11 @@ igt_main > igt_waitchildren(); > } > >+ igt_subtest("contexts") >+ threads(30, CONTEXTS); >+ > igt_subtest("gem-close-race") >- threads(150); >+ threads(150, 0); > > igt_fixture > igt_stop_hang_detector(); >-- >2.27.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small delay to closure @ 2020-07-01 12:39 ` Ruhl, Michael J 0 siblings, 0 replies; 8+ messages in thread From: Ruhl, Michael J @ 2020-07-01 12:39 UTC (permalink / raw) To: Chris Wilson, intel-gfx; +Cc: igt-dev >-----Original Message----- >From: Chris Wilson <chris@chris-wilson.co.uk> >Sent: Tuesday, June 30, 2020 5:25 PM >To: intel-gfx@lists.freedesktop.org >Cc: igt-dev@lists.freedesktop.org; Chris Wilson <chris@chris-wilson.co.uk>; >Ruhl, Michael J <michael.j.ruhl@intel.com> >Subject: [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small >delay to closure > >Keep the old handles in a small ring so that we build up a small amount >of pressure for i915_gem_close_object() and throw in a few concurrent >contexts so we have to process an obj->lut_list containing more than one >element. And to make sure the list is truly long enough to schedule, >start leaking the contexts. > >Note that the only correctness check is that the selfcopy doesn't >explode; the challenge would be to prove that the old handles are no >longer accessible via the execbuf lut. However, this is sufficient to >make sure we at least hit the interruptible spinlock used by >close-objects. > >Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> >Cc: Michael J. Ruhl <michael.j.ruhl@intel.com> >--- > tests/i915/gem_close_race.c | 68 +++++++++++++++++++++++++++++------- >- > 1 file changed, 53 insertions(+), 15 deletions(-) > >diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c >index db570e8fd..4b72d353c 100644 >--- a/tests/i915/gem_close_race.c >+++ b/tests/i915/gem_close_race.c >@@ -55,7 +55,7 @@ static bool has_64bit_relocations; > > #define sigev_notify_thread_id _sigev_un._tid > >-static void selfcopy(int fd, uint32_t handle, int loops) >+static void selfcopy(int fd, uint32_t ctx, uint32_t handle, int loops) > { > struct drm_i915_gem_relocation_entry reloc[2]; > struct drm_i915_gem_exec_object2 gem_exec[2]; >@@ -113,6 +113,7 @@ static void selfcopy(int fd, uint32_t handle, int loops) > execbuf.batch_len = (b - buf) * sizeof(*b); > if (HAS_BLT_RING(devid)) > execbuf.flags |= I915_EXEC_BLT; >+ execbuf.rsvd1 = ctx; > > memset(&gem_pwrite, 0, sizeof(gem_pwrite)); > gem_pwrite.handle = create.handle; >@@ -135,7 +136,7 @@ static uint32_t load(int fd) > if (handle == 0) > return 0; > >- selfcopy(fd, handle, 100); >+ selfcopy(fd, 0, handle, 100); > return handle; > } > >@@ -165,14 +166,19 @@ static void crashme_now(int sig) > #define usec(x) (1000*(x)) > #define msec(x) usec(1000*(x)) > >-static void threads(int timeout) >+static void thread(int fd, struct drm_gem_open name, >+ int timeout, unsigned int flags) >+#define CONTEXTS 0x1 > { > struct sigevent sev; > struct sigaction act; >- struct drm_gem_open name; > struct itimerspec its; >+ uint32_t *history; >+#define N_HISTORY (256) > timer_t timer; >- int fd; >+ >+ history = malloc(sizeof(*history) * N_HISTORY); >+ igt_assert(history); > > memset(&act, 0, sizeof(act)); > act.sa_handler = crashme_now; >@@ -184,28 +190,57 @@ static void threads(int timeout) > sev.sigev_signo = SIGRTMIN; > igt_assert(timer_create(CLOCK_MONOTONIC, &sev, &timer) == 0); > >- fd = drm_open_driver(DRIVER_INTEL); >- name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); >- > igt_until_timeout(timeout) { >- crashme.fd = drm_open_driver(DRIVER_INTEL); >+ unsigned int n = 0; >+ >+ memset(history, 0, sizeof(*history) * N_HISTORY); >+ >+ crashme.fd = gem_reopen_driver(fd); > > memset(&its, 0, sizeof(its)); >- its.it_value.tv_nsec = msec(1) + (rand() % msec(10)); >+ its.it_value.tv_nsec = msec(1) + (rand() % msec(150)); > igt_assert(timer_settime(timer, 0, &its, NULL) == 0); > > do { >- if (drmIoctl(crashme.fd, DRM_IOCTL_GEM_OPEN, >&name)) >+ uint32_t ctx = 0; >+ >+ if (drmIoctl(crashme.fd, >+ DRM_IOCTL_GEM_OPEN, >+ &name)) > break; > >- selfcopy(crashme.fd, name.handle, 100); >- drmIoctl(crashme.fd, DRM_IOCTL_GEM_CLOSE, >&name.handle); >+ if (flags & CONTEXTS) >+ __gem_context_create(crashme.fd, &ctx); >+ >+ selfcopy(crashme.fd, ctx, name.handle, 1); >+ >+ ctx = history[n % N_HISTORY]; Ahh this 'ctx' isn't really a context, it an unclosed handle. So the difference is that you keep around N_HISTORY open handles and the associated contexts (if requested) until the test is done. And 256 is enough history? Any concerns with faster CPU/GPUs? Looks like a good way to stress things. Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> M >+ if (ctx) >+ drmIoctl(crashme.fd, >+ DRM_IOCTL_GEM_CLOSE, >+ &ctx); >+ history[n % N_HISTORY] = name.handle; >+ n++; > } while (1); > > close(crashme.fd); > } > > timer_delete(timer); >+ free(history); >+} >+ >+static void threads(int timeout, unsigned int flags) >+{ >+ struct drm_gem_open name; >+ int fd; >+ >+ fd = drm_open_driver(DRIVER_INTEL); >+ name.name = gem_flink(fd, gem_create(fd, OBJECT_SIZE)); >+ >+ igt_fork(child, sysconf(_SC_NPROCESSORS_ONLN)) >+ thread(fd, name, timeout, flags); >+ igt_waitchildren(); > > gem_quiescent_gpu(fd); > close(fd); >@@ -233,7 +268,7 @@ igt_main > } > > igt_subtest("basic-threads") >- threads(1); >+ threads(1, 0); > > igt_subtest("process-exit") { > igt_fork(child, 768) >@@ -241,8 +276,11 @@ igt_main > igt_waitchildren(); > } > >+ igt_subtest("contexts") >+ threads(30, CONTEXTS); >+ > igt_subtest("gem-close-race") >- threads(150); >+ threads(150, 0); > > igt_fixture > igt_stop_hang_detector(); >-- >2.27.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Intel-gfx] [igt-dev] [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small delay to closure 2020-07-01 12:39 ` [igt-dev] " Ruhl, Michael J @ 2020-07-01 13:09 ` Chris Wilson -1 siblings, 0 replies; 8+ messages in thread From: Chris Wilson @ 2020-07-01 13:09 UTC (permalink / raw) To: Ruhl, Michael J, intel-gfx; +Cc: igt-dev Quoting Ruhl, Michael J (2020-07-01 13:39:22) > > do { > >- if (drmIoctl(crashme.fd, DRM_IOCTL_GEM_OPEN, > >&name)) > >+ uint32_t ctx = 0; > >+ > >+ if (drmIoctl(crashme.fd, > >+ DRM_IOCTL_GEM_OPEN, > >+ &name)) > > break; > > > >- selfcopy(crashme.fd, name.handle, 100); > >- drmIoctl(crashme.fd, DRM_IOCTL_GEM_CLOSE, > >&name.handle); > >+ if (flags & CONTEXTS) > >+ __gem_context_create(crashme.fd, &ctx); > >+ > >+ selfcopy(crashme.fd, ctx, name.handle, 1); > >+ > >+ ctx = history[n % N_HISTORY]; > > Ahh this 'ctx' isn't really a context, it an unclosed handle. Welcome to my world of laziness. > So the difference is that you keep around N_HISTORY open handles and > the associated contexts (if requested) until the test is done. > > And 256 is enough history? Any concerns with faster CPU/GPUs? It's a balancing between trying to keep the original test where we are closing handles as go along and keeping some around. On the slow atom with debug enabled, it would complete a few hundred cycles in the 100ms loop. So I picked 256 so that it would start evicting some old handles on some passes. For the purpose of hitting the bookmark, we just need to hit one case with more than one element. And I manually verified that the test case was seeing contention at that point, i.e. we released the spinlock so that another close_object was seeing the other bookmarks in its obj->lut_list walk. So I'm confident this will hit the path in question in CI, I'm not happy that it can't prove it did :| [At the extreme, we could look at the fairness of close_object!] > Looks like a good way to stress things. > > Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Ta, -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small delay to closure @ 2020-07-01 13:09 ` Chris Wilson 0 siblings, 0 replies; 8+ messages in thread From: Chris Wilson @ 2020-07-01 13:09 UTC (permalink / raw) To: Ruhl, Michael J, intel-gfx; +Cc: igt-dev Quoting Ruhl, Michael J (2020-07-01 13:39:22) > > do { > >- if (drmIoctl(crashme.fd, DRM_IOCTL_GEM_OPEN, > >&name)) > >+ uint32_t ctx = 0; > >+ > >+ if (drmIoctl(crashme.fd, > >+ DRM_IOCTL_GEM_OPEN, > >+ &name)) > > break; > > > >- selfcopy(crashme.fd, name.handle, 100); > >- drmIoctl(crashme.fd, DRM_IOCTL_GEM_CLOSE, > >&name.handle); > >+ if (flags & CONTEXTS) > >+ __gem_context_create(crashme.fd, &ctx); > >+ > >+ selfcopy(crashme.fd, ctx, name.handle, 1); > >+ > >+ ctx = history[n % N_HISTORY]; > > Ahh this 'ctx' isn't really a context, it an unclosed handle. Welcome to my world of laziness. > So the difference is that you keep around N_HISTORY open handles and > the associated contexts (if requested) until the test is done. > > And 256 is enough history? Any concerns with faster CPU/GPUs? It's a balancing between trying to keep the original test where we are closing handles as go along and keeping some around. On the slow atom with debug enabled, it would complete a few hundred cycles in the 100ms loop. So I picked 256 so that it would start evicting some old handles on some passes. For the purpose of hitting the bookmark, we just need to hit one case with more than one element. And I manually verified that the test case was seeing contention at that point, i.e. we released the spinlock so that another close_object was seeing the other bookmarks in its obj->lut_list walk. So I'm confident this will hit the path in question in CI, I'm not happy that it can't prove it did :| [At the extreme, we could look at the fairness of close_object!] > Looks like a good way to stress things. > > Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com> Ta, -Chris _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-07-01 13:09 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-06-30 21:25 [Intel-gfx] [PATCH i-g-t] i915/gem_close_race: Mix in a contexts and a small delay to closure Chris Wilson 2020-06-30 21:25 ` [igt-dev] " Chris Wilson 2020-07-01 3:17 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork 2020-07-01 5:43 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2020-07-01 12:39 ` [Intel-gfx] [PATCH i-g-t] " Ruhl, Michael J 2020-07-01 12:39 ` [igt-dev] " Ruhl, Michael J 2020-07-01 13:09 ` [Intel-gfx] " Chris Wilson 2020-07-01 13:09 ` Chris Wilson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.