* [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines
@ 2020-01-28 8:15 Bommu Krishnaiah
2020-01-28 8:15 ` [igt-dev] [PATCH i-g-t v4 1/1] " Bommu Krishnaiah
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Bommu Krishnaiah @ 2020-01-28 8:15 UTC (permalink / raw)
To: igt-dev; +Cc: Bommu Krishnaiah
Update the context with supported engines on the platform with set_property
I915_CONTEXT_PARAM_ENGINES to make sure the work load is submitted to
the available engines only.
v2: addressed the review comments.
v3: addressed v2 review comments.
V4: addressed v3 review comments.
In v4 Re-introduced the gem_context_set_all_engines() API,
test_process_mixed() test creating new forked process, to set engine map
to new forked process I added gem_context_set_all_engines() API.
Bommu Krishnaiah (1):
tests/i915/gem_ctx_persistence: Set context with supported engines
lib/i915/gem_engine_topology.c | 11 ++++++
lib/i915/gem_engine_topology.h | 2 +
tests/i915/gem_ctx_persistence.c | 65 ++++++++++++++++++++++++--------
3 files changed, 62 insertions(+), 16 deletions(-)
--
2.24.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 6+ messages in thread* [igt-dev] [PATCH i-g-t v4 1/1] tests/i915/gem_ctx_persistence: Set context with supported engines 2020-01-28 8:15 [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines Bommu Krishnaiah @ 2020-01-28 8:15 ` Bommu Krishnaiah 2020-01-28 9:00 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/gem_ctx_persistence: Set context with supported engines (rev4) Patchwork 2020-01-29 8:41 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2 siblings, 0 replies; 6+ messages in thread From: Bommu Krishnaiah @ 2020-01-28 8:15 UTC (permalink / raw) To: igt-dev; +Cc: Bommu Krishnaiah, Tvrtko Ursulin Update the context with supported engines on the platform with set_property I915_CONTEXT_PARAM_ENGINES to make sure the work load is submitted to the available engines only. v2: addressed the review comments. v3: addressed v2 review comments. V4: addressed v3 review comments. Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> --- lib/i915/gem_engine_topology.c | 11 ++++++ lib/i915/gem_engine_topology.h | 2 + tests/i915/gem_ctx_persistence.c | 65 ++++++++++++++++++++++++-------- 3 files changed, 62 insertions(+), 16 deletions(-) diff --git a/lib/i915/gem_engine_topology.c b/lib/i915/gem_engine_topology.c index 43a99e0f..ed6737ef 100644 --- a/lib/i915/gem_engine_topology.c +++ b/lib/i915/gem_engine_topology.c @@ -274,6 +274,17 @@ int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, return 0; } +void gem_context_set_all_engines(int fd, uint32_t ctx) +{ + DEFINE_CONTEXT_ENGINES_PARAM(engines, param, ctx, GEM_MAX_ENGINES); + struct intel_engine_data engine_data = { }; + + if (!gem_topology_get_param(fd, ¶m) && !param.size) { + query_engine_list(fd, &engine_data); + ctx_map_engines(fd, &engine_data, ¶m); + } +} + bool gem_has_engine_topology(int fd) { struct drm_i915_gem_context_param param = { diff --git a/lib/i915/gem_engine_topology.h b/lib/i915/gem_engine_topology.h index e40d7ec8..525741cc 100644 --- a/lib/i915/gem_engine_topology.h +++ b/lib/i915/gem_engine_topology.h @@ -51,6 +51,8 @@ void intel_next_engine(struct intel_engine_data *ed); int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, struct intel_execution_engine2 *e); +void gem_context_set_all_engines(int fd, uint32_t ctx); + bool gem_context_has_engine_map(int fd, uint32_t ctx); bool gem_engine_is_equal(const struct intel_execution_engine2 *e1, diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c index d68431ae..e0c6965a 100644 --- a/tests/i915/gem_ctx_persistence.c +++ b/tests/i915/gem_ctx_persistence.c @@ -156,7 +156,7 @@ static void test_persistence(int i915, unsigned int engine) * request is retired -- no early termination. */ - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, true); spin = igt_spin_new(i915, ctx, @@ -188,7 +188,7 @@ static void test_nonpersistent_cleanup(int i915, unsigned int engine) * any inflight request is cancelled. */ - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); spin = igt_spin_new(i915, ctx, @@ -217,7 +217,7 @@ static void test_nonpersistent_mixed(int i915, unsigned int engine) igt_spin_t *spin; uint32_t ctx; - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, i & 1); spin = igt_spin_new(i915, ctx, @@ -253,7 +253,7 @@ static void test_nonpersistent_hostile(int i915, unsigned int engine) * the requests and cleanup the context. */ - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); spin = igt_spin_new(i915, ctx, @@ -284,7 +284,7 @@ static void test_nonpersistent_hostile_preempt(int i915, unsigned int engine) igt_require(gem_scheduler_has_preemption(i915)); - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, true); gem_context_set_priority(i915, ctx, 0); spin[0] = igt_spin_new(i915, ctx, @@ -295,7 +295,7 @@ static void test_nonpersistent_hostile_preempt(int i915, unsigned int engine) igt_spin_busywait_until_started(spin[0]); - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); gem_context_set_priority(i915, ctx, 1); /* higher priority than 0 */ spin[1] = igt_spin_new(i915, ctx, @@ -385,7 +385,7 @@ static void test_nonpersistent_queued(int i915, unsigned int engine) gem_quiescent_gpu(i915); - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); spin = igt_spin_new(i915, ctx, .engine = engine, @@ -512,7 +512,8 @@ static void test_process_mixed(int i915, unsigned int engine) igt_spin_t *spin; uint32_t ctx; - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); + gem_context_set_all_engines(i915, ctx); gem_context_set_persistence(i915, ctx, persists); spin = igt_spin_new(i915, ctx, @@ -727,37 +728,69 @@ igt_main igt_subtest("hangcheck") test_nohangcheck_hostile(i915); - __for_each_static_engine(e) { + for_each_engine(e, i915) { igt_subtest_group { igt_fixture { gem_require_ring(i915, e->flags); gem_require_contexts(i915); } - igt_subtest_f("%s-persistence", e->name) + igt_subtest_f("legacy-%s-persistence", e->name) test_persistence(i915, e->flags); - igt_subtest_f("%s-cleanup", e->name) + igt_subtest_f("legacy-%s-cleanup", e->name) test_nonpersistent_cleanup(i915, e->flags); - igt_subtest_f("%s-queued", e->name) + igt_subtest_f("legacy-%s-queued", e->name) test_nonpersistent_queued(i915, e->flags); - igt_subtest_f("%s-mixed", e->name) + igt_subtest_f("legacy-%s-mixed", e->name) test_nonpersistent_mixed(i915, e->flags); - igt_subtest_f("%s-mixed-process", e->name) + igt_subtest_f("legacy-%s-mixed-process", e->name) test_process_mixed(i915, e->flags); - igt_subtest_f("%s-hostile", e->name) + igt_subtest_f("legacy-%s-hostile", e->name) test_nonpersistent_hostile(i915, e->flags); - igt_subtest_f("%s-hostile-preempt", e->name) + igt_subtest_f("legacy-%s-hostile-preempt", e->name) test_nonpersistent_hostile_preempt(i915, e->flags); } } + __for_each_physical_engine(i915, e) { + igt_subtest_group { + igt_fixture { + gem_require_ring(i915, e->flags); + gem_require_contexts(i915); + } + + igt_subtest_f("%s-persistence", e->name) + test_persistence(i915, e->flags); + + igt_subtest_f("%s-cleanup", e->name) + test_nonpersistent_cleanup(i915, e->flags); + + igt_subtest_f("%s-queued", e->name) + test_nonpersistent_queued(i915, e->flags); + + igt_subtest_f("%s-mixed", e->name) + test_nonpersistent_mixed(i915, e->flags); + + igt_subtest_f("%s-mixed-process", e->name) + test_process_mixed(i915, e->flags); + + igt_subtest_f("%s-hostile", e->name) + test_nonpersistent_hostile(i915, e->flags); + + igt_subtest_f("%s-hostile-preempt", e->name) + test_nonpersistent_hostile_preempt(i915, + e->flags); + } + } + + igt_subtest("smoketest") smoketest(i915); -- 2.24.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/gem_ctx_persistence: Set context with supported engines (rev4) 2020-01-28 8:15 [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines Bommu Krishnaiah 2020-01-28 8:15 ` [igt-dev] [PATCH i-g-t v4 1/1] " Bommu Krishnaiah @ 2020-01-28 9:00 ` Patchwork 2020-01-29 8:41 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2020-01-28 9:00 UTC (permalink / raw) To: Bommu Krishnaiah; +Cc: igt-dev == Series Details == Series: tests/i915/gem_ctx_persistence: Set context with supported engines (rev4) URL : https://patchwork.freedesktop.org/series/71810/ State : success == Summary == CI Bug Log - changes from CI_DRM_7828 -> IGTPW_4012 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_4012: ### IGT changes ### #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a: - {fi-kbl-7560u}: NOTRUN -> [DMESG-WARN][1] +2 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/fi-kbl-7560u/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html Known issues ------------ Here are the changes found in IGTPW_4012 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_close_race@basic-threads: - fi-byt-n2820: [PASS][2] -> [INCOMPLETE][3] ([i915#45]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/fi-byt-n2820/igt@gem_close_race@basic-threads.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/fi-byt-n2820/igt@gem_close_race@basic-threads.html * igt@i915_selftest@live_gem_contexts: - fi-skl-lmem: [PASS][4] -> [INCOMPLETE][5] ([i915#424]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html #### Possible fixes #### * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: [FAIL][6] ([fdo#111096] / [i915#323]) -> [PASS][7] [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096 [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323 [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424 [i915#45]: https://gitlab.freedesktop.org/drm/intel/issues/45 Participating hosts (40 -> 39) ------------------------------ Additional (7): fi-bsw-n3050 fi-cfl-8109u fi-bsw-kefka fi-kbl-7560u fi-bsw-nick fi-skl-6600u fi-snb-2600 Missing (8): fi-hsw-peppy fi-skl-guc fi-byt-squawks fi-cfl-8700k fi-ctg-p8600 fi-blb-e6850 fi-byt-clapper fi-bdw-samus Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5390 -> IGTPW_4012 CI-20190529: 20190529 CI_DRM_7828: 0af593e4d6eb72946a292a3cb80516c35c442e50 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_4012: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/index.html IGT_5390: b5a4fcb43909a7d1f0e9f358ed5b5ba8f3a98482 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/i915/gem_ctx_persistence: Set context with supported engines (rev4) 2020-01-28 8:15 [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines Bommu Krishnaiah 2020-01-28 8:15 ` [igt-dev] [PATCH i-g-t v4 1/1] " Bommu Krishnaiah 2020-01-28 9:00 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/gem_ctx_persistence: Set context with supported engines (rev4) Patchwork @ 2020-01-29 8:41 ` Patchwork 2 siblings, 0 replies; 6+ messages in thread From: Patchwork @ 2020-01-29 8:41 UTC (permalink / raw) To: Bommu Krishnaiah; +Cc: igt-dev == Series Details == Series: tests/i915/gem_ctx_persistence: Set context with supported engines (rev4) URL : https://patchwork.freedesktop.org/series/71810/ State : success == Summary == CI Bug Log - changes from CI_DRM_7828_full -> IGTPW_4012_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/index.html Known issues ------------ Here are the changes found in IGTPW_4012_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_isolation@rcs0-s3: - shard-kbl: [PASS][1] -> [DMESG-WARN][2] ([i915#180]) +4 similar issues [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-kbl2/igt@gem_ctx_isolation@rcs0-s3.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-kbl7/igt@gem_ctx_isolation@rcs0-s3.html * igt@gem_ctx_isolation@vcs1-dirty-create: - shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080]) +2 similar issues [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb2/igt@gem_ctx_isolation@vcs1-dirty-create.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb6/igt@gem_ctx_isolation@vcs1-dirty-create.html * igt@gem_exec_schedule@independent-bsd2: - shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276]) +20 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb2/igt@gem_exec_schedule@independent-bsd2.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb8/igt@gem_exec_schedule@independent-bsd2.html * igt@gem_exec_schedule@preempt-other-chain-bsd: - shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +6 similar issues [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb5/igt@gem_exec_schedule@preempt-other-chain-bsd.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb4/igt@gem_exec_schedule@preempt-other-chain-bsd.html * igt@gem_partial_pwrite_pread@writes-after-reads-uncached: - shard-hsw: [PASS][9] -> [FAIL][10] ([i915#694]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-hsw1/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-hsw7/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html * igt@gem_softpin@noreloc-s3: - shard-apl: [PASS][11] -> [DMESG-WARN][12] ([i915#180]) +2 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-apl3/igt@gem_softpin@noreloc-s3.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-apl6/igt@gem_softpin@noreloc-s3.html * igt@gem_userptr_blits@dmabuf-sync: - shard-snb: [PASS][13] -> [DMESG-WARN][14] ([fdo#111870] / [i915#478]) +1 similar issue [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-snb4/igt@gem_userptr_blits@dmabuf-sync.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-snb4/igt@gem_userptr_blits@dmabuf-sync.html * igt@i915_selftest@live_blt: - shard-hsw: [PASS][15] -> [DMESG-FAIL][16] ([i915#553] / [i915#725]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-hsw2/igt@i915_selftest@live_blt.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-hsw5/igt@i915_selftest@live_blt.html * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic: - shard-hsw: [PASS][17] -> [FAIL][18] ([i915#96]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-hsw2/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-hsw4/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html * igt@kms_flip@flip-vs-expired-vblank-interruptible: - shard-apl: [PASS][19] -> [FAIL][20] ([i915#79]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt: - shard-glk: [PASS][21] -> [FAIL][22] ([i915#49]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-glk5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt.html * igt@kms_properties@plane-properties-atomic: - shard-snb: [PASS][23] -> [SKIP][24] ([fdo#109271]) +3 similar issues [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-snb4/igt@kms_properties@plane-properties-atomic.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-snb1/igt@kms_properties@plane-properties-atomic.html * igt@kms_psr@no_drrs: - shard-iclb: [PASS][25] -> [FAIL][26] ([i915#173]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb7/igt@kms_psr@no_drrs.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb1/igt@kms_psr@no_drrs.html * igt@kms_psr@psr2_cursor_render: - shard-iclb: [PASS][27] -> [SKIP][28] ([fdo#109441]) +1 similar issue [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb2/igt@kms_psr@psr2_cursor_render.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb8/igt@kms_psr@psr2_cursor_render.html * igt@perf@gen12-mi-rpc: - shard-tglb: [PASS][29] -> [TIMEOUT][30] ([fdo#112271] / [i915#472]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-tglb8/igt@perf@gen12-mi-rpc.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-tglb2/igt@perf@gen12-mi-rpc.html * igt@perf_pmu@busy-no-semaphores-vcs1: - shard-iclb: [PASS][31] -> [SKIP][32] ([fdo#112080]) +9 similar issues [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb1/igt@perf_pmu@busy-no-semaphores-vcs1.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb5/igt@perf_pmu@busy-no-semaphores-vcs1.html * igt@prime_mmap_coherency@ioctl-errors: - shard-hsw: [PASS][33] -> [FAIL][34] ([i915#831]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-hsw7/igt@prime_mmap_coherency@ioctl-errors.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-hsw6/igt@prime_mmap_coherency@ioctl-errors.html #### Possible fixes #### * igt@gem_ctx_persistence@vcs1-mixed: - shard-iclb: [SKIP][35] ([fdo#109276] / [fdo#112080]) -> [PASS][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb6/igt@gem_ctx_persistence@vcs1-mixed.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb1/igt@gem_ctx_persistence@vcs1-mixed.html * igt@gem_exec_balancer@smoke: - shard-iclb: [SKIP][37] ([fdo#110854]) -> [PASS][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb7/igt@gem_exec_balancer@smoke.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb1/igt@gem_exec_balancer@smoke.html * igt@gem_exec_parallel@vcs1-fds: - shard-iclb: [SKIP][39] ([fdo#112080]) -> [PASS][40] +8 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb6/igt@gem_exec_parallel@vcs1-fds.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb4/igt@gem_exec_parallel@vcs1-fds.html * igt@gem_exec_schedule@pi-distinct-iova-bsd: - shard-iclb: [SKIP][41] ([i915#677]) -> [PASS][42] +1 similar issue [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb1/igt@gem_exec_schedule@pi-distinct-iova-bsd.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb7/igt@gem_exec_schedule@pi-distinct-iova-bsd.html * igt@gem_exec_schedule@preempt-queue-bsd1: - shard-iclb: [SKIP][43] ([fdo#109276]) -> [PASS][44] +15 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb3/igt@gem_exec_schedule@preempt-queue-bsd1.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb2/igt@gem_exec_schedule@preempt-queue-bsd1.html * igt@gem_exec_schedule@reorder-wide-bsd: - shard-iclb: [SKIP][45] ([fdo#112146]) -> [PASS][46] +6 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb2/igt@gem_exec_schedule@reorder-wide-bsd.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb5/igt@gem_exec_schedule@reorder-wide-bsd.html * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy: - shard-snb: [DMESG-WARN][47] ([fdo#111870] / [i915#478]) -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html * igt@gem_workarounds@suspend-resume: - shard-apl: [DMESG-WARN][49] ([i915#180]) -> [PASS][50] [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-apl4/igt@gem_workarounds@suspend-resume.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-apl1/igt@gem_workarounds@suspend-resume.html * igt@i915_pm_dc@dc6-psr: - shard-iclb: [FAIL][51] ([i915#454]) -> [PASS][52] [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb4/igt@i915_pm_dc@dc6-psr.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb4/igt@i915_pm_dc@dc6-psr.html * igt@i915_suspend@forcewake: - shard-kbl: [INCOMPLETE][53] ([fdo#103665] / [fdo#112219]) -> [PASS][54] [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-kbl3/igt@i915_suspend@forcewake.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-kbl3/igt@i915_suspend@forcewake.html * igt@kms_color@pipe-a-ctm-green-to-red: - shard-kbl: [FAIL][55] ([i915#129]) -> [PASS][56] [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-kbl3/igt@kms_color@pipe-a-ctm-green-to-red.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-kbl1/igt@kms_color@pipe-a-ctm-green-to-red.html - shard-apl: [FAIL][57] ([i915#129]) -> [PASS][58] [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-apl7/igt@kms_color@pipe-a-ctm-green-to-red.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-apl7/igt@kms_color@pipe-a-ctm-green-to-red.html * igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen: - shard-apl: [FAIL][59] ([i915#54]) -> [PASS][60] [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-apl7/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-apl6/igt@kms_cursor_crc@pipe-a-cursor-64x64-onscreen.html * igt@kms_cursor_crc@pipe-a-cursor-suspend: - shard-kbl: [DMESG-WARN][61] ([i915#180]) -> [PASS][62] +5 similar issues [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-kbl3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-kbl4/igt@kms_cursor_crc@pipe-a-cursor-suspend.html * igt@kms_flip@busy-flip: - shard-hsw: [INCOMPLETE][63] ([i915#61]) -> [PASS][64] [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-hsw6/igt@kms_flip@busy-flip.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-hsw7/igt@kms_flip@busy-flip.html * igt@kms_psr@psr2_sprite_plane_move: - shard-iclb: [SKIP][65] ([fdo#109441]) -> [PASS][66] +1 similar issue [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html * igt@kms_setmode@basic: - shard-apl: [FAIL][67] ([i915#31]) -> [PASS][68] [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-apl2/igt@kms_setmode@basic.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-apl4/igt@kms_setmode@basic.html * igt@prime_mmap_coherency@write: - shard-hsw: [FAIL][69] ([i915#914]) -> [PASS][70] [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-hsw4/igt@prime_mmap_coherency@write.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-hsw2/igt@prime_mmap_coherency@write.html #### Warnings #### * igt@gem_ctx_isolation@vcs1-nonpriv: - shard-iclb: [SKIP][71] ([fdo#109276] / [fdo#112080]) -> [FAIL][72] ([IGT#28]) +1 similar issue [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb3/igt@gem_ctx_isolation@vcs1-nonpriv.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb1/igt@gem_ctx_isolation@vcs1-nonpriv.html * igt@gem_ctx_persistence@vcs1-queued: - shard-iclb: [SKIP][73] ([fdo#109276] / [fdo#112080]) -> [SKIP][74] ([fdo#112080]) +6 similar issues [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-iclb6/igt@gem_ctx_persistence@vcs1-queued.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-iclb7/igt@gem_ctx_persistence@vcs1-queued.html * igt@gem_tiled_blits@normal: - shard-hsw: [FAIL][75] ([i915#818]) -> [FAIL][76] ([i915#694]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-hsw7/igt@gem_tiled_blits@normal.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-hsw8/igt@gem_tiled_blits@normal.html * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup: - shard-snb: [DMESG-WARN][77] ([fdo#111870] / [i915#478]) -> [DMESG-WARN][78] ([fdo#110789] / [fdo#111870] / [i915#478]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7828/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html [IGT#28]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28 [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789 [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854 [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870 [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080 [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146 [fdo#112219]: https://bugs.freedesktop.org/show_bug.cgi?id=112219 [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271 [i915#129]: https://gitlab.freedesktop.org/drm/intel/issues/129 [i915#173]: https://gitlab.freedesktop.org/drm/intel/issues/173 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472 [i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478 [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49 [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54 [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553 [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61 [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677 [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694 [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#818]: https://gitlab.freedesktop.org/drm/intel/issues/818 [i915#831]: https://gitlab.freedesktop.org/drm/intel/issues/831 [i915#914]: https://gitlab.freedesktop.org/drm/intel/issues/914 [i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96 Participating hosts (10 -> 8) ------------------------------ Missing (2): pig-skl-6260u pig-glk-j5005 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_5390 -> IGTPW_4012 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_7828: 0af593e4d6eb72946a292a3cb80516c35c442e50 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_4012: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4012/index.html IGT_5390: b5a4fcb43909a7d1f0e9f358ed5b5ba8f3a98482 @ 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_4012/index.html _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines @ 2020-01-28 9:12 Bommu Krishnaiah 2020-01-28 9:12 ` [igt-dev] [PATCH i-g-t v4 1/1] " Bommu Krishnaiah 0 siblings, 1 reply; 6+ messages in thread From: Bommu Krishnaiah @ 2020-01-28 9:12 UTC (permalink / raw) To: igt-dev; +Cc: Bommu Krishnaiah Update the context with supported engines on the platform with set_property I915_CONTEXT_PARAM_ENGINES to make sure the work load is submitted to the available engines only. v2: addressed the review comments. v3: addressed v2 review comments. V4: Re-introduced the gem_context_set_all_engines() API,test_process_mixed() test creating new forked process, to set engine map to new forked process I added gem_context_set_all_engines() API. Bommu Krishnaiah (1): tests/i915/gem_ctx_persistence: Set context with supported engines lib/i915/gem_engine_topology.c | 11 +++++++ lib/i915/gem_engine_topology.h | 2 ++ tests/i915/gem_ctx_persistence.c | 52 ++++++++++++++++++++++++++------ 3 files changed, 55 insertions(+), 10 deletions(-) -- 2.24.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
* [igt-dev] [PATCH i-g-t v4 1/1] tests/i915/gem_ctx_persistence: Set context with supported engines 2020-01-28 9:12 [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines Bommu Krishnaiah @ 2020-01-28 9:12 ` Bommu Krishnaiah 2020-01-28 9:41 ` Tvrtko Ursulin 0 siblings, 1 reply; 6+ messages in thread From: Bommu Krishnaiah @ 2020-01-28 9:12 UTC (permalink / raw) To: igt-dev; +Cc: Bommu Krishnaiah, Tvrtko Ursulin Update the context with supported engines on the platform with set_property I915_CONTEXT_PARAM_ENGINES to make sure the work load is submitted to the available engines only. v2: addressed the review comments. v3: addressed v2 review comments. V4: Re-introduced the gem_context_set_all_engines() API,test_process_mixed() test creating new forked process, to set engine map to new forked process I added gem_context_set_all_engines() API. Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> --- lib/i915/gem_engine_topology.c | 11 +++++++ lib/i915/gem_engine_topology.h | 2 ++ tests/i915/gem_ctx_persistence.c | 52 ++++++++++++++++++++++++++------ 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/lib/i915/gem_engine_topology.c b/lib/i915/gem_engine_topology.c index 43a99e0f..ed6737ef 100644 --- a/lib/i915/gem_engine_topology.c +++ b/lib/i915/gem_engine_topology.c @@ -274,6 +274,17 @@ int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, return 0; } +void gem_context_set_all_engines(int fd, uint32_t ctx) +{ + DEFINE_CONTEXT_ENGINES_PARAM(engines, param, ctx, GEM_MAX_ENGINES); + struct intel_engine_data engine_data = { }; + + if (!gem_topology_get_param(fd, ¶m) && !param.size) { + query_engine_list(fd, &engine_data); + ctx_map_engines(fd, &engine_data, ¶m); + } +} + bool gem_has_engine_topology(int fd) { struct drm_i915_gem_context_param param = { diff --git a/lib/i915/gem_engine_topology.h b/lib/i915/gem_engine_topology.h index e40d7ec8..525741cc 100644 --- a/lib/i915/gem_engine_topology.h +++ b/lib/i915/gem_engine_topology.h @@ -51,6 +51,8 @@ void intel_next_engine(struct intel_engine_data *ed); int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, struct intel_execution_engine2 *e); +void gem_context_set_all_engines(int fd, uint32_t ctx); + bool gem_context_has_engine_map(int fd, uint32_t ctx); bool gem_engine_is_equal(const struct intel_execution_engine2 *e1, diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c index d68431ae..4e1004c8 100644 --- a/tests/i915/gem_ctx_persistence.c +++ b/tests/i915/gem_ctx_persistence.c @@ -156,7 +156,7 @@ static void test_persistence(int i915, unsigned int engine) * request is retired -- no early termination. */ - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, true); spin = igt_spin_new(i915, ctx, @@ -188,7 +188,7 @@ static void test_nonpersistent_cleanup(int i915, unsigned int engine) * any inflight request is cancelled. */ - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); spin = igt_spin_new(i915, ctx, @@ -217,7 +217,7 @@ static void test_nonpersistent_mixed(int i915, unsigned int engine) igt_spin_t *spin; uint32_t ctx; - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, i & 1); spin = igt_spin_new(i915, ctx, @@ -253,7 +253,7 @@ static void test_nonpersistent_hostile(int i915, unsigned int engine) * the requests and cleanup the context. */ - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); spin = igt_spin_new(i915, ctx, @@ -284,7 +284,7 @@ static void test_nonpersistent_hostile_preempt(int i915, unsigned int engine) igt_require(gem_scheduler_has_preemption(i915)); - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, true); gem_context_set_priority(i915, ctx, 0); spin[0] = igt_spin_new(i915, ctx, @@ -295,7 +295,7 @@ static void test_nonpersistent_hostile_preempt(int i915, unsigned int engine) igt_spin_busywait_until_started(spin[0]); - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); gem_context_set_priority(i915, ctx, 1); /* higher priority than 0 */ spin[1] = igt_spin_new(i915, ctx, @@ -385,7 +385,7 @@ static void test_nonpersistent_queued(int i915, unsigned int engine) gem_quiescent_gpu(i915); - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); gem_context_set_persistence(i915, ctx, false); spin = igt_spin_new(i915, ctx, .engine = engine, @@ -512,7 +512,8 @@ static void test_process_mixed(int i915, unsigned int engine) igt_spin_t *spin; uint32_t ctx; - ctx = gem_context_create(i915); + ctx = gem_context_clone_with_engines(i915, 0); + gem_context_set_all_engines(i915, ctx); gem_context_set_persistence(i915, ctx, persists); spin = igt_spin_new(i915, ctx, @@ -727,13 +728,44 @@ igt_main igt_subtest("hangcheck") test_nohangcheck_hostile(i915); - __for_each_static_engine(e) { + for_each_engine(e, i915) { igt_subtest_group { igt_fixture { gem_require_ring(i915, e->flags); gem_require_contexts(i915); } + igt_subtest_f("legacy-%s-persistence", e->name) + test_persistence(i915, e->flags); + + igt_subtest_f("legacy-%s-cleanup", e->name) + test_nonpersistent_cleanup(i915, e->flags); + + igt_subtest_f("legacy-%s-queued", e->name) + test_nonpersistent_queued(i915, e->flags); + + igt_subtest_f("legacy-%s-mixed", e->name) + test_nonpersistent_mixed(i915, e->flags); + + igt_subtest_f("legacy-%s-mixed-process", e->name) + test_process_mixed(i915, e->flags); + + igt_subtest_f("legacy-%s-hostile", e->name) + test_nonpersistent_hostile(i915, e->flags); + + igt_subtest_f("legacy-%s-hostile-preempt", e->name) + test_nonpersistent_hostile_preempt(i915, + e->flags); + } + } + + __for_each_physical_engine(i915, e) { + igt_subtest_group { + igt_fixture { + gem_require_ring(i915, e->flags); + gem_require_contexts(i915); + } + igt_subtest_f("%s-persistence", e->name) test_persistence(i915, e->flags); @@ -753,7 +785,7 @@ igt_main test_nonpersistent_hostile(i915, e->flags); igt_subtest_f("%s-hostile-preempt", e->name) - test_nonpersistent_hostile_preempt(i915, + test_nonpersistent_hostile_preempt(i915, e->flags); } } -- 2.24.0 _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v4 1/1] tests/i915/gem_ctx_persistence: Set context with supported engines 2020-01-28 9:12 ` [igt-dev] [PATCH i-g-t v4 1/1] " Bommu Krishnaiah @ 2020-01-28 9:41 ` Tvrtko Ursulin 0 siblings, 0 replies; 6+ messages in thread From: Tvrtko Ursulin @ 2020-01-28 9:41 UTC (permalink / raw) To: Bommu Krishnaiah, igt-dev; +Cc: Tvrtko Ursulin On 28/01/2020 09:12, Bommu Krishnaiah wrote: > Update the context with supported engines on the platform with set_property > I915_CONTEXT_PARAM_ENGINES to make sure the work load is submitted to > the available engines only. > > v2: addressed the review comments. > v3: addressed v2 review comments. > V4: Re-introduced the gem_context_set_all_engines() API,test_process_mixed() > test creating new forked process, to set engine map to new forked process > I added gem_context_set_all_engines() API. I can remember two emails where I explained how we deliberately removed gem_context_set_all_engines and how gem_context_clone_with_engines should be used instead. Including a code sketch. Regards, Tvrtko > Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu@intel.com> > Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> > --- > lib/i915/gem_engine_topology.c | 11 +++++++ > lib/i915/gem_engine_topology.h | 2 ++ > tests/i915/gem_ctx_persistence.c | 52 ++++++++++++++++++++++++++------ > 3 files changed, 55 insertions(+), 10 deletions(-) > > diff --git a/lib/i915/gem_engine_topology.c b/lib/i915/gem_engine_topology.c > index 43a99e0f..ed6737ef 100644 > --- a/lib/i915/gem_engine_topology.c > +++ b/lib/i915/gem_engine_topology.c > @@ -274,6 +274,17 @@ int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, > return 0; > } > > +void gem_context_set_all_engines(int fd, uint32_t ctx) > +{ > + DEFINE_CONTEXT_ENGINES_PARAM(engines, param, ctx, GEM_MAX_ENGINES); > + struct intel_engine_data engine_data = { }; > + > + if (!gem_topology_get_param(fd, ¶m) && !param.size) { > + query_engine_list(fd, &engine_data); > + ctx_map_engines(fd, &engine_data, ¶m); > + } > +} > + > bool gem_has_engine_topology(int fd) > { > struct drm_i915_gem_context_param param = { > diff --git a/lib/i915/gem_engine_topology.h b/lib/i915/gem_engine_topology.h > index e40d7ec8..525741cc 100644 > --- a/lib/i915/gem_engine_topology.h > +++ b/lib/i915/gem_engine_topology.h > @@ -51,6 +51,8 @@ void intel_next_engine(struct intel_engine_data *ed); > int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, > struct intel_execution_engine2 *e); > > +void gem_context_set_all_engines(int fd, uint32_t ctx); > + > bool gem_context_has_engine_map(int fd, uint32_t ctx); > > bool gem_engine_is_equal(const struct intel_execution_engine2 *e1, > diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c > index d68431ae..4e1004c8 100644 > --- a/tests/i915/gem_ctx_persistence.c > +++ b/tests/i915/gem_ctx_persistence.c > @@ -156,7 +156,7 @@ static void test_persistence(int i915, unsigned int engine) > * request is retired -- no early termination. > */ > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > gem_context_set_persistence(i915, ctx, true); > > spin = igt_spin_new(i915, ctx, > @@ -188,7 +188,7 @@ static void test_nonpersistent_cleanup(int i915, unsigned int engine) > * any inflight request is cancelled. > */ > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > gem_context_set_persistence(i915, ctx, false); > > spin = igt_spin_new(i915, ctx, > @@ -217,7 +217,7 @@ static void test_nonpersistent_mixed(int i915, unsigned int engine) > igt_spin_t *spin; > uint32_t ctx; > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > gem_context_set_persistence(i915, ctx, i & 1); > > spin = igt_spin_new(i915, ctx, > @@ -253,7 +253,7 @@ static void test_nonpersistent_hostile(int i915, unsigned int engine) > * the requests and cleanup the context. > */ > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > gem_context_set_persistence(i915, ctx, false); > > spin = igt_spin_new(i915, ctx, > @@ -284,7 +284,7 @@ static void test_nonpersistent_hostile_preempt(int i915, unsigned int engine) > > igt_require(gem_scheduler_has_preemption(i915)); > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > gem_context_set_persistence(i915, ctx, true); > gem_context_set_priority(i915, ctx, 0); > spin[0] = igt_spin_new(i915, ctx, > @@ -295,7 +295,7 @@ static void test_nonpersistent_hostile_preempt(int i915, unsigned int engine) > > igt_spin_busywait_until_started(spin[0]); > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > gem_context_set_persistence(i915, ctx, false); > gem_context_set_priority(i915, ctx, 1); /* higher priority than 0 */ > spin[1] = igt_spin_new(i915, ctx, > @@ -385,7 +385,7 @@ static void test_nonpersistent_queued(int i915, unsigned int engine) > > gem_quiescent_gpu(i915); > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > gem_context_set_persistence(i915, ctx, false); > spin = igt_spin_new(i915, ctx, > .engine = engine, > @@ -512,7 +512,8 @@ static void test_process_mixed(int i915, unsigned int engine) > igt_spin_t *spin; > uint32_t ctx; > > - ctx = gem_context_create(i915); > + ctx = gem_context_clone_with_engines(i915, 0); > + gem_context_set_all_engines(i915, ctx); > gem_context_set_persistence(i915, ctx, persists); > > spin = igt_spin_new(i915, ctx, > @@ -727,13 +728,44 @@ igt_main > igt_subtest("hangcheck") > test_nohangcheck_hostile(i915); > > - __for_each_static_engine(e) { > + for_each_engine(e, i915) { > igt_subtest_group { > igt_fixture { > gem_require_ring(i915, e->flags); > gem_require_contexts(i915); > } > > + igt_subtest_f("legacy-%s-persistence", e->name) > + test_persistence(i915, e->flags); > + > + igt_subtest_f("legacy-%s-cleanup", e->name) > + test_nonpersistent_cleanup(i915, e->flags); > + > + igt_subtest_f("legacy-%s-queued", e->name) > + test_nonpersistent_queued(i915, e->flags); > + > + igt_subtest_f("legacy-%s-mixed", e->name) > + test_nonpersistent_mixed(i915, e->flags); > + > + igt_subtest_f("legacy-%s-mixed-process", e->name) > + test_process_mixed(i915, e->flags); > + > + igt_subtest_f("legacy-%s-hostile", e->name) > + test_nonpersistent_hostile(i915, e->flags); > + > + igt_subtest_f("legacy-%s-hostile-preempt", e->name) > + test_nonpersistent_hostile_preempt(i915, > + e->flags); > + } > + } > + > + __for_each_physical_engine(i915, e) { > + igt_subtest_group { > + igt_fixture { > + gem_require_ring(i915, e->flags); > + gem_require_contexts(i915); > + } > + > igt_subtest_f("%s-persistence", e->name) > test_persistence(i915, e->flags); > > @@ -753,7 +785,7 @@ igt_main > test_nonpersistent_hostile(i915, e->flags); > > igt_subtest_f("%s-hostile-preempt", e->name) > - test_nonpersistent_hostile_preempt(i915, > + test_nonpersistent_hostile_preempt(i915, > e->flags); > } > } > _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-01-29 8:41 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-01-28 8:15 [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines Bommu Krishnaiah 2020-01-28 8:15 ` [igt-dev] [PATCH i-g-t v4 1/1] " Bommu Krishnaiah 2020-01-28 9:00 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/i915/gem_ctx_persistence: Set context with supported engines (rev4) Patchwork 2020-01-29 8:41 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork -- strict thread matches above, loose matches on Subject: below -- 2020-01-28 9:12 [igt-dev] [PATCH i-g-t v4 0/1] tests/i915/gem_ctx_persistence: Set context with supported engines Bommu Krishnaiah 2020-01-28 9:12 ` [igt-dev] [PATCH i-g-t v4 1/1] " Bommu Krishnaiah 2020-01-28 9:41 ` Tvrtko Ursulin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox