* [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size
@ 2024-06-26 12:38 Thomas Hellström
2024-06-26 12:38 ` [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set Thomas Hellström
` (5 more replies)
0 siblings, 6 replies; 11+ messages in thread
From: Thomas Hellström @ 2024-06-26 12:38 UTC (permalink / raw)
To: igt-dev; +Cc: Thomas Hellström, Matthew Brost, Maarten Lankhorst
It turns out that xe_evict in the cm and thread mode is a very good test for
exhaustive eviction. But the test sometimes uses a working set that doesn't fit
in gpu-accessible memory and a total memory size that exceeds the available
system size. Attempt to fix that to avoid false failures. With these fixes
the test should pass unless in -cm mode or multithreaded mode. These require
fixes for exhaustive eviction in the xe kernel driver.
Thomas Hellström (2):
tests/intel/xe_evict: Reduce allocations to maximum working set
tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction
tests/intel/xe_evict.c | 126 ++++++++++++++++++++++++++++++++---------
1 file changed, 99 insertions(+), 27 deletions(-)
--
2.44.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set
2024-06-26 12:38 [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size Thomas Hellström
@ 2024-06-26 12:38 ` Thomas Hellström
2024-06-27 6:29 ` Matthew Brost
2024-06-26 12:38 ` [PATCH i-g-t 2/2] tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction Thomas Hellström
` (4 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Thomas Hellström @ 2024-06-26 12:38 UTC (permalink / raw)
To: igt-dev
Cc: Thomas Hellström, Matthew Brost, Maarten Lankhorst,
Zbigniew Kempczyński
Current xe kmd allows for a maximum working set of VRAM plus
half of system memory, or if the working set is allowed only in
VRAM, the working set is limited to VRAM.
Some subtests attempt to exceed that. Detect when that happens
and limit the working set accordingly.
v2:
- The determination for which flags system bos are allowed in the
working set was incorrect. Fix. (Zbigniew Kempczyński)
- Fix a typo.
- Add an assert that vram_size is indeed > 0.
(Zbigniew Kempczyński, Thomas)
- Add asserts and make sure that the bo is bound to the same
vm the exec_queue is using.
- Increase the allowed set size for the multi-vm test.
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
tests/intel/xe_evict.c | 89 ++++++++++++++++++++++++++++++++++++------
1 file changed, 76 insertions(+), 13 deletions(-)
diff --git a/tests/intel/xe_evict.c b/tests/intel/xe_evict.c
index eebdbc84b..5691ad021 100644
--- a/tests/intel/xe_evict.c
+++ b/tests/intel/xe_evict.c
@@ -97,6 +97,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
uint32_t _vm = (flags & EXTERNAL_OBJ) &&
i < n_execs / 8 ? 0 : vm;
+ igt_assert((e & 1) == (i & 1));
if (flags & MULTI_VM) {
__bo = bo[i] = xe_bo_create(fd, 0,
bo_size,
@@ -115,6 +116,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
}
} else {
+ igt_assert((e & 1) == ((i % (n_execs / 2)) & 1));
__bo = bo[i % (n_execs / 2)];
}
if (i)
@@ -273,6 +275,7 @@ test_evict_cm(int fd, struct drm_xe_engine_class_instance *eci,
uint32_t _vm = (flags & EXTERNAL_OBJ) &&
i < n_execs / 8 ? 0 : vm;
+ igt_assert((e & 1) == (i & 1));
if (flags & MULTI_VM) {
__bo = bo[i] = xe_bo_create(fd, 0,
bo_size,
@@ -291,6 +294,7 @@ test_evict_cm(int fd, struct drm_xe_engine_class_instance *eci,
DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
}
} else {
+ igt_assert((e & 1) == ((i % (n_execs / 2)) & 1));
__bo = bo[i % (n_execs / 2)];
}
if (i)
@@ -458,6 +462,46 @@ static uint64_t calc_bo_size(uint64_t vram_size, int mul, int div)
return (ALIGN(vram_size, SZ_256M) * mul) / div; /* small-bar */
}
+static unsigned int working_set(uint64_t vram_size, uint64_t system_size,
+ uint64_t bo_size, unsigned int num_threads,
+ unsigned int flags)
+{
+ uint64_t set_size;
+ uint64_t total_size;
+
+ igt_assert(vram_size > 0);
+
+ set_size = (vram_size - 1) / bo_size;
+
+ /*
+ * Working set resides also in system?
+ * Currently system graphics memory is limited to 50% of total.
+ */
+ if (!(flags & (THREADED | MULTI_VM)))
+ set_size += (system_size / 2) / bo_size;
+
+ /* Set sizes are per vm. In the multi-vm case we use 2 vms. */
+ if (flags & MULTI_VM)
+ set_size *= 2;
+
+ /* All bos must fit in memory, assuming no swapping */
+ total_size = ((vram_size - 1) / bo_size + system_size / bo_size) /
+ num_threads;
+
+ if (set_size > total_size)
+ set_size = total_size;
+
+ /* bos are only created on half of the execs. */
+ set_size *= 2;
+
+ /*
+ * Align down to ensure the vm the bo is bound to matches the vm
+ * used by the exec_queue, fulfilling the asserts in the
+ * tests.
+ */
+ return ALIGN_DOWN(set_size, 4);
+}
+
/**
* SUBTEST: evict-%s
* Description: %arg[1] evict test.
@@ -748,6 +792,7 @@ igt_main
{ NULL },
};
uint64_t vram_size;
+ uint64_t system_size;
int fd;
igt_fixture {
@@ -755,14 +800,16 @@ igt_main
igt_require(xe_has_vram(fd));
vram_size = xe_visible_vram_size(fd, 0);
igt_assert(vram_size);
+ system_size = igt_get_avail_ram_mb() << 20;
/* Test requires SRAM to about as big as VRAM. For example, small-cm creates
* (448 / 2) BOs with a size (1 / 128) of the total VRAM size. For
* simplicity ensure the SRAM size >= VRAM before running this test.
*/
- igt_skip_on_f(igt_get_avail_ram_mb() < (vram_size >> 20),
- "System memory %lu MiB is less than local memory %lu MiB\n",
- igt_get_avail_ram_mb(), vram_size >> 20);
+ igt_skip_on_f(system_size < vram_size,
+ "System memory %llu MiB is less than local memory %llu MiB\n",
+ (unsigned long long)system_size >> 20,
+ (unsigned long long)vram_size >> 20);
xe_for_each_engine(fd, hwe)
if (hwe->engine_class != DRM_XE_ENGINE_CLASS_COPY)
@@ -770,25 +817,41 @@ igt_main
}
for (const struct section *s = sections; s->name; s++) {
- igt_subtest_f("evict-%s", s->name)
- test_evict(fd, hwe, s->n_exec_queues, s->n_execs,
- calc_bo_size(vram_size, s->mul, s->div),
+ igt_subtest_f("evict-%s", s->name) {
+ uint64_t bo_size = calc_bo_size(vram_size, s->mul, s->div);
+ int ws = working_set(vram_size, system_size, bo_size,
+ 1, s->flags);
+
+ igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
+ test_evict(fd, hwe, s->n_exec_queues,
+ min(ws, s->n_execs), bo_size,
s->flags, NULL);
+ }
}
for (const struct section_cm *s = sections_cm; s->name; s++) {
- igt_subtest_f("evict-%s", s->name)
- test_evict_cm(fd, hwe, s->n_exec_queues, s->n_execs,
- calc_bo_size(vram_size, s->mul, s->div),
+ igt_subtest_f("evict-%s", s->name) {
+ uint64_t bo_size = calc_bo_size(vram_size, s->mul, s->div);
+ int ws = working_set(vram_size, system_size, bo_size,
+ 1, s->flags);
+
+ igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
+ test_evict_cm(fd, hwe, s->n_exec_queues,
+ min(ws, s->n_execs), bo_size,
s->flags, NULL);
+ }
}
for (const struct section_threads *s = sections_threads; s->name; s++) {
- igt_subtest_f("evict-%s", s->name)
+ igt_subtest_f("evict-%s", s->name) {
+ uint64_t bo_size = calc_bo_size(vram_size, s->mul, s->div);
+ int ws = working_set(vram_size, system_size, bo_size,
+ s->n_threads, s->flags);
+
+ igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
threads(fd, hwe, s->n_threads, s->n_exec_queues,
- s->n_execs,
- calc_bo_size(vram_size, s->mul, s->div),
- s->flags);
+ min(ws, s->n_execs), bo_size, s->flags);
+ }
}
igt_fixture
--
2.44.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH i-g-t 2/2] tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction
2024-06-26 12:38 [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size Thomas Hellström
2024-06-26 12:38 ` [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set Thomas Hellström
@ 2024-06-26 12:38 ` Thomas Hellström
2024-06-27 6:34 ` Matthew Brost
2024-06-26 15:20 ` ✗ Fi.CI.BAT: failure for tests/intel/xe_evict: Adapt the working set to memory size Patchwork
` (3 subsequent siblings)
5 siblings, 1 reply; 11+ messages in thread
From: Thomas Hellström @ 2024-06-26 12:38 UTC (permalink / raw)
To: igt-dev; +Cc: Thomas Hellström, Matthew Brost, Maarten Lankhorst
When calculating the number of bos that simultaneously fits in
VRAM + system memory, account for eviction pipelining by subtracting
one bo for ongoing pipelined evictions per thread.
With large bos this may lead to us not being able to use a working
set of 2 bos, which is the minimum, so reduce the large bo size for
threaded evictions, and instead increase the default number of bos.
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
---
tests/intel/xe_evict.c | 41 +++++++++++++++++++++++++----------------
1 file changed, 25 insertions(+), 16 deletions(-)
diff --git a/tests/intel/xe_evict.c b/tests/intel/xe_evict.c
index 5691ad021..13e90d317 100644
--- a/tests/intel/xe_evict.c
+++ b/tests/intel/xe_evict.c
@@ -484,10 +484,16 @@ static unsigned int working_set(uint64_t vram_size, uint64_t system_size,
if (flags & MULTI_VM)
set_size *= 2;
- /* All bos must fit in memory, assuming no swapping */
- total_size = ((vram_size - 1) / bo_size + system_size / bo_size) /
+ /*
+ * All bos must fit in memory, assuming no swapping. Subtract one bo per
+ * thread for an active eviction.
+ */
+ total_size = ((vram_size - 1) / bo_size + (system_size - 1) / bo_size - 1) /
num_threads;
+ igt_debug("num_threads: %d bo_size : %lu total_size : %lu \n", num_threads,
+ bo_size, total_size);
+
if (set_size > total_size)
set_size = total_size;
@@ -741,13 +747,13 @@ igt_main
MIXED_THREADS | THREADED },
{ "mixed-many-threads-small", 3, 16, 128, 1, 128,
THREADED },
- { "threads-large", 2, 2, 4, 3, 8,
+ { "threads-large", 2, 2, 16, 3, 32,
THREADED },
- { "cm-threads-large", 2, 2, 4, 3, 8,
+ { "cm-threads-large", 2, 2, 16, 3, 32,
COMPUTE_THREAD | THREADED },
- { "mixed-threads-large", 2, 2, 4, 3, 8,
+ { "mixed-threads-large", 2, 2, 16, 3, 32,
MIXED_THREADS | THREADED },
- { "mixed-many-threads-large", 3, 2, 4, 3, 8,
+ { "mixed-many-threads-large", 3, 2, 16, 3, 32,
THREADED },
{ "threads-small-multi-vm", 2, 16, 128, 1, 128,
MULTI_VM | THREADED },
@@ -755,11 +761,11 @@ igt_main
COMPUTE_THREAD | MULTI_VM | THREADED },
{ "mixed-threads-small-multi-vm", 2, 16, 128, 1, 128,
MIXED_THREADS | MULTI_VM | THREADED },
- { "threads-large-multi-vm", 2, 2, 4, 3, 8,
+ { "threads-large-multi-vm", 2, 2, 16, 3, 32,
MULTI_VM | THREADED },
- { "cm-threads-large-multi-vm", 2, 2, 4, 3, 8,
+ { "cm-threads-large-multi-vm", 2, 2, 16, 3, 32,
COMPUTE_THREAD | MULTI_VM | THREADED },
- { "mixed-threads-large-multi-vm", 2, 2, 4, 3, 8,
+ { "mixed-threads-large-multi-vm", 2, 2, 16, 3, 32,
MIXED_THREADS | MULTI_VM | THREADED },
{ "beng-threads-small", 2, 16, 128, 1, 128,
THREADED | BIND_EXEC_QUEUE },
@@ -769,13 +775,13 @@ igt_main
MIXED_THREADS | THREADED | BIND_EXEC_QUEUE },
{ "beng-mixed-many-threads-small", 3, 16, 128, 1, 128,
THREADED | BIND_EXEC_QUEUE },
- { "beng-threads-large", 2, 2, 4, 3, 8,
+ { "beng-threads-large", 2, 2, 16, 3, 32,
THREADED | BIND_EXEC_QUEUE },
- { "beng-cm-threads-large", 2, 2, 4, 3, 8,
+ { "beng-cm-threads-large", 2, 2, 16, 3, 32,
COMPUTE_THREAD | THREADED | BIND_EXEC_QUEUE },
- { "beng-mixed-threads-large", 2, 2, 4, 3, 8,
+ { "beng-mixed-threads-large", 2, 2, 16, 3, 32,
MIXED_THREADS | THREADED | BIND_EXEC_QUEUE },
- { "beng-mixed-many-threads-large", 3, 2, 4, 3, 8,
+ { "beng-mixed-many-threads-large", 3, 2, 16, 3, 32,
THREADED | BIND_EXEC_QUEUE },
{ "beng-threads-small-multi-vm", 2, 16, 128, 1, 128,
MULTI_VM | THREADED | BIND_EXEC_QUEUE },
@@ -783,11 +789,11 @@ igt_main
COMPUTE_THREAD | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
{ "beng-mixed-threads-small-multi-vm", 2, 16, 128, 1, 128,
MIXED_THREADS | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
- { "beng-threads-large-multi-vm", 2, 2, 4, 3, 8,
+ { "beng-threads-large-multi-vm", 2, 2, 16, 3, 32,
MULTI_VM | THREADED | BIND_EXEC_QUEUE },
- { "beng-cm-threads-large-multi-vm", 2, 2, 4, 3, 8,
+ { "beng-cm-threads-large-multi-vm", 2, 2, 16, 3, 32,
COMPUTE_THREAD | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
- { "beng-mixed-threads-large-multi-vm", 2, 2, 4, 3, 8,
+ { "beng-mixed-threads-large-multi-vm", 2, 2, 16, 3, 32,
MIXED_THREADS | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
{ NULL },
};
@@ -823,6 +829,7 @@ igt_main
1, s->flags);
igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
+ igt_skip_on_f(!ws, "System memory size is too small.\n");
test_evict(fd, hwe, s->n_exec_queues,
min(ws, s->n_execs), bo_size,
s->flags, NULL);
@@ -836,6 +843,7 @@ igt_main
1, s->flags);
igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
+ igt_skip_on_f(!ws, "System memory size is too small.\n");
test_evict_cm(fd, hwe, s->n_exec_queues,
min(ws, s->n_execs), bo_size,
s->flags, NULL);
@@ -849,6 +857,7 @@ igt_main
s->n_threads, s->flags);
igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
+ igt_skip_on_f(!ws, "System memory size is too small.\n");
threads(fd, hwe, s->n_threads, s->n_exec_queues,
min(ws, s->n_execs), bo_size, s->flags);
}
--
2.44.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* ✗ Fi.CI.BAT: failure for tests/intel/xe_evict: Adapt the working set to memory size
2024-06-26 12:38 [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size Thomas Hellström
2024-06-26 12:38 ` [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set Thomas Hellström
2024-06-26 12:38 ` [PATCH i-g-t 2/2] tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction Thomas Hellström
@ 2024-06-26 15:20 ` Patchwork
2024-06-26 15:23 ` ✓ CI.xeBAT: success " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-06-26 15:20 UTC (permalink / raw)
To: Thomas Hellström; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 14122 bytes --]
== Series Details ==
Series: tests/intel/xe_evict: Adapt the working set to memory size
URL : https://patchwork.freedesktop.org/series/135427/
State : failure
== Summary ==
CI Bug Log - changes from IGT_7903 -> IGTPW_11319
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_11319 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_11319, 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_11319/index.html
Participating hosts (38 -> 39)
------------------------------
Additional (3): bat-kbl-2 bat-arlh-2 bat-mtlp-6
Missing (2): fi-snb-2520m fi-kbl-8809g
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_11319:
### IGT changes ###
#### Possible regressions ####
* igt@i915_selftest@live@slpc:
- bat-arlh-2: NOTRUN -> [INCOMPLETE][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@i915_selftest@live@slpc.html
Known issues
------------
Here are the changes found in IGTPW_11319 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-arlh-2: NOTRUN -> [SKIP][2] ([i915#9318])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@debugfs_test@basic-hwmon.html
- bat-mtlp-6: NOTRUN -> [SKIP][3] ([i915#9318])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@debugfs_test@basic-hwmon.html
* igt@fbdev@eof:
- bat-arlh-2: NOTRUN -> [SKIP][4] ([i915#11345]) +3 other tests skip
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@fbdev@eof.html
* igt@fbdev@info:
- bat-arlh-2: NOTRUN -> [SKIP][5] ([i915#1849])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@fbdev@info.html
- bat-kbl-2: NOTRUN -> [SKIP][6] ([i915#1849])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-kbl-2/igt@fbdev@info.html
- bat-mtlp-6: NOTRUN -> [SKIP][7] ([i915#1849] / [i915#2582])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@fbdev@info.html
* igt@fbdev@write:
- bat-mtlp-6: NOTRUN -> [SKIP][8] ([i915#2582]) +3 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@fbdev@write.html
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-kbl-2: NOTRUN -> [SKIP][9] +39 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-kbl-2/igt@gem_lmem_swapping@parallel-random-engines.html
- bat-arlh-2: NOTRUN -> [SKIP][10] ([i915#10213]) +3 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_lmem_swapping@verify-random:
- bat-mtlp-6: NOTRUN -> [SKIP][11] ([i915#4613]) +3 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@gem_lmem_swapping@verify-random.html
* igt@gem_mmap@basic:
- bat-arlh-2: NOTRUN -> [SKIP][12] ([i915#11343])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@gem_mmap@basic.html
- bat-mtlp-6: NOTRUN -> [SKIP][13] ([i915#4083])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@gem_mmap@basic.html
* igt@gem_render_tiled_blits@basic:
- bat-arlh-2: NOTRUN -> [SKIP][14] ([i915#10197])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@gem_render_tiled_blits@basic.html
* igt@gem_tiled_blits@basic:
- bat-mtlp-6: NOTRUN -> [SKIP][15] ([i915#4077]) +2 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@gem_tiled_blits@basic.html
* igt@gem_tiled_fence_blits@basic:
- bat-arlh-2: NOTRUN -> [SKIP][16] ([i915#10196]) +4 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@gem_tiled_fence_blits@basic.html
* igt@gem_tiled_pread_basic:
- bat-arlh-2: NOTRUN -> [SKIP][17] ([i915#10206])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@gem_tiled_pread_basic.html
- bat-mtlp-6: NOTRUN -> [SKIP][18] ([i915#4079]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-arlh-2: NOTRUN -> [SKIP][19] ([i915#10209])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@i915_pm_rps@basic-api.html
- bat-mtlp-6: NOTRUN -> [SKIP][20] ([i915#6621])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@i915_pm_rps@basic-api.html
* igt@kms_addfb_basic@addfb25-x-tiled-legacy:
- bat-mtlp-6: NOTRUN -> [SKIP][21] ([i915#4212] / [i915#9792]) +8 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-mtlp-6: NOTRUN -> [SKIP][22] ([i915#5190] / [i915#9792])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_addfb_basic@basic-x-tiled-legacy:
- bat-arlh-2: NOTRUN -> [SKIP][23] ([i915#10200]) +9 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@kms_addfb_basic@basic-x-tiled-legacy.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
- bat-mtlp-6: NOTRUN -> [SKIP][24] ([i915#9792]) +17 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
* igt@kms_flip@basic-flip-vs-dpms:
- bat-mtlp-6: NOTRUN -> [SKIP][25] ([i915#3637] / [i915#9792]) +3 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_flip@basic-flip-vs-dpms.html
* igt@kms_force_connector_basic@prune-stale-modes:
- bat-mtlp-6: NOTRUN -> [SKIP][26] ([i915#5274] / [i915#9792])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_force_connector_basic@prune-stale-modes.html
* igt@kms_frontbuffer_tracking@basic:
- bat-mtlp-6: NOTRUN -> [SKIP][27] ([i915#4342] / [i915#5354] / [i915#9792])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_pm_backlight@basic-brightness:
- bat-arlh-2: NOTRUN -> [SKIP][28] ([i915#11346]) +32 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@kms_pm_backlight@basic-brightness.html
- bat-mtlp-6: NOTRUN -> [SKIP][29] ([i915#5354] / [i915#9792])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_psr@psr-cursor-plane-move:
- bat-mtlp-6: NOTRUN -> [SKIP][30] ([i915#1072] / [i915#9673] / [i915#9732] / [i915#9792]) +3 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_psr@psr-cursor-plane-move.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-arlh-2: NOTRUN -> [SKIP][31] ([i915#10208] / [i915#8809])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@kms_setmode@basic-clone-single-crtc.html
- bat-mtlp-6: NOTRUN -> [SKIP][32] ([i915#3555] / [i915#8809] / [i915#9792])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-flip:
- bat-mtlp-6: NOTRUN -> [SKIP][33] ([i915#3708] / [i915#9792])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@prime_vgem@basic-fence-flip.html
* igt@prime_vgem@basic-fence-mmap:
- bat-mtlp-6: NOTRUN -> [SKIP][34] ([i915#3708] / [i915#4077]) +1 other test skip
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@prime_vgem@basic-fence-mmap.html
* igt@prime_vgem@basic-fence-read:
- bat-arlh-2: NOTRUN -> [SKIP][35] ([i915#10212])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@prime_vgem@basic-fence-read.html
* igt@prime_vgem@basic-read:
- bat-arlh-2: NOTRUN -> [SKIP][36] ([i915#10214])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@prime_vgem@basic-read.html
- bat-mtlp-6: NOTRUN -> [SKIP][37] ([i915#3708]) +1 other test skip
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-write:
- bat-mtlp-6: NOTRUN -> [SKIP][38] ([i915#10216] / [i915#3708])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-mtlp-6/igt@prime_vgem@basic-write.html
- bat-arlh-2: NOTRUN -> [SKIP][39] ([i915#10216])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arlh-2/igt@prime_vgem@basic-write.html
#### Possible fixes ####
* igt@i915_selftest@live@requests:
- bat-atsm-1: [INCOMPLETE][40] ([i915#11262]) -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7903/bat-atsm-1/igt@i915_selftest@live@requests.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-atsm-1/igt@i915_selftest@live@requests.html
* igt@kms_frontbuffer_tracking@basic:
- bat-arls-2: [DMESG-WARN][42] ([i915#7507]) -> [PASS][43]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7903/bat-arls-2/igt@kms_frontbuffer_tracking@basic.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-arls-2/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_pipe_crc_basic@hang-read-crc@pipe-d-dp-1:
- bat-dg2-8: [FAIL][44] -> [PASS][45]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7903/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-crc@pipe-d-dp-1.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/bat-dg2-8/igt@kms_pipe_crc_basic@hang-read-crc@pipe-d-dp-1.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#10196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10196
[i915#10197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10197
[i915#10200]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10200
[i915#10206]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10206
[i915#10208]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10208
[i915#10209]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10209
[i915#10212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10212
[i915#10213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10213
[i915#10214]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10214
[i915#10216]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10216
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#11262]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11262
[i915#11343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11343
[i915#11345]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11345
[i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346
[i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
[i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
[i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982
[i915#2582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2582
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
[i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
[i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
[i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
[i915#4342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4342
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
[i915#5274]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5274
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
[i915#7507]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7507
[i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809
[i915#9318]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9318
[i915#9673]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9673
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
[i915#9792]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9792
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7903 -> IGTPW_11319
CI-20190529: 20190529
CI_DRM_15004: 426a86fcf373dc03a682c46628cf4f2a9ffeaf65 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_11319: 45f9986924f93419882f9361982aed51f70a0418 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_7903: 5993e109620867e80f6f4f0428db26260ae5d16d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_11319/index.html
[-- Attachment #2: Type: text/html, Size: 16878 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ CI.xeBAT: success for tests/intel/xe_evict: Adapt the working set to memory size
2024-06-26 12:38 [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size Thomas Hellström
` (2 preceding siblings ...)
2024-06-26 15:20 ` ✗ Fi.CI.BAT: failure for tests/intel/xe_evict: Adapt the working set to memory size Patchwork
@ 2024-06-26 15:23 ` Patchwork
2024-06-26 17:00 ` [PATCH i-g-t 0/2] " Matthew Brost
2024-06-26 21:02 ` ✓ CI.xeFULL: success for " Patchwork
5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-06-26 15:23 UTC (permalink / raw)
To: Thomas Hellström; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 5013 bytes --]
== Series Details ==
Series: tests/intel/xe_evict: Adapt the working set to memory size
URL : https://patchwork.freedesktop.org/series/135427/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_7903_BAT -> XEIGTPW_11319_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 5)
------------------------------
Additional (1): bat-adlp-7
Known issues
------------
Here are the changes found in XEIGTPW_11319_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_dsc@dsc-basic:
- bat-adlp-7: NOTRUN -> [SKIP][1] ([Intel XE#455])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@kms_dsc@dsc-basic.html
* igt@kms_frontbuffer_tracking@basic:
- bat-adlp-7: NOTRUN -> [DMESG-FAIL][2] ([Intel XE#324])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html
* igt@xe_evict@evict-small-cm:
- bat-adlp-7: NOTRUN -> [SKIP][3] ([Intel XE#261] / [Intel XE#688]) +15 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@xe_evict@evict-small-cm.html
* igt@xe_evict_ccs@evict-overcommit-simple:
- bat-adlp-7: NOTRUN -> [SKIP][4] ([Intel XE#688]) +1 other test skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@xe_evict_ccs@evict-overcommit-simple.html
* igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch:
- bat-adlp-7: NOTRUN -> [SKIP][5] ([Intel XE#288]) +32 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@xe_exec_fault_mode@twice-userptr-invalidate-prefetch.html
* igt@xe_mmap@vram:
- bat-adlp-7: NOTRUN -> [SKIP][6] ([Intel XE#1008])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@xe_mmap@vram.html
* igt@xe_pat@pat-index-xe2:
- bat-adlp-7: NOTRUN -> [SKIP][7] ([Intel XE#977])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@xe_pat@pat-index-xe2.html
* igt@xe_pat@pat-index-xehpc:
- bat-adlp-7: NOTRUN -> [SKIP][8] ([Intel XE#979]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-adlp-7/igt@xe_pat@pat-index-xehpc.html
#### Possible fixes ####
* igt@xe_evict@evict-beng-small-external:
- bat-pvc-2: [FAIL][9] ([Intel XE#1000]) -> [PASS][10] +3 other tests pass
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/bat-pvc-2/igt@xe_evict@evict-beng-small-external.html
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-pvc-2/igt@xe_evict@evict-beng-small-external.html
* igt@xe_evict@evict-small-external-cm:
- bat-pvc-2: [DMESG-FAIL][11] ([Intel XE#482]) -> [PASS][12] +3 other tests pass
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/bat-pvc-2/igt@xe_evict@evict-small-external-cm.html
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-pvc-2/igt@xe_evict@evict-small-external-cm.html
* igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-invalidate:
- {bat-lnl-1}: [DMESG-WARN][13] ([Intel XE#1330]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/bat-lnl-1/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-invalidate.html
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/bat-lnl-1/igt@xe_exec_compute_mode@twice-bindexecqueue-userptr-invalidate.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1000]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1000
[Intel XE#1008]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1008
[Intel XE#1330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1330
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/482
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
Build changes
-------------
* IGT: IGT_7903 -> IGTPW_11319
IGTPW_11319: 45f9986924f93419882f9361982aed51f70a0418 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_7903: 5993e109620867e80f6f4f0428db26260ae5d16d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-1531-426a86fcf373dc03a682c46628cf4f2a9ffeaf65: 426a86fcf373dc03a682c46628cf4f2a9ffeaf65
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/index.html
[-- Attachment #2: Type: text/html, Size: 5908 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size
2024-06-26 12:38 [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size Thomas Hellström
` (3 preceding siblings ...)
2024-06-26 15:23 ` ✓ CI.xeBAT: success " Patchwork
@ 2024-06-26 17:00 ` Matthew Brost
2024-06-26 21:02 ` ✓ CI.xeFULL: success for " Patchwork
5 siblings, 0 replies; 11+ messages in thread
From: Matthew Brost @ 2024-06-26 17:00 UTC (permalink / raw)
To: Thomas Hellström; +Cc: igt-dev, Maarten Lankhorst
On Wed, Jun 26, 2024 at 02:38:31PM +0200, Thomas Hellström wrote:
> It turns out that xe_evict in the cm and thread mode is a very good test for
> exhaustive eviction. But the test sometimes uses a working set that doesn't fit
Do to hear that is it is a good test.
Have you tried [1], in particular *evict* sections. I wrote this as an
additional test which also fully checks the integrity of memory as it
gets bounced around. I think this test has value too. It might have a
similar problem to what you fixing in this series though. I think it
worth fixing and getting merged if you may review. I can work on fixing
it if think this has value too so it can be merged.
Anyways will review this series as soon as I can.
Matt
[1] https://patchwork.freedesktop.org/patch/588613/?series=132251&rev=1
> in gpu-accessible memory and a total memory size that exceeds the available
> system size. Attempt to fix that to avoid false failures. With these fixes
> the test should pass unless in -cm mode or multithreaded mode. These require
> fixes for exhaustive eviction in the xe kernel driver.
>
> Thomas Hellström (2):
> tests/intel/xe_evict: Reduce allocations to maximum working set
> tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction
>
> tests/intel/xe_evict.c | 126 ++++++++++++++++++++++++++++++++---------
> 1 file changed, 99 insertions(+), 27 deletions(-)
>
> --
> 2.44.0
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* ✓ CI.xeFULL: success for tests/intel/xe_evict: Adapt the working set to memory size
2024-06-26 12:38 [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size Thomas Hellström
` (4 preceding siblings ...)
2024-06-26 17:00 ` [PATCH i-g-t 0/2] " Matthew Brost
@ 2024-06-26 21:02 ` Patchwork
5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2024-06-26 21:02 UTC (permalink / raw)
To: Thomas Hellström; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 17207 bytes --]
== Series Details ==
Series: tests/intel/xe_evict: Adapt the working set to memory size
URL : https://patchwork.freedesktop.org/series/135427/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_7903_full -> XEIGTPW_11319_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (3 -> 3)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_11319_full:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* {igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p}:
- {shard-lnl}: NOTRUN -> [SKIP][1] +1 other test skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-lnl-3/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html
* igt@kms_vblank@wait-idle:
- {shard-lnl}: [PASS][2] -> [INCOMPLETE][3]
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-lnl-4/igt@kms_vblank@wait-idle.html
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-lnl-5/igt@kms_vblank@wait-idle.html
Known issues
------------
Here are the changes found in XEIGTPW_11319_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_cursor_legacy@forked-move@pipe-d:
- shard-dg2-set2: [PASS][4] -> [INCOMPLETE][5] ([Intel XE#1195]) +1 other test incomplete
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-464/igt@kms_cursor_legacy@forked-move@pipe-d.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-463/igt@kms_cursor_legacy@forked-move@pipe-d.html
* igt@kms_flip@wf_vblank-ts-check-interruptible:
- shard-dg2-set2: [PASS][6] -> [DMESG-WARN][7] ([Intel XE#1214]) +6 other tests dmesg-warn
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-464/igt@kms_flip@wf_vblank-ts-check-interruptible.html
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-463/igt@kms_flip@wf_vblank-ts-check-interruptible.html
* igt@kms_hdmi_inject@inject-audio:
- shard-dg2-set2: [PASS][8] -> [SKIP][9] ([Intel XE#1201] / [Intel XE#417])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-436/igt@kms_hdmi_inject@inject-audio.html
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-433/igt@kms_hdmi_inject@inject-audio.html
* igt@xe_evict@evict-large-multi-vm-cm:
- shard-dg2-set2: [PASS][10] -> [FAIL][11] ([Intel XE#1600])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-435/igt@xe_evict@evict-large-multi-vm-cm.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-466/igt@xe_evict@evict-large-multi-vm-cm.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-dg2-set2: [PASS][12] -> [TIMEOUT][13] ([Intel XE#1473])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-464/igt@xe_evict@evict-mixed-many-threads-small.html
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-466/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_pm@s3-basic-exec:
- shard-dg2-set2: [PASS][14] -> [DMESG-WARN][15] ([Intel XE#1214] / [Intel XE#1551] / [Intel XE#569])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-433/igt@xe_pm@s3-basic-exec.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-463/igt@xe_pm@s3-basic-exec.html
#### Possible fixes ####
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0:
- {shard-lnl}: [FAIL][16] ([Intel XE#1659]) -> [PASS][17]
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-lnl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-lnl-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html
* igt@kms_cursor_legacy@torture-move:
- shard-dg2-set2: [DMESG-WARN][18] ([Intel XE#1214] / [Intel XE#877]) -> [PASS][19] +1 other test pass
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-433/igt@kms_cursor_legacy@torture-move.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-466/igt@kms_cursor_legacy@torture-move.html
* igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6:
- shard-dg2-set2: [FAIL][20] ([Intel XE#361]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-435/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-435/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-6.html
* igt@kms_psr@fbc-psr2-suspend:
- {shard-lnl}: [DMESG-WARN][22] ([Intel XE#2052]) -> [PASS][23] +6 other tests pass
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-lnl-3/igt@kms_psr@fbc-psr2-suspend.html
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-lnl-8/igt@kms_psr@fbc-psr2-suspend.html
* igt@kms_universal_plane@cursor-fb-leak:
- shard-dg2-set2: [FAIL][24] ([Intel XE#771] / [Intel XE#899]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-463/igt@kms_universal_plane@cursor-fb-leak.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-436/igt@kms_universal_plane@cursor-fb-leak.html
* igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6:
- shard-dg2-set2: [FAIL][26] ([Intel XE#899]) -> [PASS][27] +1 other test pass
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-463/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-436/igt@kms_universal_plane@cursor-fb-leak@pipe-d-hdmi-a-6.html
* igt@xe_evict@evict-beng-cm-threads-large:
- shard-dg2-set2: [TIMEOUT][28] ([Intel XE#1473] / [Intel XE#392]) -> [PASS][29] +1 other test pass
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-464/igt@xe_evict@evict-beng-cm-threads-large.html
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-434/igt@xe_evict@evict-beng-cm-threads-large.html
* igt@xe_evict@evict-beng-large-multi-vm-cm:
- shard-dg2-set2: [FAIL][30] ([Intel XE#1600]) -> [PASS][31]
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-434/igt@xe_evict@evict-beng-large-multi-vm-cm.html
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-434/igt@xe_evict@evict-beng-large-multi-vm-cm.html
* igt@xe_evict@evict-threads-large:
- shard-dg2-set2: [INCOMPLETE][32] ([Intel XE#1195] / [Intel XE#1473] / [Intel XE#392]) -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-434/igt@xe_evict@evict-threads-large.html
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-433/igt@xe_evict@evict-threads-large.html
* igt@xe_exec_reset@parallel-gt-reset:
- shard-dg2-set2: [TIMEOUT][34] ([Intel XE#2105]) -> [PASS][35]
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-434/igt@xe_exec_reset@parallel-gt-reset.html
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-466/igt@xe_exec_reset@parallel-gt-reset.html
* igt@xe_module_load@reload-no-display:
- shard-dg2-set2: [DMESG-WARN][36] ([Intel XE#1214]) -> [PASS][37]
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-436/igt@xe_module_load@reload-no-display.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-434/igt@xe_module_load@reload-no-display.html
* igt@xe_pm@s3-d3hot-basic-exec:
- shard-dg2-set2: [DMESG-WARN][38] ([Intel XE#1214] / [Intel XE#1551] / [Intel XE#569]) -> [PASS][39]
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-463/igt@xe_pm@s3-d3hot-basic-exec.html
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-434/igt@xe_pm@s3-d3hot-basic-exec.html
* igt@xe_pm@s3-vm-bind-unbind-all:
- shard-dg2-set2: [DMESG-WARN][40] ([Intel XE#1162] / [Intel XE#1214] / [Intel XE#1941]) -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-463/igt@xe_pm@s3-vm-bind-unbind-all.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-466/igt@xe_pm@s3-vm-bind-unbind-all.html
* igt@xe_pm@s4-mocs:
- {shard-lnl}: [ABORT][42] ([Intel XE#1794]) -> [PASS][43]
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-lnl-2/igt@xe_pm@s4-mocs.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-lnl-1/igt@xe_pm@s4-mocs.html
#### Warnings ####
* igt@kms_content_protection@mei-interface:
- shard-dg2-set2: [SKIP][44] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][45] ([Intel XE#1201])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-436/igt@kms_content_protection@mei-interface.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-464/igt@kms_content_protection@mei-interface.html
* igt@xe_evict@evict-mixed-many-threads-large:
- shard-dg2-set2: [TIMEOUT][46] ([Intel XE#1041] / [Intel XE#1473] / [Intel XE#392]) -> [TIMEOUT][47] ([Intel XE#1473] / [Intel XE#392])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-436/igt@xe_evict@evict-mixed-many-threads-large.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-435/igt@xe_evict@evict-mixed-many-threads-large.html
* igt@xe_wedged@basic-wedged:
- shard-dg2-set2: [SKIP][48] ([Intel XE#1130] / [Intel XE#1201]) -> [DMESG-WARN][49] ([Intel XE#1214] / [Intel XE#1760])
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-463/igt@xe_wedged@basic-wedged.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-434/igt@xe_wedged@basic-wedged.html
* igt@xe_wedged@wedged-at-any-timeout:
- shard-dg2-set2: [DMESG-WARN][50] ([Intel XE#1214] / [Intel XE#1760]) -> [DMESG-FAIL][51] ([Intel XE#1760])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_7903/shard-dg2-434/igt@xe_wedged@wedged-at-any-timeout.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/shard-dg2-464/igt@xe_wedged@wedged-at-any-timeout.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1041]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1041
[Intel XE#1061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1061
[Intel XE#1062]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1062
[Intel XE#1069]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1069
[Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
[Intel XE#1130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1130
[Intel XE#1162]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1162
[Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
[Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195
[Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201
[Intel XE#1214]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1214
[Intel XE#1339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1339
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1413
[Intel XE#1416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1416
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1428
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1437
[Intel XE#1442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1442
[Intel XE#1466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1466
[Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
[Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
[Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
[Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
[Intel XE#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
[Intel XE#1551]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1551
[Intel XE#1600]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1600
[Intel XE#1659]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1659
[Intel XE#1725]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1725
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1760
[Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
[Intel XE#1941]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1941
[Intel XE#1948]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1948
[Intel XE#2029]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2029
[Intel XE#2052]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2052
[Intel XE#2097]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2097
[Intel XE#2105]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2105
[Intel XE#305]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/305
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
[Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
[Intel XE#361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/361
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#379]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/379
[Intel XE#392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/392
[Intel XE#417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/417
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#498]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/498
[Intel XE#560]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/560
[Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
[Intel XE#605]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/605
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#660]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/660
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#702]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/702
[Intel XE#756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/756
[Intel XE#771]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/771
[Intel XE#877]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/877
[Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#958]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/958
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
Build changes
-------------
* IGT: IGT_7903 -> IGTPW_11319
IGTPW_11319: 45f9986924f93419882f9361982aed51f70a0418 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
IGT_7903: 5993e109620867e80f6f4f0428db26260ae5d16d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-1531-426a86fcf373dc03a682c46628cf4f2a9ffeaf65: 426a86fcf373dc03a682c46628cf4f2a9ffeaf65
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_11319/index.html
[-- Attachment #2: Type: text/html, Size: 15670 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set
2024-06-26 12:38 ` [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set Thomas Hellström
@ 2024-06-27 6:29 ` Matthew Brost
2024-06-27 7:28 ` Thomas Hellström
0 siblings, 1 reply; 11+ messages in thread
From: Matthew Brost @ 2024-06-27 6:29 UTC (permalink / raw)
To: Thomas Hellström
Cc: igt-dev, Maarten Lankhorst, Zbigniew Kempczyński
On Wed, Jun 26, 2024 at 02:38:32PM +0200, Thomas Hellström wrote:
> Current xe kmd allows for a maximum working set of VRAM plus
> half of system memory, or if the working set is allowed only in
> VRAM, the working set is limited to VRAM.
>
> Some subtests attempt to exceed that. Detect when that happens
> and limit the working set accordingly.
>
> v2:
> - The determination for which flags system bos are allowed in the
> working set was incorrect. Fix. (Zbigniew Kempczyński)
> - Fix a typo.
> - Add an assert that vram_size is indeed > 0.
> (Zbigniew Kempczyński, Thomas)
> - Add asserts and make sure that the bo is bound to the same
> vm the exec_queue is using.
> - Increase the allowed set size for the multi-vm test.
>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
> tests/intel/xe_evict.c | 89 ++++++++++++++++++++++++++++++++++++------
> 1 file changed, 76 insertions(+), 13 deletions(-)
>
> diff --git a/tests/intel/xe_evict.c b/tests/intel/xe_evict.c
> index eebdbc84b..5691ad021 100644
> --- a/tests/intel/xe_evict.c
> +++ b/tests/intel/xe_evict.c
> @@ -97,6 +97,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
> uint32_t _vm = (flags & EXTERNAL_OBJ) &&
> i < n_execs / 8 ? 0 : vm;
>
> + igt_assert((e & 1) == (i & 1));
> if (flags & MULTI_VM) {
> __bo = bo[i] = xe_bo_create(fd, 0,
> bo_size,
> @@ -115,6 +116,7 @@ test_evict(int fd, struct drm_xe_engine_class_instance *eci,
> DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
> }
> } else {
> + igt_assert((e & 1) == ((i % (n_execs / 2)) & 1));
> __bo = bo[i % (n_execs / 2)];
> }
> if (i)
> @@ -273,6 +275,7 @@ test_evict_cm(int fd, struct drm_xe_engine_class_instance *eci,
> uint32_t _vm = (flags & EXTERNAL_OBJ) &&
> i < n_execs / 8 ? 0 : vm;
>
> + igt_assert((e & 1) == (i & 1));
> if (flags & MULTI_VM) {
> __bo = bo[i] = xe_bo_create(fd, 0,
> bo_size,
> @@ -291,6 +294,7 @@ test_evict_cm(int fd, struct drm_xe_engine_class_instance *eci,
> DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
> }
> } else {
> + igt_assert((e & 1) == ((i % (n_execs / 2)) & 1));
> __bo = bo[i % (n_execs / 2)];
> }
> if (i)
> @@ -458,6 +462,46 @@ static uint64_t calc_bo_size(uint64_t vram_size, int mul, int div)
> return (ALIGN(vram_size, SZ_256M) * mul) / div; /* small-bar */
> }
>
> +static unsigned int working_set(uint64_t vram_size, uint64_t system_size,
> + uint64_t bo_size, unsigned int num_threads,
> + unsigned int flags)
> +{
> + uint64_t set_size;
> + uint64_t total_size;
> +
> + igt_assert(vram_size > 0);
> +
> + set_size = (vram_size - 1) / bo_size;
> +
> + /*
> + * Working set resides also in system?
> + * Currently system graphics memory is limited to 50% of total.
> + */
> + if (!(flags & (THREADED | MULTI_VM)))
> + set_size += (system_size / 2) / bo_size;
> +
> + /* Set sizes are per vm. In the multi-vm case we use 2 vms. */
> + if (flags & MULTI_VM)
> + set_size *= 2;
> +
> + /* All bos must fit in memory, assuming no swapping */
> + total_size = ((vram_size - 1) / bo_size + system_size / bo_size) /
Should this not be '(system_size / 2) / bo_size'?
Matt
> + num_threads;
> +
> + if (set_size > total_size)
> + set_size = total_size;
> +
> + /* bos are only created on half of the execs. */
> + set_size *= 2;
> +
> + /*
> + * Align down to ensure the vm the bo is bound to matches the vm
> + * used by the exec_queue, fulfilling the asserts in the
> + * tests.
> + */
> + return ALIGN_DOWN(set_size, 4);
> +}
> +
> /**
> * SUBTEST: evict-%s
> * Description: %arg[1] evict test.
> @@ -748,6 +792,7 @@ igt_main
> { NULL },
> };
> uint64_t vram_size;
> + uint64_t system_size;
> int fd;
>
> igt_fixture {
> @@ -755,14 +800,16 @@ igt_main
> igt_require(xe_has_vram(fd));
> vram_size = xe_visible_vram_size(fd, 0);
> igt_assert(vram_size);
> + system_size = igt_get_avail_ram_mb() << 20;
>
> /* Test requires SRAM to about as big as VRAM. For example, small-cm creates
> * (448 / 2) BOs with a size (1 / 128) of the total VRAM size. For
> * simplicity ensure the SRAM size >= VRAM before running this test.
> */
> - igt_skip_on_f(igt_get_avail_ram_mb() < (vram_size >> 20),
> - "System memory %lu MiB is less than local memory %lu MiB\n",
> - igt_get_avail_ram_mb(), vram_size >> 20);
> + igt_skip_on_f(system_size < vram_size,
> + "System memory %llu MiB is less than local memory %llu MiB\n",
> + (unsigned long long)system_size >> 20,
> + (unsigned long long)vram_size >> 20);
>
> xe_for_each_engine(fd, hwe)
> if (hwe->engine_class != DRM_XE_ENGINE_CLASS_COPY)
> @@ -770,25 +817,41 @@ igt_main
> }
>
> for (const struct section *s = sections; s->name; s++) {
> - igt_subtest_f("evict-%s", s->name)
> - test_evict(fd, hwe, s->n_exec_queues, s->n_execs,
> - calc_bo_size(vram_size, s->mul, s->div),
> + igt_subtest_f("evict-%s", s->name) {
> + uint64_t bo_size = calc_bo_size(vram_size, s->mul, s->div);
> + int ws = working_set(vram_size, system_size, bo_size,
> + 1, s->flags);
> +
> + igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
> + test_evict(fd, hwe, s->n_exec_queues,
> + min(ws, s->n_execs), bo_size,
> s->flags, NULL);
> + }
> }
>
> for (const struct section_cm *s = sections_cm; s->name; s++) {
> - igt_subtest_f("evict-%s", s->name)
> - test_evict_cm(fd, hwe, s->n_exec_queues, s->n_execs,
> - calc_bo_size(vram_size, s->mul, s->div),
> + igt_subtest_f("evict-%s", s->name) {
> + uint64_t bo_size = calc_bo_size(vram_size, s->mul, s->div);
> + int ws = working_set(vram_size, system_size, bo_size,
> + 1, s->flags);
> +
> + igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
> + test_evict_cm(fd, hwe, s->n_exec_queues,
> + min(ws, s->n_execs), bo_size,
> s->flags, NULL);
> + }
> }
>
> for (const struct section_threads *s = sections_threads; s->name; s++) {
> - igt_subtest_f("evict-%s", s->name)
> + igt_subtest_f("evict-%s", s->name) {
> + uint64_t bo_size = calc_bo_size(vram_size, s->mul, s->div);
> + int ws = working_set(vram_size, system_size, bo_size,
> + s->n_threads, s->flags);
> +
> + igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
> threads(fd, hwe, s->n_threads, s->n_exec_queues,
> - s->n_execs,
> - calc_bo_size(vram_size, s->mul, s->div),
> - s->flags);
> + min(ws, s->n_execs), bo_size, s->flags);
> + }
> }
>
> igt_fixture
> --
> 2.44.0
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t 2/2] tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction
2024-06-26 12:38 ` [PATCH i-g-t 2/2] tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction Thomas Hellström
@ 2024-06-27 6:34 ` Matthew Brost
2024-06-27 7:31 ` Thomas Hellström
0 siblings, 1 reply; 11+ messages in thread
From: Matthew Brost @ 2024-06-27 6:34 UTC (permalink / raw)
To: Thomas Hellström; +Cc: igt-dev, Maarten Lankhorst
On Wed, Jun 26, 2024 at 02:38:33PM +0200, Thomas Hellström wrote:
> When calculating the number of bos that simultaneously fits in
> VRAM + system memory, account for eviction pipelining by subtracting
> one bo for ongoing pipelined evictions per thread.
>
> With large bos this may lead to us not being able to use a working
> set of 2 bos, which is the minimum, so reduce the large bo size for
> threaded evictions, and instead increase the default number of bos.
>
> Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> ---
> tests/intel/xe_evict.c | 41 +++++++++++++++++++++++++----------------
> 1 file changed, 25 insertions(+), 16 deletions(-)
>
> diff --git a/tests/intel/xe_evict.c b/tests/intel/xe_evict.c
> index 5691ad021..13e90d317 100644
> --- a/tests/intel/xe_evict.c
> +++ b/tests/intel/xe_evict.c
> @@ -484,10 +484,16 @@ static unsigned int working_set(uint64_t vram_size, uint64_t system_size,
> if (flags & MULTI_VM)
> set_size *= 2;
>
> - /* All bos must fit in memory, assuming no swapping */
> - total_size = ((vram_size - 1) / bo_size + system_size / bo_size) /
> + /*
> + * All bos must fit in memory, assuming no swapping. Subtract one bo per
> + * thread for an active eviction.
> + */
> + total_size = ((vram_size - 1) / bo_size + (system_size - 1) / bo_size - 1) /
Had a comment in previous patch about 'system_size / bo_size' too.
Why change this to (system_size - 1) here?
I get the '- 1' at the end.
Matt
> num_threads;
>
> + igt_debug("num_threads: %d bo_size : %lu total_size : %lu \n", num_threads,
> + bo_size, total_size);
> +
> if (set_size > total_size)
> set_size = total_size;
>
> @@ -741,13 +747,13 @@ igt_main
> MIXED_THREADS | THREADED },
> { "mixed-many-threads-small", 3, 16, 128, 1, 128,
> THREADED },
> - { "threads-large", 2, 2, 4, 3, 8,
> + { "threads-large", 2, 2, 16, 3, 32,
> THREADED },
> - { "cm-threads-large", 2, 2, 4, 3, 8,
> + { "cm-threads-large", 2, 2, 16, 3, 32,
> COMPUTE_THREAD | THREADED },
> - { "mixed-threads-large", 2, 2, 4, 3, 8,
> + { "mixed-threads-large", 2, 2, 16, 3, 32,
> MIXED_THREADS | THREADED },
> - { "mixed-many-threads-large", 3, 2, 4, 3, 8,
> + { "mixed-many-threads-large", 3, 2, 16, 3, 32,
> THREADED },
> { "threads-small-multi-vm", 2, 16, 128, 1, 128,
> MULTI_VM | THREADED },
> @@ -755,11 +761,11 @@ igt_main
> COMPUTE_THREAD | MULTI_VM | THREADED },
> { "mixed-threads-small-multi-vm", 2, 16, 128, 1, 128,
> MIXED_THREADS | MULTI_VM | THREADED },
> - { "threads-large-multi-vm", 2, 2, 4, 3, 8,
> + { "threads-large-multi-vm", 2, 2, 16, 3, 32,
> MULTI_VM | THREADED },
> - { "cm-threads-large-multi-vm", 2, 2, 4, 3, 8,
> + { "cm-threads-large-multi-vm", 2, 2, 16, 3, 32,
> COMPUTE_THREAD | MULTI_VM | THREADED },
> - { "mixed-threads-large-multi-vm", 2, 2, 4, 3, 8,
> + { "mixed-threads-large-multi-vm", 2, 2, 16, 3, 32,
> MIXED_THREADS | MULTI_VM | THREADED },
> { "beng-threads-small", 2, 16, 128, 1, 128,
> THREADED | BIND_EXEC_QUEUE },
> @@ -769,13 +775,13 @@ igt_main
> MIXED_THREADS | THREADED | BIND_EXEC_QUEUE },
> { "beng-mixed-many-threads-small", 3, 16, 128, 1, 128,
> THREADED | BIND_EXEC_QUEUE },
> - { "beng-threads-large", 2, 2, 4, 3, 8,
> + { "beng-threads-large", 2, 2, 16, 3, 32,
> THREADED | BIND_EXEC_QUEUE },
> - { "beng-cm-threads-large", 2, 2, 4, 3, 8,
> + { "beng-cm-threads-large", 2, 2, 16, 3, 32,
> COMPUTE_THREAD | THREADED | BIND_EXEC_QUEUE },
> - { "beng-mixed-threads-large", 2, 2, 4, 3, 8,
> + { "beng-mixed-threads-large", 2, 2, 16, 3, 32,
> MIXED_THREADS | THREADED | BIND_EXEC_QUEUE },
> - { "beng-mixed-many-threads-large", 3, 2, 4, 3, 8,
> + { "beng-mixed-many-threads-large", 3, 2, 16, 3, 32,
> THREADED | BIND_EXEC_QUEUE },
> { "beng-threads-small-multi-vm", 2, 16, 128, 1, 128,
> MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> @@ -783,11 +789,11 @@ igt_main
> COMPUTE_THREAD | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> { "beng-mixed-threads-small-multi-vm", 2, 16, 128, 1, 128,
> MIXED_THREADS | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> - { "beng-threads-large-multi-vm", 2, 2, 4, 3, 8,
> + { "beng-threads-large-multi-vm", 2, 2, 16, 3, 32,
> MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> - { "beng-cm-threads-large-multi-vm", 2, 2, 4, 3, 8,
> + { "beng-cm-threads-large-multi-vm", 2, 2, 16, 3, 32,
> COMPUTE_THREAD | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> - { "beng-mixed-threads-large-multi-vm", 2, 2, 4, 3, 8,
> + { "beng-mixed-threads-large-multi-vm", 2, 2, 16, 3, 32,
> MIXED_THREADS | MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> { NULL },
> };
> @@ -823,6 +829,7 @@ igt_main
> 1, s->flags);
>
> igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
> + igt_skip_on_f(!ws, "System memory size is too small.\n");
> test_evict(fd, hwe, s->n_exec_queues,
> min(ws, s->n_execs), bo_size,
> s->flags, NULL);
> @@ -836,6 +843,7 @@ igt_main
> 1, s->flags);
>
> igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
> + igt_skip_on_f(!ws, "System memory size is too small.\n");
> test_evict_cm(fd, hwe, s->n_exec_queues,
> min(ws, s->n_execs), bo_size,
> s->flags, NULL);
> @@ -849,6 +857,7 @@ igt_main
> s->n_threads, s->flags);
>
> igt_debug("Max working set %d n_execs %d\n", ws, s->n_execs);
> + igt_skip_on_f(!ws, "System memory size is too small.\n");
> threads(fd, hwe, s->n_threads, s->n_exec_queues,
> min(ws, s->n_execs), bo_size, s->flags);
> }
> --
> 2.44.0
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set
2024-06-27 6:29 ` Matthew Brost
@ 2024-06-27 7:28 ` Thomas Hellström
0 siblings, 0 replies; 11+ messages in thread
From: Thomas Hellström @ 2024-06-27 7:28 UTC (permalink / raw)
To: Matthew Brost; +Cc: igt-dev, Maarten Lankhorst, Zbigniew Kempczyński
On Thu, 2024-06-27 at 06:29 +0000, Matthew Brost wrote:
> On Wed, Jun 26, 2024 at 02:38:32PM +0200, Thomas Hellström wrote:
> > Current xe kmd allows for a maximum working set of VRAM plus
> > half of system memory, or if the working set is allowed only in
> > VRAM, the working set is limited to VRAM.
> >
> > Some subtests attempt to exceed that. Detect when that happens
> > and limit the working set accordingly.
> >
> > v2:
> > - The determination for which flags system bos are allowed in the
> > working set was incorrect. Fix. (Zbigniew Kempczyński)
> > - Fix a typo.
> > - Add an assert that vram_size is indeed > 0.
> > (Zbigniew Kempczyński, Thomas)
> > - Add asserts and make sure that the bo is bound to the same
> > vm the exec_queue is using.
> > - Increase the allowed set size for the multi-vm test.
> >
> > Cc: Matthew Brost <matthew.brost@intel.com>
> > Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> > ---
> > tests/intel/xe_evict.c | 89 ++++++++++++++++++++++++++++++++++++--
> > ----
> > 1 file changed, 76 insertions(+), 13 deletions(-)
> >
> > diff --git a/tests/intel/xe_evict.c b/tests/intel/xe_evict.c
> > index eebdbc84b..5691ad021 100644
> > --- a/tests/intel/xe_evict.c
> > +++ b/tests/intel/xe_evict.c
> > @@ -97,6 +97,7 @@ test_evict(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > uint32_t _vm = (flags & EXTERNAL_OBJ) &&
> > i < n_execs / 8 ? 0 : vm;
> >
> > + igt_assert((e & 1) == (i & 1));
> > if (flags & MULTI_VM) {
> > __bo = bo[i] = xe_bo_create(fd, 0,
> >
> > bo_size,
> > @@ -115,6 +116,7 @@ test_evict(int fd, struct
> > drm_xe_engine_class_instance *eci,
> >
> > DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
> > }
> > } else {
> > + igt_assert((e & 1) == ((i % (n_execs / 2))
> > & 1));
> > __bo = bo[i % (n_execs / 2)];
> > }
> > if (i)
> > @@ -273,6 +275,7 @@ test_evict_cm(int fd, struct
> > drm_xe_engine_class_instance *eci,
> > uint32_t _vm = (flags & EXTERNAL_OBJ) &&
> > i < n_execs / 8 ? 0 : vm;
> >
> > + igt_assert((e & 1) == (i & 1));
> > if (flags & MULTI_VM) {
> > __bo = bo[i] = xe_bo_create(fd, 0,
> >
> > bo_size,
> > @@ -291,6 +294,7 @@ test_evict_cm(int fd, struct
> > drm_xe_engine_class_instance *eci,
> >
> > DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM);
> > }
> > } else {
> > + igt_assert((e & 1) == ((i % (n_execs / 2))
> > & 1));
> > __bo = bo[i % (n_execs / 2)];
> > }
> > if (i)
> > @@ -458,6 +462,46 @@ static uint64_t calc_bo_size(uint64_t
> > vram_size, int mul, int div)
> > return (ALIGN(vram_size, SZ_256M) * mul) / div;
> > /* small-bar */
> > }
> >
> > +static unsigned int working_set(uint64_t vram_size, uint64_t
> > system_size,
> > + uint64_t bo_size, unsigned int
> > num_threads,
> > + unsigned int flags)
> > +{
> > + uint64_t set_size;
> > + uint64_t total_size;
> > +
> > + igt_assert(vram_size > 0);
> > +
> > + set_size = (vram_size - 1) / bo_size;
> > +
> > + /*
> > + * Working set resides also in system?
> > + * Currently system graphics memory is limited to 50% of
> > total.
> > + */
> > + if (!(flags & (THREADED | MULTI_VM)))
> > + set_size += (system_size / 2) / bo_size;
> > +
> > + /* Set sizes are per vm. In the multi-vm case we use 2
> > vms. */
> > + if (flags & MULTI_VM)
> > + set_size *= 2;
> > +
> > + /* All bos must fit in memory, assuming no swapping */
> > + total_size = ((vram_size - 1) / bo_size + system_size /
> > bo_size) /
>
> Should this not be '(system_size / 2) / bo_size'?
No, bos swapped out to shmem are allowed to fill system memory.
However, system_size is a bit aggressive if there is no swap-space...
/Thomas
>
> Matt
>
> > + num_threads;
> > +
> > + if (set_size > total_size)
> > + set_size = total_size;
> > +
> > + /* bos are only created on half of the execs. */
> > + set_size *= 2;
> > +
> > + /*
> > + * Align down to ensure the vm the bo is bound to matches
> > the vm
> > + * used by the exec_queue, fulfilling the asserts in the
> > + * tests.
> > + */
> > + return ALIGN_DOWN(set_size, 4);
> > +}
> > +
> > /**
> > * SUBTEST: evict-%s
> > * Description: %arg[1] evict test.
> > @@ -748,6 +792,7 @@ igt_main
> > { NULL },
> > };
> > uint64_t vram_size;
> > + uint64_t system_size;
> > int fd;
> >
> > igt_fixture {
> > @@ -755,14 +800,16 @@ igt_main
> > igt_require(xe_has_vram(fd));
> > vram_size = xe_visible_vram_size(fd, 0);
> > igt_assert(vram_size);
> > + system_size = igt_get_avail_ram_mb() << 20;
> >
> > /* Test requires SRAM to about as big as VRAM. For
> > example, small-cm creates
> > * (448 / 2) BOs with a size (1 / 128) of the
> > total VRAM size. For
> > * simplicity ensure the SRAM size >= VRAM before
> > running this test.
> > */
> > - igt_skip_on_f(igt_get_avail_ram_mb() < (vram_size
> > >> 20),
> > - "System memory %lu MiB is less than
> > local memory %lu MiB\n",
> > - igt_get_avail_ram_mb(), vram_size >>
> > 20);
> > + igt_skip_on_f(system_size < vram_size,
> > + "System memory %llu MiB is less than
> > local memory %llu MiB\n",
> > + (unsigned long long)system_size >>
> > 20,
> > + (unsigned long long)vram_size >>
> > 20);
> >
> > xe_for_each_engine(fd, hwe)
> > if (hwe->engine_class !=
> > DRM_XE_ENGINE_CLASS_COPY)
> > @@ -770,25 +817,41 @@ igt_main
> > }
> >
> > for (const struct section *s = sections; s->name; s++) {
> > - igt_subtest_f("evict-%s", s->name)
> > - test_evict(fd, hwe, s->n_exec_queues, s-
> > >n_execs,
> > - calc_bo_size(vram_size, s->mul,
> > s->div),
> > + igt_subtest_f("evict-%s", s->name) {
> > + uint64_t bo_size = calc_bo_size(vram_size,
> > s->mul, s->div);
> > + int ws = working_set(vram_size,
> > system_size, bo_size,
> > + 1, s->flags);
> > +
> > + igt_debug("Max working set %d n_execs
> > %d\n", ws, s->n_execs);
> > + test_evict(fd, hwe, s->n_exec_queues,
> > + min(ws, s->n_execs), bo_size,
> > s->flags, NULL);
> > + }
> > }
> >
> > for (const struct section_cm *s = sections_cm; s->name;
> > s++) {
> > - igt_subtest_f("evict-%s", s->name)
> > - test_evict_cm(fd, hwe, s->n_exec_queues,
> > s->n_execs,
> > - calc_bo_size(vram_size, s-
> > >mul, s->div),
> > + igt_subtest_f("evict-%s", s->name) {
> > + uint64_t bo_size = calc_bo_size(vram_size,
> > s->mul, s->div);
> > + int ws = working_set(vram_size,
> > system_size, bo_size,
> > + 1, s->flags);
> > +
> > + igt_debug("Max working set %d n_execs
> > %d\n", ws, s->n_execs);
> > + test_evict_cm(fd, hwe, s->n_exec_queues,
> > + min(ws, s->n_execs),
> > bo_size,
> > s->flags, NULL);
> > + }
> > }
> >
> > for (const struct section_threads *s = sections_threads;
> > s->name; s++) {
> > - igt_subtest_f("evict-%s", s->name)
> > + igt_subtest_f("evict-%s", s->name) {
> > + uint64_t bo_size = calc_bo_size(vram_size,
> > s->mul, s->div);
> > + int ws = working_set(vram_size,
> > system_size, bo_size,
> > + s->n_threads, s-
> > >flags);
> > +
> > + igt_debug("Max working set %d n_execs
> > %d\n", ws, s->n_execs);
> > threads(fd, hwe, s->n_threads, s-
> > >n_exec_queues,
> > - s->n_execs,
> > - calc_bo_size(vram_size, s->mul,
> > s->div),
> > - s->flags);
> > + min(ws, s->n_execs), bo_size, s-
> > >flags);
> > + }
> > }
> >
> > igt_fixture
> > --
> > 2.44.0
> >
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t 2/2] tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction
2024-06-27 6:34 ` Matthew Brost
@ 2024-06-27 7:31 ` Thomas Hellström
0 siblings, 0 replies; 11+ messages in thread
From: Thomas Hellström @ 2024-06-27 7:31 UTC (permalink / raw)
To: Matthew Brost; +Cc: igt-dev, Maarten Lankhorst
On Thu, 2024-06-27 at 06:34 +0000, Matthew Brost wrote:
> On Wed, Jun 26, 2024 at 02:38:33PM +0200, Thomas Hellström wrote:
> > When calculating the number of bos that simultaneously fits in
> > VRAM + system memory, account for eviction pipelining by
> > subtracting
> > one bo for ongoing pipelined evictions per thread.
> >
> > With large bos this may lead to us not being able to use a working
> > set of 2 bos, which is the minimum, so reduce the large bo size for
> > threaded evictions, and instead increase the default number of bos.
> >
> > Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> > ---
> > tests/intel/xe_evict.c | 41 +++++++++++++++++++++++++-------------
> > ---
> > 1 file changed, 25 insertions(+), 16 deletions(-)
> >
> > diff --git a/tests/intel/xe_evict.c b/tests/intel/xe_evict.c
> > index 5691ad021..13e90d317 100644
> > --- a/tests/intel/xe_evict.c
> > +++ b/tests/intel/xe_evict.c
> > @@ -484,10 +484,16 @@ static unsigned int working_set(uint64_t
> > vram_size, uint64_t system_size,
> > if (flags & MULTI_VM)
> > set_size *= 2;
> >
> > - /* All bos must fit in memory, assuming no swapping */
> > - total_size = ((vram_size - 1) / bo_size + system_size /
> > bo_size) /
> > + /*
> > + * All bos must fit in memory, assuming no swapping.
> > Subtract one bo per
> > + * thread for an active eviction.
> > + */
> > + total_size = ((vram_size - 1) / bo_size + (system_size -
> > 1) / bo_size - 1) /
>
> Had a comment in previous patch about 'system_size / bo_size' too.
>
> Why change this to (system_size - 1) here?
It's to round down if the large bos is an exact multiple of system
size. However, with the comment on the previous patch I think it makes
more sense to use a fraction, say 90% of available system size. I'll
check if igt has a way of detecting available swap size as well...
/Thomas
>
> I get the '- 1' at the end.
>
> Matt
>
> > num_threads;
> >
> > + igt_debug("num_threads: %d bo_size : %lu total_size : %lu
> > \n", num_threads,
> > + bo_size, total_size);
> > +
> > if (set_size > total_size)
> > set_size = total_size;
> >
> > @@ -741,13 +747,13 @@ igt_main
> > MIXED_THREADS | THREADED },
> > { "mixed-many-threads-small", 3, 16, 128, 1, 128,
> > THREADED },
> > - { "threads-large", 2, 2, 4, 3, 8,
> > + { "threads-large", 2, 2, 16, 3, 32,
> > THREADED },
> > - { "cm-threads-large", 2, 2, 4, 3, 8,
> > + { "cm-threads-large", 2, 2, 16, 3, 32,
> > COMPUTE_THREAD | THREADED },
> > - { "mixed-threads-large", 2, 2, 4, 3, 8,
> > + { "mixed-threads-large", 2, 2, 16, 3, 32,
> > MIXED_THREADS | THREADED },
> > - { "mixed-many-threads-large", 3, 2, 4, 3, 8,
> > + { "mixed-many-threads-large", 3, 2, 16, 3, 32,
> > THREADED },
> > { "threads-small-multi-vm", 2, 16, 128, 1, 128,
> > MULTI_VM | THREADED },
> > @@ -755,11 +761,11 @@ igt_main
> > COMPUTE_THREAD | MULTI_VM | THREADED },
> > { "mixed-threads-small-multi-vm", 2, 16, 128, 1,
> > 128,
> > MIXED_THREADS | MULTI_VM | THREADED },
> > - { "threads-large-multi-vm", 2, 2, 4, 3, 8,
> > + { "threads-large-multi-vm", 2, 2, 16, 3, 32,
> > MULTI_VM | THREADED },
> > - { "cm-threads-large-multi-vm", 2, 2, 4, 3, 8,
> > + { "cm-threads-large-multi-vm", 2, 2, 16, 3, 32,
> > COMPUTE_THREAD | MULTI_VM | THREADED },
> > - { "mixed-threads-large-multi-vm", 2, 2, 4, 3, 8,
> > + { "mixed-threads-large-multi-vm", 2, 2, 16, 3, 32,
> > MIXED_THREADS | MULTI_VM | THREADED },
> > { "beng-threads-small", 2, 16, 128, 1, 128,
> > THREADED | BIND_EXEC_QUEUE },
> > @@ -769,13 +775,13 @@ igt_main
> > MIXED_THREADS | THREADED | BIND_EXEC_QUEUE
> > },
> > { "beng-mixed-many-threads-small", 3, 16, 128, 1,
> > 128,
> > THREADED | BIND_EXEC_QUEUE },
> > - { "beng-threads-large", 2, 2, 4, 3, 8,
> > + { "beng-threads-large", 2, 2, 16, 3, 32,
> > THREADED | BIND_EXEC_QUEUE },
> > - { "beng-cm-threads-large", 2, 2, 4, 3, 8,
> > + { "beng-cm-threads-large", 2, 2, 16, 3, 32,
> > COMPUTE_THREAD | THREADED |
> > BIND_EXEC_QUEUE },
> > - { "beng-mixed-threads-large", 2, 2, 4, 3, 8,
> > + { "beng-mixed-threads-large", 2, 2, 16, 3, 32,
> > MIXED_THREADS | THREADED | BIND_EXEC_QUEUE
> > },
> > - { "beng-mixed-many-threads-large", 3, 2, 4, 3, 8,
> > + { "beng-mixed-many-threads-large", 3, 2, 16, 3,
> > 32,
> > THREADED | BIND_EXEC_QUEUE },
> > { "beng-threads-small-multi-vm", 2, 16, 128, 1,
> > 128,
> > MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> > @@ -783,11 +789,11 @@ igt_main
> > COMPUTE_THREAD | MULTI_VM | THREADED |
> > BIND_EXEC_QUEUE },
> > { "beng-mixed-threads-small-multi-vm", 2, 16, 128,
> > 1, 128,
> > MIXED_THREADS | MULTI_VM | THREADED |
> > BIND_EXEC_QUEUE },
> > - { "beng-threads-large-multi-vm", 2, 2, 4, 3, 8,
> > + { "beng-threads-large-multi-vm", 2, 2, 16, 3, 32,
> > MULTI_VM | THREADED | BIND_EXEC_QUEUE },
> > - { "beng-cm-threads-large-multi-vm", 2, 2, 4, 3, 8,
> > + { "beng-cm-threads-large-multi-vm", 2, 2, 16, 3,
> > 32,
> > COMPUTE_THREAD | MULTI_VM | THREADED |
> > BIND_EXEC_QUEUE },
> > - { "beng-mixed-threads-large-multi-vm", 2, 2, 4, 3,
> > 8,
> > + { "beng-mixed-threads-large-multi-vm", 2, 2, 16,
> > 3, 32,
> > MIXED_THREADS | MULTI_VM | THREADED |
> > BIND_EXEC_QUEUE },
> > { NULL },
> > };
> > @@ -823,6 +829,7 @@ igt_main
> > 1, s->flags);
> >
> > igt_debug("Max working set %d n_execs
> > %d\n", ws, s->n_execs);
> > + igt_skip_on_f(!ws, "System memory size is
> > too small.\n");
> > test_evict(fd, hwe, s->n_exec_queues,
> > min(ws, s->n_execs), bo_size,
> > s->flags, NULL);
> > @@ -836,6 +843,7 @@ igt_main
> > 1, s->flags);
> >
> > igt_debug("Max working set %d n_execs
> > %d\n", ws, s->n_execs);
> > + igt_skip_on_f(!ws, "System memory size is
> > too small.\n");
> > test_evict_cm(fd, hwe, s->n_exec_queues,
> > min(ws, s->n_execs),
> > bo_size,
> > s->flags, NULL);
> > @@ -849,6 +857,7 @@ igt_main
> > s->n_threads, s-
> > >flags);
> >
> > igt_debug("Max working set %d n_execs
> > %d\n", ws, s->n_execs);
> > + igt_skip_on_f(!ws, "System memory size is
> > too small.\n");
> > threads(fd, hwe, s->n_threads, s-
> > >n_exec_queues,
> > min(ws, s->n_execs), bo_size, s-
> > >flags);
> > }
> > --
> > 2.44.0
> >
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-06-27 7:31 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-26 12:38 [PATCH i-g-t 0/2] tests/intel/xe_evict: Adapt the working set to memory size Thomas Hellström
2024-06-26 12:38 ` [PATCH i-g-t 1/2] tests/intel/xe_evict: Reduce allocations to maximum working set Thomas Hellström
2024-06-27 6:29 ` Matthew Brost
2024-06-27 7:28 ` Thomas Hellström
2024-06-26 12:38 ` [PATCH i-g-t 2/2] tests/intel/xe_evict: Reduce the "large" bo size for threaded eviction Thomas Hellström
2024-06-27 6:34 ` Matthew Brost
2024-06-27 7:31 ` Thomas Hellström
2024-06-26 15:20 ` ✗ Fi.CI.BAT: failure for tests/intel/xe_evict: Adapt the working set to memory size Patchwork
2024-06-26 15:23 ` ✓ CI.xeBAT: success " Patchwork
2024-06-26 17:00 ` [PATCH i-g-t 0/2] " Matthew Brost
2024-06-26 21:02 ` ✓ CI.xeFULL: success for " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox