* [igt-dev] [PATCH i-g-t] tests/xe_create: Unthread create-execqueues tests
@ 2023-12-05 21:10 Jonathan Cavitt
2023-12-05 22:26 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Jonathan Cavitt @ 2023-12-05 21:10 UTC (permalink / raw)
To: igt-dev; +Cc: lucas.demarchi, jonathan.cavitt, saurabhg.gupta
The inclusion of igt_fork in the test is designed to improve performance
by multithreading the process of execqueue creation. However, after
each execqueue is created on a thread, a context switch appears to occur,
causing all the execqueues created for that thread to be stored in memory
and all the execqueues for the other thread to be loaded. At scale, the
delays caused by repeated memory loads and unloads actually cause a
reduction in performance, and as such it's actually more performant to
create the execqueues serially rather than rely on forking.
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
CC: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
CC: Kamil Konieczny <kamil.konieczny@linux.intel.com>
CC: Lucas de Marchi <lucas.demarchi@intel.com>
CC: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
---
tests/intel/xe_create.c | 51 +++++++++++++++++------------------------
1 file changed, 21 insertions(+), 30 deletions(-)
diff --git a/tests/intel/xe_create.c b/tests/intel/xe_create.c
index bbdddc7c9b..f4a80aa155 100644
--- a/tests/intel/xe_create.c
+++ b/tests/intel/xe_create.c
@@ -136,47 +136,38 @@ static uint32_t __xe_exec_queue_create(int fd, uint32_t vm,
static void create_execqueues(int fd, enum exec_queue_destroy ed)
{
struct timespec tv = { };
- uint32_t num_engines, exec_queues_per_process, vm;
- int nproc = sysconf(_SC_NPROCESSORS_ONLN), seconds;
+ struct drm_xe_engine *engine;
+ uint32_t num_engines, vm;
+ int idx, err, i, seconds;
+ uint32_t exec_queue, exec_queues[MAXEXECQUEUES];
fd = drm_reopen_driver(fd);
num_engines = xe_number_engines(fd);
vm = xe_vm_create(fd, DRM_XE_VM_CREATE_FLAG_ASYNC_DEFAULT, 0);
- exec_queues_per_process = max_t(uint32_t, 1, MAXEXECQUEUES / nproc);
- igt_debug("nproc: %u, exec_queues per process: %u\n", nproc, exec_queues_per_process);
igt_nsec_elapsed(&tv);
- igt_fork(n, nproc) {
- struct drm_xe_engine *engine;
- uint32_t exec_queue, exec_queues[exec_queues_per_process];
- int idx, err, i;
-
- srandom(n);
-
- for (i = 0; i < exec_queues_per_process; i++) {
- idx = rand() % num_engines;
- engine = xe_engine(fd, idx);
- err = __xe_exec_queue_create(fd, vm, &engine->instance,
- 0, &exec_queue);
- igt_debug("[%2d] Create exec_queue: err=%d, exec_queue=%u [idx = %d]\n",
- n, err, exec_queue, i);
- if (err)
- break;
-
- if (ed == NOLEAK)
- exec_queues[i] = exec_queue;
- }
+ for (i = 0; i < MAXEXECQUEUES; i++) {
+ idx = rand() % num_engines;
+ engine = xe_engine(fd, idx);
+ err = __xe_exec_queue_create(fd, vm, &engine->instance,
+ 0, &exec_queue);
+ igt_debug("Create exec_queue: err=%d, exec_queue=%u [idx = %d]\n",
+ err, exec_queue, i);
+ if (err)
+ break;
+
+ if (ed == NOLEAK)
+ exec_queues[i] = exec_queue;
+ }
- if (ed == NOLEAK) {
- while (--i >= 0) {
- igt_debug("[%2d] Destroy exec_queue: %u\n", n, exec_queues[i]);
- xe_exec_queue_destroy(fd, exec_queues[i]);
- }
+ if (ed == NOLEAK) {
+ while (--i >= 0) {
+ igt_debug("Destroy exec_queue: %u\n", exec_queues[i]);
+ xe_exec_queue_destroy(fd, exec_queues[i]);
}
}
- igt_waitchildren();
xe_vm_destroy(fd, vm);
drm_close_driver(fd);
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [igt-dev] ✗ Fi.CI.BAT: failure for tests/xe_create: Unthread create-execqueues tests 2023-12-05 21:10 [igt-dev] [PATCH i-g-t] tests/xe_create: Unthread create-execqueues tests Jonathan Cavitt @ 2023-12-05 22:26 ` Patchwork 2023-12-05 23:49 ` [igt-dev] ✗ CI.xeBAT: " Patchwork 2023-12-07 7:39 ` [igt-dev] [PATCH i-g-t] " Zbigniew Kempczyński 2 siblings, 0 replies; 4+ messages in thread From: Patchwork @ 2023-12-05 22:26 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 11432 bytes --] == Series Details == Series: tests/xe_create: Unthread create-execqueues tests URL : https://patchwork.freedesktop.org/series/127389/ State : failure == Summary == CI Bug Log - changes from CI_DRM_13983 -> IGTPW_10345 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with IGTPW_10345 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in IGTPW_10345, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/index.html Participating hosts (35 -> 34) ------------------------------ Additional (2): bat-dg2-8 bat-mtlp-8 Missing (3): bat-kbl-2 bat-adlp-11 fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_10345: ### IGT changes ### #### Possible regressions #### * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence: - bat-adlp-9: NOTRUN -> [SKIP][1] +2 other tests skip [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-adlp-9/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html * igt@kms_psr@psr_cursor_plane_move: - bat-mtlp-8: NOTRUN -> [SKIP][2] +3 other tests skip [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_psr@psr_cursor_plane_move.html Known issues ------------ Here are the changes found in IGTPW_10345 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@core_hotunplug@unbind-rebind: - bat-mtlp-8: NOTRUN -> [ABORT][3] ([i915#8213] / [i915#8668]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@core_hotunplug@unbind-rebind.html - bat-dg2-8: NOTRUN -> [ABORT][4] ([i915#8213]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@core_hotunplug@unbind-rebind.html * igt@debugfs_test@basic-hwmon: - bat-mtlp-8: NOTRUN -> [SKIP][5] ([i915#9318]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@debugfs_test@basic-hwmon.html * igt@gem_mmap@basic: - bat-mtlp-8: NOTRUN -> [SKIP][6] ([i915#4083]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@gem_mmap@basic.html - bat-dg2-8: NOTRUN -> [SKIP][7] ([i915#4083]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@gem_mmap@basic.html * igt@gem_mmap_gtt@basic: - bat-mtlp-8: NOTRUN -> [SKIP][8] ([i915#4077]) +2 other tests skip [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@gem_mmap_gtt@basic.html - bat-dg2-8: NOTRUN -> [SKIP][9] ([i915#4077]) +2 other tests skip [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@gem_mmap_gtt@basic.html * igt@gem_render_tiled_blits@basic: - bat-mtlp-8: NOTRUN -> [SKIP][10] ([i915#4079]) +1 other test skip [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@gem_render_tiled_blits@basic.html * igt@gem_tiled_pread_basic: - bat-dg2-8: NOTRUN -> [SKIP][11] ([i915#4079]) +1 other test skip [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@gem_tiled_pread_basic.html * igt@i915_pm_rps@basic-api: - bat-mtlp-8: NOTRUN -> [SKIP][12] ([i915#6621]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@i915_pm_rps@basic-api.html - bat-dg2-8: NOTRUN -> [SKIP][13] ([i915#6621]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@i915_pm_rps@basic-api.html * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy: - bat-mtlp-8: NOTRUN -> [SKIP][14] ([i915#5190]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html - bat-dg2-8: NOTRUN -> [SKIP][15] ([i915#5190]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html * igt@kms_addfb_basic@basic-y-tiled-legacy: - bat-mtlp-8: NOTRUN -> [SKIP][16] ([i915#4212]) +8 other tests skip [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html - bat-dg2-8: NOTRUN -> [SKIP][17] ([i915#4215] / [i915#5190]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_addfb_basic@basic-y-tiled-legacy.html * igt@kms_addfb_basic@framebuffer-vs-set-tiling: - bat-dg2-8: NOTRUN -> [SKIP][18] ([i915#4212]) +6 other tests skip [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_addfb_basic@framebuffer-vs-set-tiling.html * igt@kms_addfb_basic@tile-pitch-mismatch: - bat-dg2-8: NOTRUN -> [SKIP][19] ([i915#4212] / [i915#5608]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-mtlp-8: NOTRUN -> [SKIP][20] ([i915#4213]) +1 other test skip [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html - bat-dg2-8: NOTRUN -> [SKIP][21] ([i915#4103] / [i915#4213] / [i915#5608]) +1 other test skip [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_dsc@dsc-basic: - bat-mtlp-8: NOTRUN -> [SKIP][22] ([i915#3555] / [i915#3840] / [i915#9159]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_dsc@dsc-basic.html * igt@kms_force_connector_basic@force-load-detect: - bat-mtlp-8: NOTRUN -> [SKIP][23] ([fdo#109285]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_force_connector_basic@force-load-detect.html - bat-dg2-8: NOTRUN -> [SKIP][24] ([fdo#109285]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_force_connector_basic@force-load-detect.html * igt@kms_force_connector_basic@prune-stale-modes: - bat-mtlp-8: NOTRUN -> [SKIP][25] ([i915#5274]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_force_connector_basic@prune-stale-modes.html - bat-dg2-8: NOTRUN -> [SKIP][26] ([i915#5274]) [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html * igt@kms_pm_backlight@basic-brightness: - bat-dg2-8: NOTRUN -> [SKIP][27] ([i915#5354]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_pm_backlight@basic-brightness.html * igt@kms_psr@psr_cursor_plane_move: - bat-dg2-8: NOTRUN -> [SKIP][28] ([i915#9673] / [i915#9736]) +3 other tests skip [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_psr@psr_cursor_plane_move.html * igt@kms_setmode@basic-clone-single-crtc: - bat-mtlp-8: NOTRUN -> [SKIP][29] ([i915#3555] / [i915#8809]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@kms_setmode@basic-clone-single-crtc.html - bat-dg2-8: NOTRUN -> [SKIP][30] ([i915#3555]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@kms_setmode@basic-clone-single-crtc.html * igt@prime_vgem@basic-fence-flip: - bat-dg2-8: NOTRUN -> [SKIP][31] ([i915#3708]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@prime_vgem@basic-fence-flip.html * igt@prime_vgem@basic-fence-mmap: - bat-dg2-8: NOTRUN -> [SKIP][32] ([i915#3708] / [i915#4077]) +1 other test skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@prime_vgem@basic-fence-mmap.html - bat-mtlp-8: NOTRUN -> [SKIP][33] ([i915#3708] / [i915#4077]) +1 other test skip [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@prime_vgem@basic-fence-mmap.html * igt@prime_vgem@basic-fence-read: - bat-mtlp-8: NOTRUN -> [SKIP][34] ([i915#3708]) +2 other tests skip [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-mtlp-8/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-write: - bat-dg2-8: NOTRUN -> [SKIP][35] ([i915#3291] / [i915#3708]) +2 other tests skip [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/bat-dg2-8/igt@prime_vgem@basic-write.html #### Possible fixes #### * igt@kms_hdmi_inject@inject-audio: - fi-kbl-guc: [FAIL][36] ([IGT#3]) -> [PASS][37] [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13983/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/fi-kbl-guc/igt@kms_hdmi_inject@inject-audio.html [IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3 [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285 [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212 [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213 [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5608]: https://gitlab.freedesktop.org/drm/intel/issues/5608 [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621 [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 [i915#8809]: https://gitlab.freedesktop.org/drm/intel/issues/8809 [i915#9159]: https://gitlab.freedesktop.org/drm/intel/issues/9159 [i915#9318]: https://gitlab.freedesktop.org/drm/intel/issues/9318 [i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673 [i915#9736]: https://gitlab.freedesktop.org/drm/intel/issues/9736 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7622 -> IGTPW_10345 CI-20190529: 20190529 CI_DRM_13983: a9d99261a978835b02e248fe18af3026416af3e8 @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_10345: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/index.html IGT_7622: 48a47d91b7727215b965690c69d84159c8fb1aa2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- -igt@xe_exec_basic@zero-execs -igt@xe_vm@zero-binds == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/index.html [-- Attachment #2: Type: text/html, Size: 14309 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* [igt-dev] ✗ CI.xeBAT: failure for tests/xe_create: Unthread create-execqueues tests 2023-12-05 21:10 [igt-dev] [PATCH i-g-t] tests/xe_create: Unthread create-execqueues tests Jonathan Cavitt 2023-12-05 22:26 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork @ 2023-12-05 23:49 ` Patchwork 2023-12-07 7:39 ` [igt-dev] [PATCH i-g-t] " Zbigniew Kempczyński 2 siblings, 0 replies; 4+ messages in thread From: Patchwork @ 2023-12-05 23:49 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 4466 bytes --] == Series Details == Series: tests/xe_create: Unthread create-execqueues tests URL : https://patchwork.freedesktop.org/series/127389/ State : failure == Summary == CI Bug Log - changes from XEIGT_7622_BAT -> XEIGTPW_10345_BAT ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with XEIGTPW_10345_BAT absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in XEIGTPW_10345_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them to document this new failure mode, which will reduce false positives in CI. Participating hosts (4 -> 4) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in XEIGTPW_10345_BAT: ### IGT changes ### #### Possible regressions #### * igt@xe_prime_self_import@basic-with_fd_dup: - bat-atsm-2: [PASS][1] -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7622/bat-atsm-2/igt@xe_prime_self_import@basic-with_fd_dup.html [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10345/bat-atsm-2/igt@xe_prime_self_import@basic-with_fd_dup.html Known issues ------------ Here are the changes found in XEIGTPW_10345_BAT that come from known issues: ### IGT changes ### #### Issues hit #### * igt@kms_pipe_crc_basic@hang-read-crc: - bat-dg2-oem2: [PASS][3] -> [DMESG-WARN][4] ([Intel XE#282] / [i915#2017]) +5 other tests dmesg-warn [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7622/bat-dg2-oem2/igt@kms_pipe_crc_basic@hang-read-crc.html [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10345/bat-dg2-oem2/igt@kms_pipe_crc_basic@hang-read-crc.html #### Possible fixes #### * igt@kms_flip@basic-flip-vs-wf_vblank@a-dp3: - bat-dg2-oem2: [FAIL][5] ([Intel XE#480]) -> [PASS][6] +1 other test pass [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7622/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp3.html [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10345/bat-dg2-oem2/igt@kms_flip@basic-flip-vs-wf_vblank@a-dp3.html * igt@xe_create@create-execqueues-noleak: - bat-adlp-7: [FAIL][7] ([Intel XE#524]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7622/bat-adlp-7/igt@xe_create@create-execqueues-noleak.html [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10345/bat-adlp-7/igt@xe_create@create-execqueues-noleak.html - bat-atsm-2: [FAIL][9] ([Intel XE#524]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7622/bat-atsm-2/igt@xe_create@create-execqueues-noleak.html [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10345/bat-atsm-2/igt@xe_create@create-execqueues-noleak.html #### Warnings #### * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12: - bat-dg2-oem2: [FAIL][11] ([Intel XE#400] / [Intel XE#616]) -> [DMESG-FAIL][12] ([Intel XE#282] / [i915#2017]) +1 other test dmesg-fail [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7622/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10345/bat-dg2-oem2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html [Intel XE#282]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/282 [Intel XE#400]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/400 [Intel XE#480]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/480 [Intel XE#524]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/524 [Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616 [i915#2017]: https://gitlab.freedesktop.org/drm/intel/issues/2017 Build changes ------------- * IGT: IGT_7622 -> IGTPW_10345 * Linux: xe-550-ac7b89571d802765762e7c15d78a6dcd5d92c41b -> xe-551-176c42b6ba690d4c84e37f151e832d5520a38354 IGTPW_10345: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10345/index.html IGT_7622: 48a47d91b7727215b965690c69d84159c8fb1aa2 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git xe-550-ac7b89571d802765762e7c15d78a6dcd5d92c41b: ac7b89571d802765762e7c15d78a6dcd5d92c41b xe-551-176c42b6ba690d4c84e37f151e832d5520a38354: 176c42b6ba690d4c84e37f151e832d5520a38354 == Logs == For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10345/index.html [-- Attachment #2: Type: text/html, Size: 5377 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] tests/xe_create: Unthread create-execqueues tests 2023-12-05 21:10 [igt-dev] [PATCH i-g-t] tests/xe_create: Unthread create-execqueues tests Jonathan Cavitt 2023-12-05 22:26 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork 2023-12-05 23:49 ` [igt-dev] ✗ CI.xeBAT: " Patchwork @ 2023-12-07 7:39 ` Zbigniew Kempczyński 2 siblings, 0 replies; 4+ messages in thread From: Zbigniew Kempczyński @ 2023-12-07 7:39 UTC (permalink / raw) To: Jonathan Cavitt; +Cc: igt-dev, saurabhg.gupta, lucas.demarchi On Tue, Dec 05, 2023 at 01:10:20PM -0800, Jonathan Cavitt wrote: > The inclusion of igt_fork in the test is designed to improve performance > by multithreading the process of execqueue creation. However, after > each execqueue is created on a thread, a context switch appears to occur, > causing all the execqueues created for that thread to be stored in memory > and all the execqueues for the other thread to be loaded. At scale, the > delays caused by repeated memory loads and unloads actually cause a > reduction in performance, and as such it's actually more performant to > create the execqueues serially rather than rely on forking. Test is hostile and tries to mimic process concurrency on creation/deletion of execqueues. I've observed two bad behaviors - first kernel lockup for two minutes on 'LEAK' version (destroying execqueues is triggered by closing drm fd). In this case system was totally unresponding but not crashed. After ~2 minutes it became responsive again. Increasing number of execqueues makes this unresponsive time longer). Second thing is timely non-linear behavior. So your change can't be accepted as it hides the problem described above. Question is - what are limits we agree - MAXTIME/MAXEXECQUEUES? -- Zbigniew > > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > CC: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> > CC: Kamil Konieczny <kamil.konieczny@linux.intel.com> > CC: Lucas de Marchi <lucas.demarchi@intel.com> > CC: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com> > --- > tests/intel/xe_create.c | 51 +++++++++++++++++------------------------ > 1 file changed, 21 insertions(+), 30 deletions(-) > > diff --git a/tests/intel/xe_create.c b/tests/intel/xe_create.c > index bbdddc7c9b..f4a80aa155 100644 > --- a/tests/intel/xe_create.c > +++ b/tests/intel/xe_create.c > @@ -136,47 +136,38 @@ static uint32_t __xe_exec_queue_create(int fd, uint32_t vm, > static void create_execqueues(int fd, enum exec_queue_destroy ed) > { > struct timespec tv = { }; > - uint32_t num_engines, exec_queues_per_process, vm; > - int nproc = sysconf(_SC_NPROCESSORS_ONLN), seconds; > + struct drm_xe_engine *engine; > + uint32_t num_engines, vm; > + int idx, err, i, seconds; > + uint32_t exec_queue, exec_queues[MAXEXECQUEUES]; > > fd = drm_reopen_driver(fd); > num_engines = xe_number_engines(fd); > vm = xe_vm_create(fd, DRM_XE_VM_CREATE_FLAG_ASYNC_DEFAULT, 0); > > - exec_queues_per_process = max_t(uint32_t, 1, MAXEXECQUEUES / nproc); > - igt_debug("nproc: %u, exec_queues per process: %u\n", nproc, exec_queues_per_process); > > igt_nsec_elapsed(&tv); > > - igt_fork(n, nproc) { > - struct drm_xe_engine *engine; > - uint32_t exec_queue, exec_queues[exec_queues_per_process]; > - int idx, err, i; > - > - srandom(n); > - > - for (i = 0; i < exec_queues_per_process; i++) { > - idx = rand() % num_engines; > - engine = xe_engine(fd, idx); > - err = __xe_exec_queue_create(fd, vm, &engine->instance, > - 0, &exec_queue); > - igt_debug("[%2d] Create exec_queue: err=%d, exec_queue=%u [idx = %d]\n", > - n, err, exec_queue, i); > - if (err) > - break; > - > - if (ed == NOLEAK) > - exec_queues[i] = exec_queue; > - } > + for (i = 0; i < MAXEXECQUEUES; i++) { > + idx = rand() % num_engines; > + engine = xe_engine(fd, idx); > + err = __xe_exec_queue_create(fd, vm, &engine->instance, > + 0, &exec_queue); > + igt_debug("Create exec_queue: err=%d, exec_queue=%u [idx = %d]\n", > + err, exec_queue, i); > + if (err) > + break; > + > + if (ed == NOLEAK) > + exec_queues[i] = exec_queue; > + } > > - if (ed == NOLEAK) { > - while (--i >= 0) { > - igt_debug("[%2d] Destroy exec_queue: %u\n", n, exec_queues[i]); > - xe_exec_queue_destroy(fd, exec_queues[i]); > - } > + if (ed == NOLEAK) { > + while (--i >= 0) { > + igt_debug("Destroy exec_queue: %u\n", exec_queues[i]); > + xe_exec_queue_destroy(fd, exec_queues[i]); > } > } > - igt_waitchildren(); > > xe_vm_destroy(fd, vm); > drm_close_driver(fd); > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-12-07 7:39 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-12-05 21:10 [igt-dev] [PATCH i-g-t] tests/xe_create: Unthread create-execqueues tests Jonathan Cavitt 2023-12-05 22:26 ` [igt-dev] ✗ Fi.CI.BAT: failure for " Patchwork 2023-12-05 23:49 ` [igt-dev] ✗ CI.xeBAT: " Patchwork 2023-12-07 7:39 ` [igt-dev] [PATCH i-g-t] " Zbigniew Kempczyński
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox