* [Intel-gfx] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy
@ 2020-11-23 20:15 ` Chris Wilson
0 siblings, 0 replies; 11+ messages in thread
From: Chris Wilson @ 2020-11-23 20:15 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev, Chris Wilson
Use the spinners to provide exactly the right amount of background
busyness.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
---
lib/igt_dummyload.c | 13 +--
lib/igt_dummyload.h | 1 +
tests/i915/gem_request_retire.c | 169 ++++----------------------------
3 files changed, 23 insertions(+), 160 deletions(-)
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index d58f73108..8b2709e71 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -161,19 +161,10 @@ emit_recursive_batch(igt_spin_t *spin,
if (opts->dependency) {
igt_assert(!(opts->flags & IGT_SPIN_POLL_RUN));
- r = &relocs[obj[BATCH].relocation_count++];
-
- /* dummy write to dependency */
obj[SCRATCH].handle = opts->dependency;
obj[SCRATCH].offset = addr;
- obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
-
- r->presumed_offset = obj[SCRATCH].offset;
- r->target_handle = obj[SCRATCH].handle;
- r->offset = sizeof(uint32_t) * 1020;
- r->delta = 0;
- r->read_domains = I915_GEM_DOMAIN_RENDER;
- r->write_domain = I915_GEM_DOMAIN_RENDER;
+ if (!(opts->flags & IGT_SPIN_SOFTDEP))
+ obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
execbuf->buffer_count++;
} else if (opts->flags & IGT_SPIN_POLL_RUN) {
diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
index 6d3e65ce2..b8baaa6b4 100644
--- a/lib/igt_dummyload.h
+++ b/lib/igt_dummyload.h
@@ -71,6 +71,7 @@ struct igt_spin_factory {
#define IGT_SPIN_NO_PREEMPTION (1 << 4)
#define IGT_SPIN_INVALID_CS (1 << 5)
#define IGT_SPIN_USERPTR (1 << 6)
+#define IGT_SPIN_SOFTDEP (1 << 7)
igt_spin_t *
__igt_spin_factory(int fd, const struct igt_spin_factory *opts);
diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
index 31fb41987..d0e53d221 100644
--- a/tests/i915/gem_request_retire.c
+++ b/tests/i915/gem_request_retire.c
@@ -52,130 +52,6 @@
IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
" paths.");
-#define WIDTH 4096
-#define HEIGHT 4096
-#define BO_SIZE (WIDTH * HEIGHT * sizeof(uint32_t))
-
-static uint32_t
-blit(int fd, uint32_t dst, uint32_t src, uint32_t ctx_id)
-{
- const unsigned int copies = 1000;
- uint32_t batch[12 * copies + 5];
- struct drm_i915_gem_relocation_entry reloc[2 * copies];
- struct drm_i915_gem_exec_object2 obj[3];
- struct drm_i915_gem_execbuffer2 exec;
- uint32_t handle;
- unsigned int i = 0, j, r = 0;
-
- for (j = 0; j < copies; j++) {
- reloc[r].target_handle = dst;
- reloc[r].delta = 0;
- reloc[r].offset = (i + 4) * sizeof(uint32_t);
- reloc[r].presumed_offset = 0;
- reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[r].write_domain = I915_GEM_DOMAIN_RENDER;
-
- r++;
-
- reloc[r].target_handle = src;
- reloc[r].delta = 0;
- reloc[r].offset = (i + 7) * sizeof(uint32_t);
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- reloc[r].offset += sizeof(uint32_t);
- reloc[r].presumed_offset = 0;
- reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[r].write_domain = 0;
-
- r++;
-
- batch[i++] = XY_SRC_COPY_BLT_CMD |
- XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB;
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i - 1] |= 8;
- else
- batch[i - 1] |= 6;
-
- batch[i++] = (3 << 24) | /* 32 bits */
- (0xcc << 16) | /* copy ROP */
- WIDTH*4;
- batch[i++] = 0; /* dst x1,y1 */
- batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
- batch[i++] = 0; /* dst reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = 0;
- batch[i++] = 0; /* src x1,y1 */
- batch[i++] = WIDTH*4;
- batch[i++] = 0; /* src reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = 0;
- }
-
- batch[i++] = MI_BATCH_BUFFER_END;
-
- while (i % 4)
- batch[i++] = MI_NOOP;
-
- handle = gem_create(fd, sizeof(batch));
- gem_write(fd, handle, 0, batch, sizeof(batch));
-
- memset(obj, 0, sizeof(obj));
- memset(&exec, 0, sizeof(exec));
-
- obj[exec.buffer_count++].handle = dst;
- if (src != dst)
- obj[exec.buffer_count++].handle = src;
- obj[exec.buffer_count].handle = handle;
- obj[exec.buffer_count].relocation_count = 2 * copies;
- obj[exec.buffer_count].relocs_ptr = to_user_pointer(reloc);
- exec.buffer_count++;
- exec.buffers_ptr = to_user_pointer(obj);
-
- exec.batch_len = i * sizeof(uint32_t);
- exec.flags = I915_EXEC_BLT;
- i915_execbuffer2_set_context_id(exec, ctx_id);
-
- gem_execbuf(fd, &exec);
-
- return handle;
-}
-
-static uint32_t
-noop(int fd, uint32_t src, uint32_t ctx_id)
-{
- uint32_t batch[4];
- struct drm_i915_gem_exec_object2 obj[2];
- struct drm_i915_gem_execbuffer2 exec;
- uint32_t handle;
- unsigned int i = 0;
-
- batch[i++] = MI_NOOP;
- batch[i++] = MI_BATCH_BUFFER_END;
- batch[i++] = MI_NOOP;
- batch[i++] = MI_NOOP;
-
- handle = gem_create(fd, 4096);
- gem_write(fd, handle, 0, batch, sizeof(batch));
-
- memset(obj, 0, sizeof(obj));
- memset(&exec, 0, sizeof(exec));
-
- obj[exec.buffer_count++].handle = src;
- obj[exec.buffer_count].handle = handle;
- obj[exec.buffer_count].relocation_count = 0;
- obj[exec.buffer_count].relocs_ptr = to_user_pointer(0);
- exec.buffer_count++;
- exec.buffers_ptr = to_user_pointer(obj);
-
- exec.batch_len = i * sizeof(uint32_t);
- exec.flags = I915_EXEC_RENDER;
- i915_execbuffer2_set_context_id(exec, ctx_id);
-
- gem_execbuf(fd, &exec);
-
- return handle;
-}
-
/*
* A single bo is operated from batchbuffers submitted from two contexts and on
* different rings.
@@ -185,37 +61,32 @@ noop(int fd, uint32_t src, uint32_t ctx_id)
static void
test_retire_vma_not_inactive(int fd)
{
- uint32_t ctx_id;
- uint32_t src, dst;
- uint32_t blit_bb, noop_bb;
-
- igt_require(HAS_BLT_RING(intel_get_drm_devid(fd)));
+ struct intel_execution_engine2 *e;
- ctx_id = gem_context_create(fd);
+ igt_spin_t *bg = NULL;
- /* Create some bos batch buffers will operate on. */
- src = gem_create(fd, BO_SIZE);
- dst = gem_create(fd, BO_SIZE);
+ __for_each_physical_engine(fd, e) {
+ igt_spin_t *spin;
+ uint32_t ctx;
- /* Submit a long running batch. */
- blit_bb = blit(fd, dst, src, 0);
+ if (!bg) {
+ bg = igt_spin_new(fd, .engine = e->flags);
+ continue;
+ }
- /* Submit a quick batch referencing the same object. */
- noop_bb = noop(fd, src, ctx_id);
+ ctx = gem_context_clone_with_engines(fd, 0);
+ spin = igt_spin_new(fd, ctx,
+ .engine = e->flags,
+ .dependency = bg->handle,
+ .flags = IGT_SPIN_SOFTDEP);
+ gem_context_destroy(fd, ctx);
+ igt_spin_end(spin);
- /* Wait for the quick batch to complete. */
- gem_sync(fd, noop_bb);
- gem_close(fd, noop_bb);
-
- /* Now destroy the context in which the quick batch was submitted. */
- gem_context_destroy(fd, ctx_id);
-
- /* Wait for the slow batch to finish and clean up. */
- gem_sync(fd, blit_bb);
- gem_close(fd, blit_bb);
+ gem_sync(fd, spin->handle);
+ igt_spin_free(fd, spin);
+ }
- gem_close(fd, src);
- gem_close(fd, dst);
+ igt_spin_free(fd, bg);
}
int fd;
--
2.29.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy
@ 2020-11-23 20:15 ` Chris Wilson
0 siblings, 0 replies; 11+ messages in thread
From: Chris Wilson @ 2020-11-23 20:15 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev, Chris Wilson
Use the spinners to provide exactly the right amount of background
busyness.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
---
lib/igt_dummyload.c | 13 +--
lib/igt_dummyload.h | 1 +
tests/i915/gem_request_retire.c | 169 ++++----------------------------
3 files changed, 23 insertions(+), 160 deletions(-)
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index d58f73108..8b2709e71 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -161,19 +161,10 @@ emit_recursive_batch(igt_spin_t *spin,
if (opts->dependency) {
igt_assert(!(opts->flags & IGT_SPIN_POLL_RUN));
- r = &relocs[obj[BATCH].relocation_count++];
-
- /* dummy write to dependency */
obj[SCRATCH].handle = opts->dependency;
obj[SCRATCH].offset = addr;
- obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
-
- r->presumed_offset = obj[SCRATCH].offset;
- r->target_handle = obj[SCRATCH].handle;
- r->offset = sizeof(uint32_t) * 1020;
- r->delta = 0;
- r->read_domains = I915_GEM_DOMAIN_RENDER;
- r->write_domain = I915_GEM_DOMAIN_RENDER;
+ if (!(opts->flags & IGT_SPIN_SOFTDEP))
+ obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
execbuf->buffer_count++;
} else if (opts->flags & IGT_SPIN_POLL_RUN) {
diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
index 6d3e65ce2..b8baaa6b4 100644
--- a/lib/igt_dummyload.h
+++ b/lib/igt_dummyload.h
@@ -71,6 +71,7 @@ struct igt_spin_factory {
#define IGT_SPIN_NO_PREEMPTION (1 << 4)
#define IGT_SPIN_INVALID_CS (1 << 5)
#define IGT_SPIN_USERPTR (1 << 6)
+#define IGT_SPIN_SOFTDEP (1 << 7)
igt_spin_t *
__igt_spin_factory(int fd, const struct igt_spin_factory *opts);
diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
index 31fb41987..d0e53d221 100644
--- a/tests/i915/gem_request_retire.c
+++ b/tests/i915/gem_request_retire.c
@@ -52,130 +52,6 @@
IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
" paths.");
-#define WIDTH 4096
-#define HEIGHT 4096
-#define BO_SIZE (WIDTH * HEIGHT * sizeof(uint32_t))
-
-static uint32_t
-blit(int fd, uint32_t dst, uint32_t src, uint32_t ctx_id)
-{
- const unsigned int copies = 1000;
- uint32_t batch[12 * copies + 5];
- struct drm_i915_gem_relocation_entry reloc[2 * copies];
- struct drm_i915_gem_exec_object2 obj[3];
- struct drm_i915_gem_execbuffer2 exec;
- uint32_t handle;
- unsigned int i = 0, j, r = 0;
-
- for (j = 0; j < copies; j++) {
- reloc[r].target_handle = dst;
- reloc[r].delta = 0;
- reloc[r].offset = (i + 4) * sizeof(uint32_t);
- reloc[r].presumed_offset = 0;
- reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[r].write_domain = I915_GEM_DOMAIN_RENDER;
-
- r++;
-
- reloc[r].target_handle = src;
- reloc[r].delta = 0;
- reloc[r].offset = (i + 7) * sizeof(uint32_t);
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- reloc[r].offset += sizeof(uint32_t);
- reloc[r].presumed_offset = 0;
- reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[r].write_domain = 0;
-
- r++;
-
- batch[i++] = XY_SRC_COPY_BLT_CMD |
- XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB;
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i - 1] |= 8;
- else
- batch[i - 1] |= 6;
-
- batch[i++] = (3 << 24) | /* 32 bits */
- (0xcc << 16) | /* copy ROP */
- WIDTH*4;
- batch[i++] = 0; /* dst x1,y1 */
- batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
- batch[i++] = 0; /* dst reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = 0;
- batch[i++] = 0; /* src x1,y1 */
- batch[i++] = WIDTH*4;
- batch[i++] = 0; /* src reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = 0;
- }
-
- batch[i++] = MI_BATCH_BUFFER_END;
-
- while (i % 4)
- batch[i++] = MI_NOOP;
-
- handle = gem_create(fd, sizeof(batch));
- gem_write(fd, handle, 0, batch, sizeof(batch));
-
- memset(obj, 0, sizeof(obj));
- memset(&exec, 0, sizeof(exec));
-
- obj[exec.buffer_count++].handle = dst;
- if (src != dst)
- obj[exec.buffer_count++].handle = src;
- obj[exec.buffer_count].handle = handle;
- obj[exec.buffer_count].relocation_count = 2 * copies;
- obj[exec.buffer_count].relocs_ptr = to_user_pointer(reloc);
- exec.buffer_count++;
- exec.buffers_ptr = to_user_pointer(obj);
-
- exec.batch_len = i * sizeof(uint32_t);
- exec.flags = I915_EXEC_BLT;
- i915_execbuffer2_set_context_id(exec, ctx_id);
-
- gem_execbuf(fd, &exec);
-
- return handle;
-}
-
-static uint32_t
-noop(int fd, uint32_t src, uint32_t ctx_id)
-{
- uint32_t batch[4];
- struct drm_i915_gem_exec_object2 obj[2];
- struct drm_i915_gem_execbuffer2 exec;
- uint32_t handle;
- unsigned int i = 0;
-
- batch[i++] = MI_NOOP;
- batch[i++] = MI_BATCH_BUFFER_END;
- batch[i++] = MI_NOOP;
- batch[i++] = MI_NOOP;
-
- handle = gem_create(fd, 4096);
- gem_write(fd, handle, 0, batch, sizeof(batch));
-
- memset(obj, 0, sizeof(obj));
- memset(&exec, 0, sizeof(exec));
-
- obj[exec.buffer_count++].handle = src;
- obj[exec.buffer_count].handle = handle;
- obj[exec.buffer_count].relocation_count = 0;
- obj[exec.buffer_count].relocs_ptr = to_user_pointer(0);
- exec.buffer_count++;
- exec.buffers_ptr = to_user_pointer(obj);
-
- exec.batch_len = i * sizeof(uint32_t);
- exec.flags = I915_EXEC_RENDER;
- i915_execbuffer2_set_context_id(exec, ctx_id);
-
- gem_execbuf(fd, &exec);
-
- return handle;
-}
-
/*
* A single bo is operated from batchbuffers submitted from two contexts and on
* different rings.
@@ -185,37 +61,32 @@ noop(int fd, uint32_t src, uint32_t ctx_id)
static void
test_retire_vma_not_inactive(int fd)
{
- uint32_t ctx_id;
- uint32_t src, dst;
- uint32_t blit_bb, noop_bb;
-
- igt_require(HAS_BLT_RING(intel_get_drm_devid(fd)));
+ struct intel_execution_engine2 *e;
- ctx_id = gem_context_create(fd);
+ igt_spin_t *bg = NULL;
- /* Create some bos batch buffers will operate on. */
- src = gem_create(fd, BO_SIZE);
- dst = gem_create(fd, BO_SIZE);
+ __for_each_physical_engine(fd, e) {
+ igt_spin_t *spin;
+ uint32_t ctx;
- /* Submit a long running batch. */
- blit_bb = blit(fd, dst, src, 0);
+ if (!bg) {
+ bg = igt_spin_new(fd, .engine = e->flags);
+ continue;
+ }
- /* Submit a quick batch referencing the same object. */
- noop_bb = noop(fd, src, ctx_id);
+ ctx = gem_context_clone_with_engines(fd, 0);
+ spin = igt_spin_new(fd, ctx,
+ .engine = e->flags,
+ .dependency = bg->handle,
+ .flags = IGT_SPIN_SOFTDEP);
+ gem_context_destroy(fd, ctx);
+ igt_spin_end(spin);
- /* Wait for the quick batch to complete. */
- gem_sync(fd, noop_bb);
- gem_close(fd, noop_bb);
-
- /* Now destroy the context in which the quick batch was submitted. */
- gem_context_destroy(fd, ctx_id);
-
- /* Wait for the slow batch to finish and clean up. */
- gem_sync(fd, blit_bb);
- gem_close(fd, blit_bb);
+ gem_sync(fd, spin->handle);
+ igt_spin_free(fd, spin);
+ }
- gem_close(fd, src);
- gem_close(fd, dst);
+ igt_spin_free(fd, bg);
}
int fd;
--
2.29.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_request_retire: Switch from random blitter loads to dummy
2020-11-23 20:15 ` [igt-dev] " Chris Wilson
(?)
@ 2020-11-23 20:49 ` Patchwork
-1 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2020-11-23 20:49 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 3791 bytes --]
== Series Details ==
Series: i915/gem_request_retire: Switch from random blitter loads to dummy
URL : https://patchwork.freedesktop.org/series/84185/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9378 -> IGTPW_5211
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/index.html
Known issues
------------
Here are the changes found in IGTPW_5211 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-skl-lmem: [PASS][1] -> [INCOMPLETE][2] ([i915#198])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-skl-lmem/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/fi-skl-lmem/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
- fi-bsw-kefka: [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- fi-icl-u2: [PASS][5] -> [DMESG-WARN][6] ([i915#1982]) +2 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
#### Possible fixes ####
* igt@i915_module_load@reload:
- fi-icl-u2: [DMESG-WARN][7] ([i915#1982]) -> [PASS][8] +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-icl-u2/igt@i915_module_load@reload.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/fi-icl-u2/igt@i915_module_load@reload.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-byt-j1900: [DMESG-WARN][9] ([i915#1982]) -> [PASS][10] +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
- {fi-kbl-7560u}: [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
Participating hosts (44 -> 39)
------------------------------
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-tgl-y fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5868 -> IGTPW_5211
CI-20190529: 20190529
CI_DRM_9378: efc7f880143d6fe75922ad393045665c8ea60f57 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5211: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/index.html
IGT_5868: 36b5fc05c30dbfd9242069fd6e51ebb419b386bc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/index.html
[-- Attachment #1.2: Type: text/html, Size: 4800 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for i915/gem_request_retire: Switch from random blitter loads to dummy
2020-11-23 20:15 ` [igt-dev] " Chris Wilson
(?)
(?)
@ 2020-11-24 1:37 ` Patchwork
-1 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2020-11-24 1:37 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 26961 bytes --]
== Series Details ==
Series: i915/gem_request_retire: Switch from random blitter loads to dummy
URL : https://patchwork.freedesktop.org/series/84185/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_9378_full -> IGTPW_5211_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_5211_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_5211_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_5211_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_vblank@pipe-c-ts-continuation-suspend:
- shard-kbl: [PASS][1] -> [DMESG-WARN][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl3/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl7/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
Known issues
------------
Here are the changes found in IGTPW_5211_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-hsw: [PASS][3] -> [FAIL][4] ([i915#2389])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw6/igt@gem_exec_reloc@basic-many-active@rcs0.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw1/igt@gem_exec_reloc@basic-many-active@rcs0.html
* igt@gem_exec_suspend@basic-s0:
- shard-hsw: [PASS][5] -> [INCOMPLETE][6] ([i915#2637]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw6/igt@gem_exec_suspend@basic-s0.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw6/igt@gem_exec_suspend@basic-s0.html
- shard-iclb: [PASS][7] -> [INCOMPLETE][8] ([i915#1090] / [i915#1185])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb6/igt@gem_exec_suspend@basic-s0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb3/igt@gem_exec_suspend@basic-s0.html
- shard-glk: [PASS][9] -> [INCOMPLETE][10] ([i915#2635])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk3/igt@gem_exec_suspend@basic-s0.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk2/igt@gem_exec_suspend@basic-s0.html
- shard-apl: [PASS][11] -> [INCOMPLETE][12] ([i915#1635] / [i915#2635])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl6/igt@gem_exec_suspend@basic-s0.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl8/igt@gem_exec_suspend@basic-s0.html
- shard-kbl: [PASS][13] -> [INCOMPLETE][14] ([i915#155])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl7/igt@gem_exec_suspend@basic-s0.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl3/igt@gem_exec_suspend@basic-s0.html
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-hsw: [PASS][15] -> [WARN][16] ([i915#1519])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw2/igt@i915_pm_rc6_residency@rc6-idle.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw1/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding:
- shard-apl: [PASS][17] -> [FAIL][18] ([i915#1635] / [i915#54])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl6/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl7/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
- shard-kbl: [PASS][19] -> [FAIL][20] ([i915#54])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl3/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl3/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
* igt@kms_cursor_edge_walk@pipe-a-256x256-right-edge:
- shard-hsw: [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw2/igt@kms_cursor_edge_walk@pipe-a-256x256-right-edge.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw1/igt@kms_cursor_edge_walk@pipe-a-256x256-right-edge.html
* igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge:
- shard-apl: [PASS][23] -> [DMESG-WARN][24] ([i915#1635] / [i915#1982]) +2 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl2/igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl3/igt@kms_cursor_edge_walk@pipe-c-256x256-left-edge.html
* igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
- shard-tglb: [PASS][25] -> [FAIL][26] ([i915#2346])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb2/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb2/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
* igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled:
- shard-glk: [PASS][27] -> [DMESG-WARN][28] ([i915#1982]) +4 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk5/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-untiled.html
* igt@kms_flip@2x-plain-flip-ts-check-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [PASS][29] -> [FAIL][30] ([i915#2122])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk5/igt@kms_flip@2x-plain-flip-ts-check-interruptible@ab-hdmi-a1-hdmi-a2.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk5/igt@kms_flip@2x-plain-flip-ts-check-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-tglb: [PASS][31] -> [FAIL][32] ([i915#2598])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb5/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb7/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1:
- shard-hsw: [PASS][33] -> [INCOMPLETE][34] ([i915#2295])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw1/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw2/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
- shard-kbl: [PASS][35] -> [DMESG-WARN][36] ([i915#1982]) +3 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
- shard-tglb: [PASS][37] -> [DMESG-WARN][38] ([i915#1982]) +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- shard-kbl: [PASS][39] -> [DMESG-WARN][40] ([i915#180])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b.html
* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [PASS][41] -> [SKIP][42] ([fdo#109441]) +2 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb8/igt@kms_psr@psr2_sprite_mmap_gtt.html
* igt@kms_vblank@pipe-c-ts-continuation-suspend:
- shard-glk: [PASS][43] -> [DMESG-WARN][44] ([i915#2635])
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk5/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk8/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
- shard-apl: [PASS][45] -> [DMESG-WARN][46] ([i915#1635] / [i915#2635])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl6/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl1/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
- shard-iclb: [PASS][47] -> [INCOMPLETE][48] ([fdo#111764] / [i915#1078] / [i915#1185])
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb4/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb1/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
#### Possible fixes ####
* igt@gem_exec_whisper@basic-contexts-all:
- shard-glk: [DMESG-WARN][49] ([i915#118] / [i915#95]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk4/igt@gem_exec_whisper@basic-contexts-all.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk9/igt@gem_exec_whisper@basic-contexts-all.html
* igt@gem_softpin@noreloc-s3:
- shard-iclb: [INCOMPLETE][51] ([i915#1373] / [i915#2405]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb1/igt@gem_softpin@noreloc-s3.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb7/igt@gem_softpin@noreloc-s3.html
- shard-apl: [INCOMPLETE][53] ([i915#1635] / [i915#2405] / [i915#2635]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl1/igt@gem_softpin@noreloc-s3.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl8/igt@gem_softpin@noreloc-s3.html
- shard-glk: [INCOMPLETE][55] ([i915#2199] / [i915#2405] / [i915#2635]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk9/igt@gem_softpin@noreloc-s3.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk1/igt@gem_softpin@noreloc-s3.html
- shard-hsw: [INCOMPLETE][57] ([i915#2405] / [i915#2637]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw4/igt@gem_softpin@noreloc-s3.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw4/igt@gem_softpin@noreloc-s3.html
- shard-kbl: [INCOMPLETE][59] ([i915#2405]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl4/igt@gem_softpin@noreloc-s3.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl3/igt@gem_softpin@noreloc-s3.html
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-hsw: [WARN][61] ([i915#1519]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw2/igt@i915_pm_rc6_residency@rc6-fence.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw4/igt@i915_pm_rc6_residency@rc6-fence.html
* igt@i915_pm_rpm@drm-resources-equal:
- shard-kbl: [SKIP][63] ([fdo#109271]) -> [PASS][64] +1 similar issue
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl4/igt@i915_pm_rpm@drm-resources-equal.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl4/igt@i915_pm_rpm@drm-resources-equal.html
- shard-iclb: [SKIP][65] ([i915#579]) -> [PASS][66] +1 similar issue
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb2/igt@i915_pm_rpm@drm-resources-equal.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb6/igt@i915_pm_rpm@drm-resources-equal.html
* igt@i915_pm_rpm@gem-execbuf:
- shard-hsw: [SKIP][67] ([fdo#109271]) -> [PASS][68] +1 similar issue
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw6/igt@i915_pm_rpm@gem-execbuf.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw4/igt@i915_pm_rpm@gem-execbuf.html
- shard-apl: [SKIP][69] ([fdo#109271] / [i915#1635]) -> [PASS][70] +1 similar issue
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl6/igt@i915_pm_rpm@gem-execbuf.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl8/igt@i915_pm_rpm@gem-execbuf.html
- shard-glk: [SKIP][71] ([fdo#109271]) -> [PASS][72] +1 similar issue
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk4/igt@i915_pm_rpm@gem-execbuf.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk7/igt@i915_pm_rpm@gem-execbuf.html
* {igt@kms_async_flips@alternate-sync-async-flip}:
- shard-tglb: [FAIL][73] ([i915#2521]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb5/igt@kms_async_flips@alternate-sync-async-flip.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb6/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-90:
- shard-kbl: [DMESG-WARN][75] ([i915#1982]) -> [PASS][76] +5 similar issues
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl3/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl6/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html
* igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-iclb: [INCOMPLETE][77] ([i915#1185] / [i915#2295]) -> [PASS][78]
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb8/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
* igt@kms_draw_crc@draw-method-rgb565-pwrite-ytiled:
- shard-apl: [DMESG-WARN][79] ([i915#1635] / [i915#1982]) -> [PASS][80] +4 similar issues
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl6/igt@kms_draw_crc@draw-method-rgb565-pwrite-ytiled.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl2/igt@kms_draw_crc@draw-method-rgb565-pwrite-ytiled.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [DMESG-WARN][81] ([i915#1982]) -> [PASS][82] +6 similar issues
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk3/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@ab-hdmi-a1-hdmi-a2.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk1/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2:
- shard-glk: [FAIL][83] ([i915#79]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk7/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite:
- shard-iclb: [DMESG-WARN][85] ([i915#1982]) -> [PASS][86]
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
- shard-tglb: [DMESG-WARN][87] ([i915#1982]) -> [PASS][88] +2 similar issues
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_prop_blob@blob-prop-validate:
- shard-hsw: [DMESG-WARN][89] ([i915#1982]) -> [PASS][90]
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-hsw6/igt@kms_prop_blob@blob-prop-validate.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-hsw1/igt@kms_prop_blob@blob-prop-validate.html
* igt@kms_psr@psr2_suspend:
- shard-iclb: [SKIP][91] ([fdo#109441]) -> [PASS][92] +2 similar issues
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb4/igt@kms_psr@psr2_suspend.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb2/igt@kms_psr@psr2_suspend.html
#### Warnings ####
* igt@gem_exec_suspend@basic-s0:
- shard-tglb: [DMESG-WARN][93] ([i915#2411]) -> [INCOMPLETE][94] ([i915#1436] / [i915#1602] / [i915#1887] / [i915#2411] / [i915#456])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb7/igt@gem_exec_suspend@basic-s0.html
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb1/igt@gem_exec_suspend@basic-s0.html
* igt@gem_softpin@noreloc-s3:
- shard-tglb: [DMESG-WARN][95] ([i915#1436] / [i915#1602] / [i915#1887] / [i915#2411]) -> [DMESG-WARN][96] ([i915#2411])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb7/igt@gem_softpin@noreloc-s3.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb1/igt@gem_softpin@noreloc-s3.html
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: [WARN][97] ([i915#1804] / [i915#2684]) -> [WARN][98] ([i915#2681] / [i915#2684])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb4/igt@i915_pm_rc6_residency@rc6-fence.html
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb1/igt@i915_pm_rc6_residency@rc6-fence.html
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][99] -> [WARN][100] ([i915#2681])
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb8/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@i915_pm_rpm@gem-execbuf:
- shard-tglb: [SKIP][101] ([i915#579]) -> [DMESG-WARN][102] ([i915#2411]) +1 similar issue
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb8/igt@i915_pm_rpm@gem-execbuf.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb8/igt@i915_pm_rpm@gem-execbuf.html
* igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
- shard-apl: [DMESG-FAIL][103] ([fdo#108145] / [i915#1635] / [i915#1982]) -> [FAIL][104] ([fdo#108145] / [i915#1635] / [i915#265])
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl2/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl7/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html
* igt@kms_vblank@pipe-c-ts-continuation-suspend:
- shard-tglb: [DMESG-WARN][105] ([i915#2411]) -> [INCOMPLETE][106] ([i915#1436] / [i915#1798] / [i915#1982] / [i915#456])
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb3/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb5/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
* igt@runner@aborted:
- shard-kbl: ([FAIL][107], [FAIL][108]) ([i915#2295] / [i915#483]) -> ([FAIL][109], [FAIL][110]) ([i915#1814] / [i915#2295] / [i915#483] / [i915#602])
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl1/igt@runner@aborted.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-kbl4/igt@runner@aborted.html
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl7/igt@runner@aborted.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-kbl3/igt@runner@aborted.html
- shard-iclb: ([FAIL][111], [FAIL][112]) ([i915#2295] / [i915#483]) -> ([FAIL][113], [FAIL][114]) ([i915#1814] / [i915#2295] / [i915#483])
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb1/igt@runner@aborted.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-iclb2/igt@runner@aborted.html
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb3/igt@runner@aborted.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-iclb1/igt@runner@aborted.html
- shard-apl: ([FAIL][115], [FAIL][116]) ([i915#1635] / [i915#2295]) -> ([FAIL][117], [FAIL][118]) ([i915#1635] / [i915#1814] / [i915#2295])
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl2/igt@runner@aborted.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-apl1/igt@runner@aborted.html
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl1/igt@runner@aborted.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-apl8/igt@runner@aborted.html
- shard-glk: ([FAIL][119], [FAIL][120], [FAIL][121]) ([i915#1814] / [i915#2295] / [i915#483] / [i915#86] / [k.org#202321]) -> ([FAIL][122], [FAIL][123]) ([i915#1814] / [i915#2295] / [k.org#202321])
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk3/igt@runner@aborted.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk8/igt@runner@aborted.html
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-glk9/igt@runner@aborted.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk2/igt@runner@aborted.html
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-glk8/igt@runner@aborted.html
- shard-tglb: ([FAIL][124], [FAIL][125]) ([i915#2295]) -> ([FAIL][126], [FAIL][127]) ([i915#1602] / [i915#2295])
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb7/igt@runner@aborted.html
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9378/shard-tglb2/igt@runner@aborted.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb5/igt@runner@aborted.html
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/shard-tglb1/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#111764]: https://bugs.freedesktop.org/show_bug.cgi?id=111764
[i915#1078]: https://gitlab.freedesktop.org/drm/intel/issues/1078
[i915#1090]: https://gitlab.freedesktop.org/drm/intel/issues/1090
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
[i915#1373]: https://gitlab.freedesktop.org/drm/intel/issues/1373
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1519]: https://gitlab.freedesktop.org/drm/intel/issues/1519
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
[i915#1798]: https://gitlab.freedesktop.org/drm/intel/issues/1798
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1887]: https://gitlab.freedesktop.org/drm/intel/issues/1887
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2199]: https://gitlab.freedesktop.org/drm/intel/issues/2199
[i915#2295]: https://gitlab.freedesktop.org/drm/intel/issues/2295
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389
[i915#2405]: https://gitlab.freedesktop.org/drm/intel/issues/2405
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
[i915#2598]: https://gitlab.freedesktop.org/drm/intel/issues/2598
[i915#2635]: https://gitlab.freedesktop.org/drm/intel/issues/2635
[i915#2637]: https://gitlab.freedesktop.org/drm/intel/issues/2637
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#483]: https://gitlab.freedesktop.org/drm/intel/issues/483
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579
[i915#602]: https://gitlab.freedesktop.org/drm/intel/issues/602
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#86]: https://gitlab.freedesktop.org/drm/intel/issues/86
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
[k.org#202321]: https://bugzilla.kernel.org/show_bug.cgi?id=202321
Participating hosts (10 -> 8)
------------------------------
Missing (2): pig-skl-6260u pig-glk-j5005
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5868 -> IGTPW_5211
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_9378: efc7f880143d6fe75922ad393045665c8ea60f57 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5211: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/index.html
IGT_5868: 36b5fc05c30dbfd9242069fd6e51ebb419b386bc @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5211/index.html
[-- Attachment #1.2: Type: text/html, Size: 34053 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy
2020-11-23 20:15 ` [igt-dev] " Chris Wilson
` (2 preceding siblings ...)
(?)
@ 2020-11-30 10:36 ` Chris Wilson
2020-11-30 16:20 ` [igt-dev] " Tvrtko Ursulin
-1 siblings, 1 reply; 11+ messages in thread
From: Chris Wilson @ 2020-11-30 10:36 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev, Chris Wilson
Use the spinners to provide exactly the right amount of background
busyness.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
---
lib/igt_dummyload.c | 23 ++---
lib/igt_dummyload.h | 1 +
tests/i915/gem_request_retire.c | 170 ++++----------------------------
3 files changed, 34 insertions(+), 160 deletions(-)
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index d58f73108..891e4eaab 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -161,19 +161,20 @@ emit_recursive_batch(igt_spin_t *spin,
if (opts->dependency) {
igt_assert(!(opts->flags & IGT_SPIN_POLL_RUN));
- r = &relocs[obj[BATCH].relocation_count++];
-
- /* dummy write to dependency */
obj[SCRATCH].handle = opts->dependency;
obj[SCRATCH].offset = addr;
- obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
-
- r->presumed_offset = obj[SCRATCH].offset;
- r->target_handle = obj[SCRATCH].handle;
- r->offset = sizeof(uint32_t) * 1020;
- r->delta = 0;
- r->read_domains = I915_GEM_DOMAIN_RENDER;
- r->write_domain = I915_GEM_DOMAIN_RENDER;
+ if (!(opts->flags & IGT_SPIN_SOFTDEP)) {
+ obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
+
+ /* dummy write to dependency */
+ r = &relocs[obj[BATCH].relocation_count++];
+ r->presumed_offset = obj[SCRATCH].offset;
+ r->target_handle = obj[SCRATCH].handle;
+ r->offset = sizeof(uint32_t) * 1020;
+ r->delta = 0;
+ r->read_domains = I915_GEM_DOMAIN_RENDER;
+ r->write_domain = I915_GEM_DOMAIN_RENDER;
+ }
execbuf->buffer_count++;
} else if (opts->flags & IGT_SPIN_POLL_RUN) {
diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
index 6d3e65ce2..b8baaa6b4 100644
--- a/lib/igt_dummyload.h
+++ b/lib/igt_dummyload.h
@@ -71,6 +71,7 @@ struct igt_spin_factory {
#define IGT_SPIN_NO_PREEMPTION (1 << 4)
#define IGT_SPIN_INVALID_CS (1 << 5)
#define IGT_SPIN_USERPTR (1 << 6)
+#define IGT_SPIN_SOFTDEP (1 << 7)
igt_spin_t *
__igt_spin_factory(int fd, const struct igt_spin_factory *opts);
diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
index 31fb41987..c23ddfb7b 100644
--- a/tests/i915/gem_request_retire.c
+++ b/tests/i915/gem_request_retire.c
@@ -52,130 +52,6 @@
IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
" paths.");
-#define WIDTH 4096
-#define HEIGHT 4096
-#define BO_SIZE (WIDTH * HEIGHT * sizeof(uint32_t))
-
-static uint32_t
-blit(int fd, uint32_t dst, uint32_t src, uint32_t ctx_id)
-{
- const unsigned int copies = 1000;
- uint32_t batch[12 * copies + 5];
- struct drm_i915_gem_relocation_entry reloc[2 * copies];
- struct drm_i915_gem_exec_object2 obj[3];
- struct drm_i915_gem_execbuffer2 exec;
- uint32_t handle;
- unsigned int i = 0, j, r = 0;
-
- for (j = 0; j < copies; j++) {
- reloc[r].target_handle = dst;
- reloc[r].delta = 0;
- reloc[r].offset = (i + 4) * sizeof(uint32_t);
- reloc[r].presumed_offset = 0;
- reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[r].write_domain = I915_GEM_DOMAIN_RENDER;
-
- r++;
-
- reloc[r].target_handle = src;
- reloc[r].delta = 0;
- reloc[r].offset = (i + 7) * sizeof(uint32_t);
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- reloc[r].offset += sizeof(uint32_t);
- reloc[r].presumed_offset = 0;
- reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
- reloc[r].write_domain = 0;
-
- r++;
-
- batch[i++] = XY_SRC_COPY_BLT_CMD |
- XY_SRC_COPY_BLT_WRITE_ALPHA |
- XY_SRC_COPY_BLT_WRITE_RGB;
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i - 1] |= 8;
- else
- batch[i - 1] |= 6;
-
- batch[i++] = (3 << 24) | /* 32 bits */
- (0xcc << 16) | /* copy ROP */
- WIDTH*4;
- batch[i++] = 0; /* dst x1,y1 */
- batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
- batch[i++] = 0; /* dst reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = 0;
- batch[i++] = 0; /* src x1,y1 */
- batch[i++] = WIDTH*4;
- batch[i++] = 0; /* src reloc */
- if (intel_gen(intel_get_drm_devid(fd)) >= 8)
- batch[i++] = 0;
- }
-
- batch[i++] = MI_BATCH_BUFFER_END;
-
- while (i % 4)
- batch[i++] = MI_NOOP;
-
- handle = gem_create(fd, sizeof(batch));
- gem_write(fd, handle, 0, batch, sizeof(batch));
-
- memset(obj, 0, sizeof(obj));
- memset(&exec, 0, sizeof(exec));
-
- obj[exec.buffer_count++].handle = dst;
- if (src != dst)
- obj[exec.buffer_count++].handle = src;
- obj[exec.buffer_count].handle = handle;
- obj[exec.buffer_count].relocation_count = 2 * copies;
- obj[exec.buffer_count].relocs_ptr = to_user_pointer(reloc);
- exec.buffer_count++;
- exec.buffers_ptr = to_user_pointer(obj);
-
- exec.batch_len = i * sizeof(uint32_t);
- exec.flags = I915_EXEC_BLT;
- i915_execbuffer2_set_context_id(exec, ctx_id);
-
- gem_execbuf(fd, &exec);
-
- return handle;
-}
-
-static uint32_t
-noop(int fd, uint32_t src, uint32_t ctx_id)
-{
- uint32_t batch[4];
- struct drm_i915_gem_exec_object2 obj[2];
- struct drm_i915_gem_execbuffer2 exec;
- uint32_t handle;
- unsigned int i = 0;
-
- batch[i++] = MI_NOOP;
- batch[i++] = MI_BATCH_BUFFER_END;
- batch[i++] = MI_NOOP;
- batch[i++] = MI_NOOP;
-
- handle = gem_create(fd, 4096);
- gem_write(fd, handle, 0, batch, sizeof(batch));
-
- memset(obj, 0, sizeof(obj));
- memset(&exec, 0, sizeof(exec));
-
- obj[exec.buffer_count++].handle = src;
- obj[exec.buffer_count].handle = handle;
- obj[exec.buffer_count].relocation_count = 0;
- obj[exec.buffer_count].relocs_ptr = to_user_pointer(0);
- exec.buffer_count++;
- exec.buffers_ptr = to_user_pointer(obj);
-
- exec.batch_len = i * sizeof(uint32_t);
- exec.flags = I915_EXEC_RENDER;
- i915_execbuffer2_set_context_id(exec, ctx_id);
-
- gem_execbuf(fd, &exec);
-
- return handle;
-}
-
/*
* A single bo is operated from batchbuffers submitted from two contexts and on
* different rings.
@@ -185,37 +61,33 @@ noop(int fd, uint32_t src, uint32_t ctx_id)
static void
test_retire_vma_not_inactive(int fd)
{
- uint32_t ctx_id;
- uint32_t src, dst;
- uint32_t blit_bb, noop_bb;
-
- igt_require(HAS_BLT_RING(intel_get_drm_devid(fd)));
+ struct intel_execution_engine2 *e;
- ctx_id = gem_context_create(fd);
+ igt_spin_t *bg = NULL;
- /* Create some bos batch buffers will operate on. */
- src = gem_create(fd, BO_SIZE);
- dst = gem_create(fd, BO_SIZE);
+ __for_each_physical_engine(fd, e) {
+ igt_spin_t *spin;
+ uint32_t ctx;
- /* Submit a long running batch. */
- blit_bb = blit(fd, dst, src, 0);
+ if (!bg) {
+ bg = igt_spin_new(fd, .engine = e->flags);
+ continue;
+ }
- /* Submit a quick batch referencing the same object. */
- noop_bb = noop(fd, src, ctx_id);
+ ctx = gem_context_clone_with_engines(fd, 0);
+ spin = igt_spin_new(fd, ctx,
+ .engine = e->flags,
+ .dependency = bg->handle,
+ .flags = IGT_SPIN_SOFTDEP);
+ gem_context_destroy(fd, ctx);
+ igt_spin_end(spin);
- /* Wait for the quick batch to complete. */
- gem_sync(fd, noop_bb);
- gem_close(fd, noop_bb);
-
- /* Now destroy the context in which the quick batch was submitted. */
- gem_context_destroy(fd, ctx_id);
-
- /* Wait for the slow batch to finish and clean up. */
- gem_sync(fd, blit_bb);
- gem_close(fd, blit_bb);
+ gem_sync(fd, spin->handle);
+ igt_spin_free(fd, spin);
+ }
- gem_close(fd, src);
- gem_close(fd, dst);
+ igt_drop_caches_set(fd, DROP_RETIRE);
+ igt_spin_free(fd, bg);
}
int fd;
--
2.29.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_request_retire: Switch from random blitter loads to dummy (rev2)
2020-11-23 20:15 ` [igt-dev] " Chris Wilson
` (3 preceding siblings ...)
(?)
@ 2020-11-30 15:14 ` Patchwork
-1 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2020-11-30 15:14 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 6164 bytes --]
== Series Details ==
Series: i915/gem_request_retire: Switch from random blitter loads to dummy (rev2)
URL : https://patchwork.freedesktop.org/series/84185/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_9405 -> IGTPW_5239
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/index.html
Known issues
------------
Here are the changes found in IGTPW_5239 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s3:
- fi-tgl-y: [PASS][1] -> [DMESG-WARN][2] ([i915#2411] / [i915#402])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-tgl-y/igt@gem_exec_suspend@basic-s3.html
* igt@gem_mmap_gtt@basic:
- fi-tgl-y: [PASS][3] -> [DMESG-WARN][4] ([i915#402]) +1 similar issue
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-tgl-y/igt@gem_mmap_gtt@basic.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-tgl-y/igt@gem_mmap_gtt@basic.html
* igt@i915_pm_rpm@module-reload:
- fi-byt-j1900: [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-byt-j1900/igt@i915_pm_rpm@module-reload.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-byt-j1900/igt@i915_pm_rpm@module-reload.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-bsw-kefka: [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
* igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
- fi-icl-u2: [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-icl-u2/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
* igt@kms_psr@primary_page_flip:
- fi-tgl-y: [PASS][11] -> [DMESG-WARN][12] ([i915#1982])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-tgl-y/igt@kms_psr@primary_page_flip.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-tgl-y/igt@kms_psr@primary_page_flip.html
#### Possible fixes ####
* igt@core_hotunplug@unbind-rebind:
- fi-icl-u2: [DMESG-WARN][13] ([i915#1982]) -> [PASS][14] +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-icl-u2/igt@core_hotunplug@unbind-rebind.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-icl-u2/igt@core_hotunplug@unbind-rebind.html
* igt@i915_module_load@reload:
- fi-tgl-y: [DMESG-WARN][15] ([i915#1982] / [k.org#205379]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-tgl-y/igt@i915_module_load@reload.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-tgl-y/igt@i915_module_load@reload.html
* igt@i915_pm_rpm@basic-pci-d3-state:
- {fi-ehl-1}: [DMESG-WARN][17] ([i915#1982]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-ehl-1/igt@i915_pm_rpm@basic-pci-d3-state.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-ehl-1/igt@i915_pm_rpm@basic-pci-d3-state.html
* igt@i915_selftest@live@execlists:
- fi-icl-y: [INCOMPLETE][19] ([i915#1037] / [i915#2276]) -> [PASS][20]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-icl-y/igt@i915_selftest@live@execlists.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-icl-y/igt@i915_selftest@live@execlists.html
* igt@kms_busy@basic@flip:
- fi-kbl-soraka: [DMESG-WARN][21] ([i915#1982]) -> [PASS][22]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-kbl-soraka/igt@kms_busy@basic@flip.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-kbl-soraka/igt@kms_busy@basic@flip.html
- fi-tgl-y: [DMESG-WARN][23] ([i915#1982]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-tgl-y/igt@kms_busy@basic@flip.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-tgl-y/igt@kms_busy@basic@flip.html
* {igt@prime_vgem@basic-userptr}:
- fi-tgl-y: [DMESG-WARN][25] ([i915#402]) -> [PASS][26] +2 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/fi-tgl-y/igt@prime_vgem@basic-userptr.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/fi-tgl-y/igt@prime_vgem@basic-userptr.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#1037]: https://gitlab.freedesktop.org/drm/intel/issues/1037
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2276]: https://gitlab.freedesktop.org/drm/intel/issues/2276
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[k.org#205379]: https://bugzilla.kernel.org/show_bug.cgi?id=205379
Participating hosts (45 -> 40)
------------------------------
Missing (5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-dg1-1 fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5876 -> IGTPW_5239
CI-20190529: 20190529
CI_DRM_9405: 9b8ec3277e6ac37b18a215370c353f0ae1a187b7 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5239: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/index.html
IGT_5876: cf2f41b3d3dfabaf3a4837062f996f3491a350b1 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/index.html
[-- Attachment #1.2: Type: text/html, Size: 7748 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy
2020-11-30 10:36 ` [Intel-gfx] [PATCH i-g-t] " Chris Wilson
@ 2020-11-30 16:20 ` Tvrtko Ursulin
0 siblings, 0 replies; 11+ messages in thread
From: Tvrtko Ursulin @ 2020-11-30 16:20 UTC (permalink / raw)
To: Chris Wilson, intel-gfx; +Cc: igt-dev
On 30/11/2020 10:36, Chris Wilson wrote:
> Use the spinners to provide exactly the right amount of background
> busyness.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> ---
> lib/igt_dummyload.c | 23 ++---
> lib/igt_dummyload.h | 1 +
> tests/i915/gem_request_retire.c | 170 ++++----------------------------
> 3 files changed, 34 insertions(+), 160 deletions(-)
>
> diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
> index d58f73108..891e4eaab 100644
> --- a/lib/igt_dummyload.c
> +++ b/lib/igt_dummyload.c
> @@ -161,19 +161,20 @@ emit_recursive_batch(igt_spin_t *spin,
> if (opts->dependency) {
> igt_assert(!(opts->flags & IGT_SPIN_POLL_RUN));
>
> - r = &relocs[obj[BATCH].relocation_count++];
> -
> - /* dummy write to dependency */
> obj[SCRATCH].handle = opts->dependency;
> obj[SCRATCH].offset = addr;
> - obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> -
> - r->presumed_offset = obj[SCRATCH].offset;
> - r->target_handle = obj[SCRATCH].handle;
> - r->offset = sizeof(uint32_t) * 1020;
> - r->delta = 0;
> - r->read_domains = I915_GEM_DOMAIN_RENDER;
> - r->write_domain = I915_GEM_DOMAIN_RENDER;
> + if (!(opts->flags & IGT_SPIN_SOFTDEP)) {
> + obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> +
> + /* dummy write to dependency */
> + r = &relocs[obj[BATCH].relocation_count++];
> + r->presumed_offset = obj[SCRATCH].offset;
> + r->target_handle = obj[SCRATCH].handle;
> + r->offset = sizeof(uint32_t) * 1020;
> + r->delta = 0;
> + r->read_domains = I915_GEM_DOMAIN_RENDER;
> + r->write_domain = I915_GEM_DOMAIN_RENDER;
> + }
>
> execbuf->buffer_count++;
> } else if (opts->flags & IGT_SPIN_POLL_RUN) {
> diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
> index 6d3e65ce2..b8baaa6b4 100644
> --- a/lib/igt_dummyload.h
> +++ b/lib/igt_dummyload.h
> @@ -71,6 +71,7 @@ struct igt_spin_factory {
> #define IGT_SPIN_NO_PREEMPTION (1 << 4)
> #define IGT_SPIN_INVALID_CS (1 << 5)
> #define IGT_SPIN_USERPTR (1 << 6)
> +#define IGT_SPIN_SOFTDEP (1 << 7)
>
> igt_spin_t *
> __igt_spin_factory(int fd, const struct igt_spin_factory *opts);
> diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
> index 31fb41987..c23ddfb7b 100644
> --- a/tests/i915/gem_request_retire.c
> +++ b/tests/i915/gem_request_retire.c
> @@ -52,130 +52,6 @@
> IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
> " paths.");
>
> -#define WIDTH 4096
> -#define HEIGHT 4096
> -#define BO_SIZE (WIDTH * HEIGHT * sizeof(uint32_t))
> -
> -static uint32_t
> -blit(int fd, uint32_t dst, uint32_t src, uint32_t ctx_id)
> -{
> - const unsigned int copies = 1000;
> - uint32_t batch[12 * copies + 5];
> - struct drm_i915_gem_relocation_entry reloc[2 * copies];
> - struct drm_i915_gem_exec_object2 obj[3];
> - struct drm_i915_gem_execbuffer2 exec;
> - uint32_t handle;
> - unsigned int i = 0, j, r = 0;
> -
> - for (j = 0; j < copies; j++) {
> - reloc[r].target_handle = dst;
> - reloc[r].delta = 0;
> - reloc[r].offset = (i + 4) * sizeof(uint32_t);
> - reloc[r].presumed_offset = 0;
> - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[r].write_domain = I915_GEM_DOMAIN_RENDER;
> -
> - r++;
> -
> - reloc[r].target_handle = src;
> - reloc[r].delta = 0;
> - reloc[r].offset = (i + 7) * sizeof(uint32_t);
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - reloc[r].offset += sizeof(uint32_t);
> - reloc[r].presumed_offset = 0;
> - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[r].write_domain = 0;
> -
> - r++;
> -
> - batch[i++] = XY_SRC_COPY_BLT_CMD |
> - XY_SRC_COPY_BLT_WRITE_ALPHA |
> - XY_SRC_COPY_BLT_WRITE_RGB;
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - batch[i - 1] |= 8;
> - else
> - batch[i - 1] |= 6;
> -
> - batch[i++] = (3 << 24) | /* 32 bits */
> - (0xcc << 16) | /* copy ROP */
> - WIDTH*4;
> - batch[i++] = 0; /* dst x1,y1 */
> - batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
> - batch[i++] = 0; /* dst reloc */
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - batch[i++] = 0;
> - batch[i++] = 0; /* src x1,y1 */
> - batch[i++] = WIDTH*4;
> - batch[i++] = 0; /* src reloc */
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - batch[i++] = 0;
> - }
> -
> - batch[i++] = MI_BATCH_BUFFER_END;
> -
> - while (i % 4)
> - batch[i++] = MI_NOOP;
> -
> - handle = gem_create(fd, sizeof(batch));
> - gem_write(fd, handle, 0, batch, sizeof(batch));
> -
> - memset(obj, 0, sizeof(obj));
> - memset(&exec, 0, sizeof(exec));
> -
> - obj[exec.buffer_count++].handle = dst;
> - if (src != dst)
> - obj[exec.buffer_count++].handle = src;
> - obj[exec.buffer_count].handle = handle;
> - obj[exec.buffer_count].relocation_count = 2 * copies;
> - obj[exec.buffer_count].relocs_ptr = to_user_pointer(reloc);
> - exec.buffer_count++;
> - exec.buffers_ptr = to_user_pointer(obj);
> -
> - exec.batch_len = i * sizeof(uint32_t);
> - exec.flags = I915_EXEC_BLT;
> - i915_execbuffer2_set_context_id(exec, ctx_id);
> -
> - gem_execbuf(fd, &exec);
> -
> - return handle;
> -}
> -
> -static uint32_t
> -noop(int fd, uint32_t src, uint32_t ctx_id)
> -{
> - uint32_t batch[4];
> - struct drm_i915_gem_exec_object2 obj[2];
> - struct drm_i915_gem_execbuffer2 exec;
> - uint32_t handle;
> - unsigned int i = 0;
> -
> - batch[i++] = MI_NOOP;
> - batch[i++] = MI_BATCH_BUFFER_END;
> - batch[i++] = MI_NOOP;
> - batch[i++] = MI_NOOP;
> -
> - handle = gem_create(fd, 4096);
> - gem_write(fd, handle, 0, batch, sizeof(batch));
> -
> - memset(obj, 0, sizeof(obj));
> - memset(&exec, 0, sizeof(exec));
> -
> - obj[exec.buffer_count++].handle = src;
> - obj[exec.buffer_count].handle = handle;
> - obj[exec.buffer_count].relocation_count = 0;
> - obj[exec.buffer_count].relocs_ptr = to_user_pointer(0);
> - exec.buffer_count++;
> - exec.buffers_ptr = to_user_pointer(obj);
> -
> - exec.batch_len = i * sizeof(uint32_t);
> - exec.flags = I915_EXEC_RENDER;
> - i915_execbuffer2_set_context_id(exec, ctx_id);
> -
> - gem_execbuf(fd, &exec);
> -
> - return handle;
> -}
> -
> /*
> * A single bo is operated from batchbuffers submitted from two contexts and on
> * different rings.
> @@ -185,37 +61,33 @@ noop(int fd, uint32_t src, uint32_t ctx_id)
> static void
> test_retire_vma_not_inactive(int fd)
> {
> - uint32_t ctx_id;
> - uint32_t src, dst;
> - uint32_t blit_bb, noop_bb;
> -
> - igt_require(HAS_BLT_RING(intel_get_drm_devid(fd)));
> + struct intel_execution_engine2 *e;
>
> - ctx_id = gem_context_create(fd);
> + igt_spin_t *bg = NULL;
>
> - /* Create some bos batch buffers will operate on. */
> - src = gem_create(fd, BO_SIZE);
> - dst = gem_create(fd, BO_SIZE);
> + __for_each_physical_engine(fd, e) {
> + igt_spin_t *spin;
> + uint32_t ctx;
>
> - /* Submit a long running batch. */
> - blit_bb = blit(fd, dst, src, 0);
> + if (!bg) {
> + bg = igt_spin_new(fd, .engine = e->flags);
> + continue;
> + }
>
> - /* Submit a quick batch referencing the same object. */
> - noop_bb = noop(fd, src, ctx_id);
> + ctx = gem_context_clone_with_engines(fd, 0);
> + spin = igt_spin_new(fd, ctx,
> + .engine = e->flags,
> + .dependency = bg->handle,
> + .flags = IGT_SPIN_SOFTDEP);
> + gem_context_destroy(fd, ctx);
> + igt_spin_end(spin);
>
> - /* Wait for the quick batch to complete. */
> - gem_sync(fd, noop_bb);
> - gem_close(fd, noop_bb);
> -
> - /* Now destroy the context in which the quick batch was submitted. */
> - gem_context_destroy(fd, ctx_id);
> -
> - /* Wait for the slow batch to finish and clean up. */
> - gem_sync(fd, blit_bb);
> - gem_close(fd, blit_bb);
> + gem_sync(fd, spin->handle);
> + igt_spin_free(fd, spin);
> + }
>
> - gem_close(fd, src);
> - gem_close(fd, dst);
> + igt_drop_caches_set(fd, DROP_RETIRE);
> + igt_spin_free(fd, bg);
> }
>
> int fd;
>
I wonder how relevant this test is today but anyway doesn't harm. It is
not exactly like-for-like replacement but I *think* the key was context
close before involved object is idled so I think is is fine.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Regards,
Tvrtko
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy
@ 2020-11-30 16:20 ` Tvrtko Ursulin
0 siblings, 0 replies; 11+ messages in thread
From: Tvrtko Ursulin @ 2020-11-30 16:20 UTC (permalink / raw)
To: Chris Wilson, intel-gfx; +Cc: igt-dev
On 30/11/2020 10:36, Chris Wilson wrote:
> Use the spinners to provide exactly the right amount of background
> busyness.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> ---
> lib/igt_dummyload.c | 23 ++---
> lib/igt_dummyload.h | 1 +
> tests/i915/gem_request_retire.c | 170 ++++----------------------------
> 3 files changed, 34 insertions(+), 160 deletions(-)
>
> diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
> index d58f73108..891e4eaab 100644
> --- a/lib/igt_dummyload.c
> +++ b/lib/igt_dummyload.c
> @@ -161,19 +161,20 @@ emit_recursive_batch(igt_spin_t *spin,
> if (opts->dependency) {
> igt_assert(!(opts->flags & IGT_SPIN_POLL_RUN));
>
> - r = &relocs[obj[BATCH].relocation_count++];
> -
> - /* dummy write to dependency */
> obj[SCRATCH].handle = opts->dependency;
> obj[SCRATCH].offset = addr;
> - obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> -
> - r->presumed_offset = obj[SCRATCH].offset;
> - r->target_handle = obj[SCRATCH].handle;
> - r->offset = sizeof(uint32_t) * 1020;
> - r->delta = 0;
> - r->read_domains = I915_GEM_DOMAIN_RENDER;
> - r->write_domain = I915_GEM_DOMAIN_RENDER;
> + if (!(opts->flags & IGT_SPIN_SOFTDEP)) {
> + obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> +
> + /* dummy write to dependency */
> + r = &relocs[obj[BATCH].relocation_count++];
> + r->presumed_offset = obj[SCRATCH].offset;
> + r->target_handle = obj[SCRATCH].handle;
> + r->offset = sizeof(uint32_t) * 1020;
> + r->delta = 0;
> + r->read_domains = I915_GEM_DOMAIN_RENDER;
> + r->write_domain = I915_GEM_DOMAIN_RENDER;
> + }
>
> execbuf->buffer_count++;
> } else if (opts->flags & IGT_SPIN_POLL_RUN) {
> diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
> index 6d3e65ce2..b8baaa6b4 100644
> --- a/lib/igt_dummyload.h
> +++ b/lib/igt_dummyload.h
> @@ -71,6 +71,7 @@ struct igt_spin_factory {
> #define IGT_SPIN_NO_PREEMPTION (1 << 4)
> #define IGT_SPIN_INVALID_CS (1 << 5)
> #define IGT_SPIN_USERPTR (1 << 6)
> +#define IGT_SPIN_SOFTDEP (1 << 7)
>
> igt_spin_t *
> __igt_spin_factory(int fd, const struct igt_spin_factory *opts);
> diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
> index 31fb41987..c23ddfb7b 100644
> --- a/tests/i915/gem_request_retire.c
> +++ b/tests/i915/gem_request_retire.c
> @@ -52,130 +52,6 @@
> IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
> " paths.");
>
> -#define WIDTH 4096
> -#define HEIGHT 4096
> -#define BO_SIZE (WIDTH * HEIGHT * sizeof(uint32_t))
> -
> -static uint32_t
> -blit(int fd, uint32_t dst, uint32_t src, uint32_t ctx_id)
> -{
> - const unsigned int copies = 1000;
> - uint32_t batch[12 * copies + 5];
> - struct drm_i915_gem_relocation_entry reloc[2 * copies];
> - struct drm_i915_gem_exec_object2 obj[3];
> - struct drm_i915_gem_execbuffer2 exec;
> - uint32_t handle;
> - unsigned int i = 0, j, r = 0;
> -
> - for (j = 0; j < copies; j++) {
> - reloc[r].target_handle = dst;
> - reloc[r].delta = 0;
> - reloc[r].offset = (i + 4) * sizeof(uint32_t);
> - reloc[r].presumed_offset = 0;
> - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[r].write_domain = I915_GEM_DOMAIN_RENDER;
> -
> - r++;
> -
> - reloc[r].target_handle = src;
> - reloc[r].delta = 0;
> - reloc[r].offset = (i + 7) * sizeof(uint32_t);
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - reloc[r].offset += sizeof(uint32_t);
> - reloc[r].presumed_offset = 0;
> - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> - reloc[r].write_domain = 0;
> -
> - r++;
> -
> - batch[i++] = XY_SRC_COPY_BLT_CMD |
> - XY_SRC_COPY_BLT_WRITE_ALPHA |
> - XY_SRC_COPY_BLT_WRITE_RGB;
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - batch[i - 1] |= 8;
> - else
> - batch[i - 1] |= 6;
> -
> - batch[i++] = (3 << 24) | /* 32 bits */
> - (0xcc << 16) | /* copy ROP */
> - WIDTH*4;
> - batch[i++] = 0; /* dst x1,y1 */
> - batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
> - batch[i++] = 0; /* dst reloc */
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - batch[i++] = 0;
> - batch[i++] = 0; /* src x1,y1 */
> - batch[i++] = WIDTH*4;
> - batch[i++] = 0; /* src reloc */
> - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> - batch[i++] = 0;
> - }
> -
> - batch[i++] = MI_BATCH_BUFFER_END;
> -
> - while (i % 4)
> - batch[i++] = MI_NOOP;
> -
> - handle = gem_create(fd, sizeof(batch));
> - gem_write(fd, handle, 0, batch, sizeof(batch));
> -
> - memset(obj, 0, sizeof(obj));
> - memset(&exec, 0, sizeof(exec));
> -
> - obj[exec.buffer_count++].handle = dst;
> - if (src != dst)
> - obj[exec.buffer_count++].handle = src;
> - obj[exec.buffer_count].handle = handle;
> - obj[exec.buffer_count].relocation_count = 2 * copies;
> - obj[exec.buffer_count].relocs_ptr = to_user_pointer(reloc);
> - exec.buffer_count++;
> - exec.buffers_ptr = to_user_pointer(obj);
> -
> - exec.batch_len = i * sizeof(uint32_t);
> - exec.flags = I915_EXEC_BLT;
> - i915_execbuffer2_set_context_id(exec, ctx_id);
> -
> - gem_execbuf(fd, &exec);
> -
> - return handle;
> -}
> -
> -static uint32_t
> -noop(int fd, uint32_t src, uint32_t ctx_id)
> -{
> - uint32_t batch[4];
> - struct drm_i915_gem_exec_object2 obj[2];
> - struct drm_i915_gem_execbuffer2 exec;
> - uint32_t handle;
> - unsigned int i = 0;
> -
> - batch[i++] = MI_NOOP;
> - batch[i++] = MI_BATCH_BUFFER_END;
> - batch[i++] = MI_NOOP;
> - batch[i++] = MI_NOOP;
> -
> - handle = gem_create(fd, 4096);
> - gem_write(fd, handle, 0, batch, sizeof(batch));
> -
> - memset(obj, 0, sizeof(obj));
> - memset(&exec, 0, sizeof(exec));
> -
> - obj[exec.buffer_count++].handle = src;
> - obj[exec.buffer_count].handle = handle;
> - obj[exec.buffer_count].relocation_count = 0;
> - obj[exec.buffer_count].relocs_ptr = to_user_pointer(0);
> - exec.buffer_count++;
> - exec.buffers_ptr = to_user_pointer(obj);
> -
> - exec.batch_len = i * sizeof(uint32_t);
> - exec.flags = I915_EXEC_RENDER;
> - i915_execbuffer2_set_context_id(exec, ctx_id);
> -
> - gem_execbuf(fd, &exec);
> -
> - return handle;
> -}
> -
> /*
> * A single bo is operated from batchbuffers submitted from two contexts and on
> * different rings.
> @@ -185,37 +61,33 @@ noop(int fd, uint32_t src, uint32_t ctx_id)
> static void
> test_retire_vma_not_inactive(int fd)
> {
> - uint32_t ctx_id;
> - uint32_t src, dst;
> - uint32_t blit_bb, noop_bb;
> -
> - igt_require(HAS_BLT_RING(intel_get_drm_devid(fd)));
> + struct intel_execution_engine2 *e;
>
> - ctx_id = gem_context_create(fd);
> + igt_spin_t *bg = NULL;
>
> - /* Create some bos batch buffers will operate on. */
> - src = gem_create(fd, BO_SIZE);
> - dst = gem_create(fd, BO_SIZE);
> + __for_each_physical_engine(fd, e) {
> + igt_spin_t *spin;
> + uint32_t ctx;
>
> - /* Submit a long running batch. */
> - blit_bb = blit(fd, dst, src, 0);
> + if (!bg) {
> + bg = igt_spin_new(fd, .engine = e->flags);
> + continue;
> + }
>
> - /* Submit a quick batch referencing the same object. */
> - noop_bb = noop(fd, src, ctx_id);
> + ctx = gem_context_clone_with_engines(fd, 0);
> + spin = igt_spin_new(fd, ctx,
> + .engine = e->flags,
> + .dependency = bg->handle,
> + .flags = IGT_SPIN_SOFTDEP);
> + gem_context_destroy(fd, ctx);
> + igt_spin_end(spin);
>
> - /* Wait for the quick batch to complete. */
> - gem_sync(fd, noop_bb);
> - gem_close(fd, noop_bb);
> -
> - /* Now destroy the context in which the quick batch was submitted. */
> - gem_context_destroy(fd, ctx_id);
> -
> - /* Wait for the slow batch to finish and clean up. */
> - gem_sync(fd, blit_bb);
> - gem_close(fd, blit_bb);
> + gem_sync(fd, spin->handle);
> + igt_spin_free(fd, spin);
> + }
>
> - gem_close(fd, src);
> - gem_close(fd, dst);
> + igt_drop_caches_set(fd, DROP_RETIRE);
> + igt_spin_free(fd, bg);
> }
>
> int fd;
>
I wonder how relevant this test is today but anyway doesn't harm. It is
not exactly like-for-like replacement but I *think* the key was context
close before involved object is idled so I think is is fine.
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [igt-dev] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy
2020-11-30 16:20 ` [igt-dev] " Tvrtko Ursulin
@ 2020-11-30 16:24 ` Chris Wilson
-1 siblings, 0 replies; 11+ messages in thread
From: Chris Wilson @ 2020-11-30 16:24 UTC (permalink / raw)
To: Tvrtko Ursulin, intel-gfx; +Cc: igt-dev
Quoting Tvrtko Ursulin (2020-11-30 16:20:18)
>
> On 30/11/2020 10:36, Chris Wilson wrote:
> > Use the spinners to provide exactly the right amount of background
> > busyness.
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > ---
> > lib/igt_dummyload.c | 23 ++---
> > lib/igt_dummyload.h | 1 +
> > tests/i915/gem_request_retire.c | 170 ++++----------------------------
> > 3 files changed, 34 insertions(+), 160 deletions(-)
> >
> > diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
> > index d58f73108..891e4eaab 100644
> > --- a/lib/igt_dummyload.c
> > +++ b/lib/igt_dummyload.c
> > @@ -161,19 +161,20 @@ emit_recursive_batch(igt_spin_t *spin,
> > if (opts->dependency) {
> > igt_assert(!(opts->flags & IGT_SPIN_POLL_RUN));
> >
> > - r = &relocs[obj[BATCH].relocation_count++];
> > -
> > - /* dummy write to dependency */
> > obj[SCRATCH].handle = opts->dependency;
> > obj[SCRATCH].offset = addr;
> > - obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> > -
> > - r->presumed_offset = obj[SCRATCH].offset;
> > - r->target_handle = obj[SCRATCH].handle;
> > - r->offset = sizeof(uint32_t) * 1020;
> > - r->delta = 0;
> > - r->read_domains = I915_GEM_DOMAIN_RENDER;
> > - r->write_domain = I915_GEM_DOMAIN_RENDER;
> > + if (!(opts->flags & IGT_SPIN_SOFTDEP)) {
> > + obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> > +
> > + /* dummy write to dependency */
> > + r = &relocs[obj[BATCH].relocation_count++];
> > + r->presumed_offset = obj[SCRATCH].offset;
> > + r->target_handle = obj[SCRATCH].handle;
> > + r->offset = sizeof(uint32_t) * 1020;
> > + r->delta = 0;
> > + r->read_domains = I915_GEM_DOMAIN_RENDER;
> > + r->write_domain = I915_GEM_DOMAIN_RENDER;
> > + }
> >
> > execbuf->buffer_count++;
> > } else if (opts->flags & IGT_SPIN_POLL_RUN) {
> > diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
> > index 6d3e65ce2..b8baaa6b4 100644
> > --- a/lib/igt_dummyload.h
> > +++ b/lib/igt_dummyload.h
> > @@ -71,6 +71,7 @@ struct igt_spin_factory {
> > #define IGT_SPIN_NO_PREEMPTION (1 << 4)
> > #define IGT_SPIN_INVALID_CS (1 << 5)
> > #define IGT_SPIN_USERPTR (1 << 6)
> > +#define IGT_SPIN_SOFTDEP (1 << 7)
> >
> > igt_spin_t *
> > __igt_spin_factory(int fd, const struct igt_spin_factory *opts);
> > diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
> > index 31fb41987..c23ddfb7b 100644
> > --- a/tests/i915/gem_request_retire.c
> > +++ b/tests/i915/gem_request_retire.c
> > @@ -52,130 +52,6 @@
> > IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
> > " paths.");
> >
> > -#define WIDTH 4096
> > -#define HEIGHT 4096
> > -#define BO_SIZE (WIDTH * HEIGHT * sizeof(uint32_t))
> > -
> > -static uint32_t
> > -blit(int fd, uint32_t dst, uint32_t src, uint32_t ctx_id)
> > -{
> > - const unsigned int copies = 1000;
> > - uint32_t batch[12 * copies + 5];
> > - struct drm_i915_gem_relocation_entry reloc[2 * copies];
> > - struct drm_i915_gem_exec_object2 obj[3];
> > - struct drm_i915_gem_execbuffer2 exec;
> > - uint32_t handle;
> > - unsigned int i = 0, j, r = 0;
> > -
> > - for (j = 0; j < copies; j++) {
> > - reloc[r].target_handle = dst;
> > - reloc[r].delta = 0;
> > - reloc[r].offset = (i + 4) * sizeof(uint32_t);
> > - reloc[r].presumed_offset = 0;
> > - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> > - reloc[r].write_domain = I915_GEM_DOMAIN_RENDER;
> > -
> > - r++;
> > -
> > - reloc[r].target_handle = src;
> > - reloc[r].delta = 0;
> > - reloc[r].offset = (i + 7) * sizeof(uint32_t);
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - reloc[r].offset += sizeof(uint32_t);
> > - reloc[r].presumed_offset = 0;
> > - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> > - reloc[r].write_domain = 0;
> > -
> > - r++;
> > -
> > - batch[i++] = XY_SRC_COPY_BLT_CMD |
> > - XY_SRC_COPY_BLT_WRITE_ALPHA |
> > - XY_SRC_COPY_BLT_WRITE_RGB;
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - batch[i - 1] |= 8;
> > - else
> > - batch[i - 1] |= 6;
> > -
> > - batch[i++] = (3 << 24) | /* 32 bits */
> > - (0xcc << 16) | /* copy ROP */
> > - WIDTH*4;
> > - batch[i++] = 0; /* dst x1,y1 */
> > - batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
> > - batch[i++] = 0; /* dst reloc */
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - batch[i++] = 0;
> > - batch[i++] = 0; /* src x1,y1 */
> > - batch[i++] = WIDTH*4;
> > - batch[i++] = 0; /* src reloc */
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - batch[i++] = 0;
> > - }
> > -
> > - batch[i++] = MI_BATCH_BUFFER_END;
> > -
> > - while (i % 4)
> > - batch[i++] = MI_NOOP;
> > -
> > - handle = gem_create(fd, sizeof(batch));
> > - gem_write(fd, handle, 0, batch, sizeof(batch));
> > -
> > - memset(obj, 0, sizeof(obj));
> > - memset(&exec, 0, sizeof(exec));
> > -
> > - obj[exec.buffer_count++].handle = dst;
> > - if (src != dst)
> > - obj[exec.buffer_count++].handle = src;
> > - obj[exec.buffer_count].handle = handle;
> > - obj[exec.buffer_count].relocation_count = 2 * copies;
> > - obj[exec.buffer_count].relocs_ptr = to_user_pointer(reloc);
> > - exec.buffer_count++;
> > - exec.buffers_ptr = to_user_pointer(obj);
> > -
> > - exec.batch_len = i * sizeof(uint32_t);
> > - exec.flags = I915_EXEC_BLT;
> > - i915_execbuffer2_set_context_id(exec, ctx_id);
> > -
> > - gem_execbuf(fd, &exec);
> > -
> > - return handle;
> > -}
> > -
> > -static uint32_t
> > -noop(int fd, uint32_t src, uint32_t ctx_id)
> > -{
> > - uint32_t batch[4];
> > - struct drm_i915_gem_exec_object2 obj[2];
> > - struct drm_i915_gem_execbuffer2 exec;
> > - uint32_t handle;
> > - unsigned int i = 0;
> > -
> > - batch[i++] = MI_NOOP;
> > - batch[i++] = MI_BATCH_BUFFER_END;
> > - batch[i++] = MI_NOOP;
> > - batch[i++] = MI_NOOP;
> > -
> > - handle = gem_create(fd, 4096);
> > - gem_write(fd, handle, 0, batch, sizeof(batch));
> > -
> > - memset(obj, 0, sizeof(obj));
> > - memset(&exec, 0, sizeof(exec));
> > -
> > - obj[exec.buffer_count++].handle = src;
> > - obj[exec.buffer_count].handle = handle;
> > - obj[exec.buffer_count].relocation_count = 0;
> > - obj[exec.buffer_count].relocs_ptr = to_user_pointer(0);
> > - exec.buffer_count++;
> > - exec.buffers_ptr = to_user_pointer(obj);
> > -
> > - exec.batch_len = i * sizeof(uint32_t);
> > - exec.flags = I915_EXEC_RENDER;
> > - i915_execbuffer2_set_context_id(exec, ctx_id);
> > -
> > - gem_execbuf(fd, &exec);
> > -
> > - return handle;
> > -}
> > -
> > /*
> > * A single bo is operated from batchbuffers submitted from two contexts and on
> > * different rings.
> > @@ -185,37 +61,33 @@ noop(int fd, uint32_t src, uint32_t ctx_id)
> > static void
> > test_retire_vma_not_inactive(int fd)
> > {
> > - uint32_t ctx_id;
> > - uint32_t src, dst;
> > - uint32_t blit_bb, noop_bb;
> > -
> > - igt_require(HAS_BLT_RING(intel_get_drm_devid(fd)));
> > + struct intel_execution_engine2 *e;
> >
> > - ctx_id = gem_context_create(fd);
> > + igt_spin_t *bg = NULL;
> >
> > - /* Create some bos batch buffers will operate on. */
> > - src = gem_create(fd, BO_SIZE);
> > - dst = gem_create(fd, BO_SIZE);
> > + __for_each_physical_engine(fd, e) {
> > + igt_spin_t *spin;
> > + uint32_t ctx;
> >
> > - /* Submit a long running batch. */
> > - blit_bb = blit(fd, dst, src, 0);
> > + if (!bg) {
> > + bg = igt_spin_new(fd, .engine = e->flags);
> > + continue;
> > + }
> >
> > - /* Submit a quick batch referencing the same object. */
> > - noop_bb = noop(fd, src, ctx_id);
> > + ctx = gem_context_clone_with_engines(fd, 0);
> > + spin = igt_spin_new(fd, ctx,
> > + .engine = e->flags,
> > + .dependency = bg->handle,
> > + .flags = IGT_SPIN_SOFTDEP);
> > + gem_context_destroy(fd, ctx);
> > + igt_spin_end(spin);
> >
> > - /* Wait for the quick batch to complete. */
> > - gem_sync(fd, noop_bb);
> > - gem_close(fd, noop_bb);
> > -
> > - /* Now destroy the context in which the quick batch was submitted. */
> > - gem_context_destroy(fd, ctx_id);
> > -
> > - /* Wait for the slow batch to finish and clean up. */
> > - gem_sync(fd, blit_bb);
> > - gem_close(fd, blit_bb);
> > + gem_sync(fd, spin->handle);
> > + igt_spin_free(fd, spin);
> > + }
> >
> > - gem_close(fd, src);
> > - gem_close(fd, dst);
> > + igt_drop_caches_set(fd, DROP_RETIRE);
> > + igt_spin_free(fd, bg);
> > }
> >
> > int fd;
> >
>
> I wonder how relevant this test is today but anyway doesn't harm. It is
> not exactly like-for-like replacement but I *think* the key was context
> close before involved object is idled so I think is is fine.
Who can say which test will find the next unexpected bug :)
[kcov, kcov, kcov!]
It's mostly like for like; close before vma idle looked to be the goal
of the test, certainly worth poking at.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy
@ 2020-11-30 16:24 ` Chris Wilson
0 siblings, 0 replies; 11+ messages in thread
From: Chris Wilson @ 2020-11-30 16:24 UTC (permalink / raw)
To: Tvrtko Ursulin, intel-gfx; +Cc: igt-dev
Quoting Tvrtko Ursulin (2020-11-30 16:20:18)
>
> On 30/11/2020 10:36, Chris Wilson wrote:
> > Use the spinners to provide exactly the right amount of background
> > busyness.
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > ---
> > lib/igt_dummyload.c | 23 ++---
> > lib/igt_dummyload.h | 1 +
> > tests/i915/gem_request_retire.c | 170 ++++----------------------------
> > 3 files changed, 34 insertions(+), 160 deletions(-)
> >
> > diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
> > index d58f73108..891e4eaab 100644
> > --- a/lib/igt_dummyload.c
> > +++ b/lib/igt_dummyload.c
> > @@ -161,19 +161,20 @@ emit_recursive_batch(igt_spin_t *spin,
> > if (opts->dependency) {
> > igt_assert(!(opts->flags & IGT_SPIN_POLL_RUN));
> >
> > - r = &relocs[obj[BATCH].relocation_count++];
> > -
> > - /* dummy write to dependency */
> > obj[SCRATCH].handle = opts->dependency;
> > obj[SCRATCH].offset = addr;
> > - obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> > -
> > - r->presumed_offset = obj[SCRATCH].offset;
> > - r->target_handle = obj[SCRATCH].handle;
> > - r->offset = sizeof(uint32_t) * 1020;
> > - r->delta = 0;
> > - r->read_domains = I915_GEM_DOMAIN_RENDER;
> > - r->write_domain = I915_GEM_DOMAIN_RENDER;
> > + if (!(opts->flags & IGT_SPIN_SOFTDEP)) {
> > + obj[SCRATCH].flags = EXEC_OBJECT_WRITE;
> > +
> > + /* dummy write to dependency */
> > + r = &relocs[obj[BATCH].relocation_count++];
> > + r->presumed_offset = obj[SCRATCH].offset;
> > + r->target_handle = obj[SCRATCH].handle;
> > + r->offset = sizeof(uint32_t) * 1020;
> > + r->delta = 0;
> > + r->read_domains = I915_GEM_DOMAIN_RENDER;
> > + r->write_domain = I915_GEM_DOMAIN_RENDER;
> > + }
> >
> > execbuf->buffer_count++;
> > } else if (opts->flags & IGT_SPIN_POLL_RUN) {
> > diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
> > index 6d3e65ce2..b8baaa6b4 100644
> > --- a/lib/igt_dummyload.h
> > +++ b/lib/igt_dummyload.h
> > @@ -71,6 +71,7 @@ struct igt_spin_factory {
> > #define IGT_SPIN_NO_PREEMPTION (1 << 4)
> > #define IGT_SPIN_INVALID_CS (1 << 5)
> > #define IGT_SPIN_USERPTR (1 << 6)
> > +#define IGT_SPIN_SOFTDEP (1 << 7)
> >
> > igt_spin_t *
> > __igt_spin_factory(int fd, const struct igt_spin_factory *opts);
> > diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
> > index 31fb41987..c23ddfb7b 100644
> > --- a/tests/i915/gem_request_retire.c
> > +++ b/tests/i915/gem_request_retire.c
> > @@ -52,130 +52,6 @@
> > IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
> > " paths.");
> >
> > -#define WIDTH 4096
> > -#define HEIGHT 4096
> > -#define BO_SIZE (WIDTH * HEIGHT * sizeof(uint32_t))
> > -
> > -static uint32_t
> > -blit(int fd, uint32_t dst, uint32_t src, uint32_t ctx_id)
> > -{
> > - const unsigned int copies = 1000;
> > - uint32_t batch[12 * copies + 5];
> > - struct drm_i915_gem_relocation_entry reloc[2 * copies];
> > - struct drm_i915_gem_exec_object2 obj[3];
> > - struct drm_i915_gem_execbuffer2 exec;
> > - uint32_t handle;
> > - unsigned int i = 0, j, r = 0;
> > -
> > - for (j = 0; j < copies; j++) {
> > - reloc[r].target_handle = dst;
> > - reloc[r].delta = 0;
> > - reloc[r].offset = (i + 4) * sizeof(uint32_t);
> > - reloc[r].presumed_offset = 0;
> > - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> > - reloc[r].write_domain = I915_GEM_DOMAIN_RENDER;
> > -
> > - r++;
> > -
> > - reloc[r].target_handle = src;
> > - reloc[r].delta = 0;
> > - reloc[r].offset = (i + 7) * sizeof(uint32_t);
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - reloc[r].offset += sizeof(uint32_t);
> > - reloc[r].presumed_offset = 0;
> > - reloc[r].read_domains = I915_GEM_DOMAIN_RENDER;
> > - reloc[r].write_domain = 0;
> > -
> > - r++;
> > -
> > - batch[i++] = XY_SRC_COPY_BLT_CMD |
> > - XY_SRC_COPY_BLT_WRITE_ALPHA |
> > - XY_SRC_COPY_BLT_WRITE_RGB;
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - batch[i - 1] |= 8;
> > - else
> > - batch[i - 1] |= 6;
> > -
> > - batch[i++] = (3 << 24) | /* 32 bits */
> > - (0xcc << 16) | /* copy ROP */
> > - WIDTH*4;
> > - batch[i++] = 0; /* dst x1,y1 */
> > - batch[i++] = (HEIGHT << 16) | WIDTH; /* dst x2,y2 */
> > - batch[i++] = 0; /* dst reloc */
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - batch[i++] = 0;
> > - batch[i++] = 0; /* src x1,y1 */
> > - batch[i++] = WIDTH*4;
> > - batch[i++] = 0; /* src reloc */
> > - if (intel_gen(intel_get_drm_devid(fd)) >= 8)
> > - batch[i++] = 0;
> > - }
> > -
> > - batch[i++] = MI_BATCH_BUFFER_END;
> > -
> > - while (i % 4)
> > - batch[i++] = MI_NOOP;
> > -
> > - handle = gem_create(fd, sizeof(batch));
> > - gem_write(fd, handle, 0, batch, sizeof(batch));
> > -
> > - memset(obj, 0, sizeof(obj));
> > - memset(&exec, 0, sizeof(exec));
> > -
> > - obj[exec.buffer_count++].handle = dst;
> > - if (src != dst)
> > - obj[exec.buffer_count++].handle = src;
> > - obj[exec.buffer_count].handle = handle;
> > - obj[exec.buffer_count].relocation_count = 2 * copies;
> > - obj[exec.buffer_count].relocs_ptr = to_user_pointer(reloc);
> > - exec.buffer_count++;
> > - exec.buffers_ptr = to_user_pointer(obj);
> > -
> > - exec.batch_len = i * sizeof(uint32_t);
> > - exec.flags = I915_EXEC_BLT;
> > - i915_execbuffer2_set_context_id(exec, ctx_id);
> > -
> > - gem_execbuf(fd, &exec);
> > -
> > - return handle;
> > -}
> > -
> > -static uint32_t
> > -noop(int fd, uint32_t src, uint32_t ctx_id)
> > -{
> > - uint32_t batch[4];
> > - struct drm_i915_gem_exec_object2 obj[2];
> > - struct drm_i915_gem_execbuffer2 exec;
> > - uint32_t handle;
> > - unsigned int i = 0;
> > -
> > - batch[i++] = MI_NOOP;
> > - batch[i++] = MI_BATCH_BUFFER_END;
> > - batch[i++] = MI_NOOP;
> > - batch[i++] = MI_NOOP;
> > -
> > - handle = gem_create(fd, 4096);
> > - gem_write(fd, handle, 0, batch, sizeof(batch));
> > -
> > - memset(obj, 0, sizeof(obj));
> > - memset(&exec, 0, sizeof(exec));
> > -
> > - obj[exec.buffer_count++].handle = src;
> > - obj[exec.buffer_count].handle = handle;
> > - obj[exec.buffer_count].relocation_count = 0;
> > - obj[exec.buffer_count].relocs_ptr = to_user_pointer(0);
> > - exec.buffer_count++;
> > - exec.buffers_ptr = to_user_pointer(obj);
> > -
> > - exec.batch_len = i * sizeof(uint32_t);
> > - exec.flags = I915_EXEC_RENDER;
> > - i915_execbuffer2_set_context_id(exec, ctx_id);
> > -
> > - gem_execbuf(fd, &exec);
> > -
> > - return handle;
> > -}
> > -
> > /*
> > * A single bo is operated from batchbuffers submitted from two contexts and on
> > * different rings.
> > @@ -185,37 +61,33 @@ noop(int fd, uint32_t src, uint32_t ctx_id)
> > static void
> > test_retire_vma_not_inactive(int fd)
> > {
> > - uint32_t ctx_id;
> > - uint32_t src, dst;
> > - uint32_t blit_bb, noop_bb;
> > -
> > - igt_require(HAS_BLT_RING(intel_get_drm_devid(fd)));
> > + struct intel_execution_engine2 *e;
> >
> > - ctx_id = gem_context_create(fd);
> > + igt_spin_t *bg = NULL;
> >
> > - /* Create some bos batch buffers will operate on. */
> > - src = gem_create(fd, BO_SIZE);
> > - dst = gem_create(fd, BO_SIZE);
> > + __for_each_physical_engine(fd, e) {
> > + igt_spin_t *spin;
> > + uint32_t ctx;
> >
> > - /* Submit a long running batch. */
> > - blit_bb = blit(fd, dst, src, 0);
> > + if (!bg) {
> > + bg = igt_spin_new(fd, .engine = e->flags);
> > + continue;
> > + }
> >
> > - /* Submit a quick batch referencing the same object. */
> > - noop_bb = noop(fd, src, ctx_id);
> > + ctx = gem_context_clone_with_engines(fd, 0);
> > + spin = igt_spin_new(fd, ctx,
> > + .engine = e->flags,
> > + .dependency = bg->handle,
> > + .flags = IGT_SPIN_SOFTDEP);
> > + gem_context_destroy(fd, ctx);
> > + igt_spin_end(spin);
> >
> > - /* Wait for the quick batch to complete. */
> > - gem_sync(fd, noop_bb);
> > - gem_close(fd, noop_bb);
> > -
> > - /* Now destroy the context in which the quick batch was submitted. */
> > - gem_context_destroy(fd, ctx_id);
> > -
> > - /* Wait for the slow batch to finish and clean up. */
> > - gem_sync(fd, blit_bb);
> > - gem_close(fd, blit_bb);
> > + gem_sync(fd, spin->handle);
> > + igt_spin_free(fd, spin);
> > + }
> >
> > - gem_close(fd, src);
> > - gem_close(fd, dst);
> > + igt_drop_caches_set(fd, DROP_RETIRE);
> > + igt_spin_free(fd, bg);
> > }
> >
> > int fd;
> >
>
> I wonder how relevant this test is today but anyway doesn't harm. It is
> not exactly like-for-like replacement but I *think* the key was context
> close before involved object is idled so I think is is fine.
Who can say which test will find the next unexpected bug :)
[kcov, kcov, kcov!]
It's mostly like for like; close before vma idle looked to be the goal
of the test, certainly worth poking at.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for i915/gem_request_retire: Switch from random blitter loads to dummy (rev2)
2020-11-23 20:15 ` [igt-dev] " Chris Wilson
` (4 preceding siblings ...)
(?)
@ 2020-12-01 7:57 ` Patchwork
-1 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2020-12-01 7:57 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
[-- Attachment #1.1: Type: text/plain, Size: 20295 bytes --]
== Series Details ==
Series: i915/gem_request_retire: Switch from random blitter loads to dummy (rev2)
URL : https://patchwork.freedesktop.org/series/84185/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_9405_full -> IGTPW_5239_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_5239_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_5239_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_5239_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_exec_reloc@basic-wide-active@vcs1:
- shard-iclb: NOTRUN -> [FAIL][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb1/igt@gem_exec_reloc@basic-wide-active@vcs1.html
* igt@runner@aborted:
- shard-hsw: NOTRUN -> [FAIL][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-hsw4/igt@runner@aborted.html
Known issues
------------
Here are the changes found in IGTPW_5239_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_workarounds@suspend-resume-context:
- shard-glk: [PASS][3] -> [INCOMPLETE][4] ([CI#80] / [i915#2295])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-glk4/igt@gem_workarounds@suspend-resume-context.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-glk4/igt@gem_workarounds@suspend-resume-context.html
* igt@i915_pm_rpm@dpms-mode-unset-lpsp:
- shard-tglb: [PASS][5] -> [SKIP][6] ([i915#579])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb7/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb6/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
- shard-iclb: [PASS][7] -> [SKIP][8] ([i915#579])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb6/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb2/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
* igt@i915_suspend@forcewake:
- shard-hsw: [PASS][9] -> [INCOMPLETE][10] ([i915#2055] / [i915#2637])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-hsw6/igt@i915_suspend@forcewake.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-hsw4/igt@i915_suspend@forcewake.html
* igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-xtiled:
- shard-glk: [PASS][11] -> [DMESG-WARN][12] ([i915#1982]) +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-glk7/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-xtiled.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-glk1/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-cpu-xtiled.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-iclb: [PASS][13] -> [INCOMPLETE][14] ([i915#1185])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb1/igt@kms_fbcon_fbt@fbc-suspend.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb2/igt@kms_fbcon_fbt@fbc-suspend.html
- shard-apl: [PASS][15] -> [INCOMPLETE][16] ([i915#1982] / [i915#2635])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-apl2/igt@kms_fbcon_fbt@fbc-suspend.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-apl2/igt@kms_fbcon_fbt@fbc-suspend.html
- shard-glk: [PASS][17] -> [INCOMPLETE][18] ([i915#2635])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-glk4/igt@kms_fbcon_fbt@fbc-suspend.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-glk6/igt@kms_fbcon_fbt@fbc-suspend.html
- shard-tglb: [PASS][19] -> [INCOMPLETE][20] ([i915#1436] / [i915#1602] / [i915#1887] / [i915#2411] / [i915#456])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb3/igt@kms_fbcon_fbt@fbc-suspend.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb6/igt@kms_fbcon_fbt@fbc-suspend.html
- shard-kbl: [PASS][21] -> [INCOMPLETE][22] ([i915#155])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-kbl3/igt@kms_fbcon_fbt@fbc-suspend.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-kbl6/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-vga1-hdmi-a1:
- shard-hsw: [PASS][23] -> [DMESG-WARN][24] ([i915#1982]) +3 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-hsw4/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-vga1-hdmi-a1.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-hsw6/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ab-vga1-hdmi-a1.html
* igt@kms_flip@flip-vs-absolute-wf_vblank@a-edp1:
- shard-tglb: [PASS][25] -> [FAIL][26] ([i915#2122])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb3/igt@kms_flip@flip-vs-absolute-wf_vblank@a-edp1.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb5/igt@kms_flip@flip-vs-absolute-wf_vblank@a-edp1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
- shard-tglb: [PASS][27] -> [FAIL][28] ([i915#2598])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
* igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
- shard-hsw: [PASS][29] -> [INCOMPLETE][30] ([i915#2055])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-hsw4/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-hsw4/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt:
- shard-tglb: [PASS][31] -> [DMESG-WARN][32] ([i915#1982]) +3 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
- shard-iclb: [PASS][33] -> [DMESG-WARN][34] ([i915#1982]) +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][35] -> [SKIP][36] ([fdo#109441]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb6/igt@kms_psr@psr2_primary_mmap_cpu.html
* igt@kms_psr@suspend:
- shard-tglb: [PASS][37] -> [INCOMPLETE][38] ([i915#1436] / [i915#1602] / [i915#1887] / [i915#2369] / [i915#2411] / [i915#456])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb1/igt@kms_psr@suspend.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb6/igt@kms_psr@suspend.html
* igt@kms_universal_plane@universal-plane-gen9-features-pipe-b:
- shard-apl: [PASS][39] -> [DMESG-WARN][40] ([i915#1982]) +1 similar issue
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-apl7/igt@kms_universal_plane@universal-plane-gen9-features-pipe-b.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-apl2/igt@kms_universal_plane@universal-plane-gen9-features-pipe-b.html
#### Possible fixes ####
* igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-glk: [FAIL][41] ([i915#2389]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-glk3/igt@gem_exec_reloc@basic-many-active@rcs0.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-glk9/igt@gem_exec_reloc@basic-many-active@rcs0.html
* {igt@kms_async_flips@alternate-sync-async-flip}:
- shard-tglb: [FAIL][43] ([i915#2521]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb1/igt@kms_async_flips@alternate-sync-async-flip.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb5/igt@kms_async_flips@alternate-sync-async-flip.html
* {igt@kms_async_flips@test-time-stamp}:
- shard-tglb: [FAIL][45] ([i915#2597]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb2/igt@kms_async_flips@test-time-stamp.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb1/igt@kms_async_flips@test-time-stamp.html
* igt@kms_atomic_transition@plane-all-transition-fencing@dp-1-pipe-b:
- shard-kbl: [DMESG-WARN][47] ([i915#78]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-kbl2/igt@kms_atomic_transition@plane-all-transition-fencing@dp-1-pipe-b.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-kbl7/igt@kms_atomic_transition@plane-all-transition-fencing@dp-1-pipe-b.html
* igt@kms_atomic_transition@plane-all-transition-fencing@dp-1-pipe-c:
- shard-kbl: [DMESG-WARN][49] -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-kbl2/igt@kms_atomic_transition@plane-all-transition-fencing@dp-1-pipe-c.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-kbl7/igt@kms_atomic_transition@plane-all-transition-fencing@dp-1-pipe-c.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
- shard-hsw: [FAIL][51] ([i915#96]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-hsw6/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-hsw4/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-tglb: [FAIL][53] ([i915#2346]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb2/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-vga1-hdmi-a1:
- shard-hsw: [DMESG-WARN][55] ([i915#1982]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-hsw6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-vga1-hdmi-a1.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-hsw4/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-vga1-hdmi-a1.html
* igt@kms_frontbuffer_tracking@fbc-badstride:
- shard-glk: [DMESG-WARN][57] ([i915#1982]) -> [PASS][58] +8 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-glk7/igt@kms_frontbuffer_tracking@fbc-badstride.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-glk8/igt@kms_frontbuffer_tracking@fbc-badstride.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc:
- shard-tglb: [DMESG-WARN][59] ([i915#1982]) -> [PASS][60] +6 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_plane@plane-position-covered-pipe-a-planes:
- shard-snb: [SKIP][61] ([fdo#109271]) -> [PASS][62] +6 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-snb4/igt@kms_plane@plane-position-covered-pipe-a-planes.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-snb6/igt@kms_plane@plane-position-covered-pipe-a-planes.html
* igt@kms_psr@psr2_basic:
- shard-iclb: [SKIP][63] ([fdo#109441]) -> [PASS][64] +2 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb7/igt@kms_psr@psr2_basic.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb2/igt@kms_psr@psr2_basic.html
* igt@kms_universal_plane@disable-primary-vs-flip-pipe-b:
- shard-apl: [DMESG-WARN][65] ([i915#1982]) -> [PASS][66] +7 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-apl3/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-apl3/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
* igt@kms_vblank@pipe-b-wait-forked-busy:
- shard-kbl: [DMESG-WARN][67] ([i915#1982]) -> [PASS][68] +2 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-kbl4/igt@kms_vblank@pipe-b-wait-forked-busy.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-kbl6/igt@kms_vblank@pipe-b-wait-forked-busy.html
* igt@perf@polling-parameterized:
- shard-iclb: [FAIL][69] ([i915#1542]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb5/igt@perf@polling-parameterized.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb1/igt@perf@polling-parameterized.html
#### Warnings ####
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][71] ([i915#1804] / [i915#2684]) -> [WARN][72] ([i915#2684])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb3/igt@i915_pm_rc6_residency@rc6-idle.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle.html
* igt@i915_pm_rpm@gem-execbuf-stress-pc8:
- shard-iclb: [SKIP][73] ([fdo#109293] / [fdo#109506]) -> [SKIP][74] ([i915#579])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-iclb3/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-iclb2/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
- shard-tglb: [SKIP][75] ([fdo#109506] / [i915#2411]) -> [SKIP][76] ([i915#579])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb7/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb6/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
* igt@i915_pm_rpm@modeset-pc8-residency-stress:
- shard-hsw: [SKIP][77] ([fdo#109271]) -> [INCOMPLETE][78] ([i915#151])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-hsw4/igt@i915_pm_rpm@modeset-pc8-residency-stress.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-hsw6/igt@i915_pm_rpm@modeset-pc8-residency-stress.html
* igt@kms_content_protection@atomic-dpms:
- shard-apl: [FAIL][79] ([fdo#110321] / [fdo#110336]) -> [TIMEOUT][80] ([i915#1319])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-apl7/igt@kms_content_protection@atomic-dpms.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-apl6/igt@kms_content_protection@atomic-dpms.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-7efc:
- shard-apl: [DMESG-FAIL][81] ([fdo#108145] / [i915#1982]) -> [FAIL][82] ([fdo#108145] / [i915#265])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-apl4/igt@kms_plane_alpha_blend@pipe-a-alpha-7efc.html
* igt@runner@aborted:
- shard-tglb: [FAIL][83] ([i915#2295] / [i915#2722]) -> ([FAIL][84], [FAIL][85], [FAIL][86]) ([i915#1602] / [i915#1814] / [i915#2295] / [i915#2722])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9405/shard-tglb5/igt@runner@aborted.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb6/igt@runner@aborted.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb7/igt@runner@aborted.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/shard-tglb6/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[CI#80]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/80
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#110321]: https://bugs.freedesktop.org/show_bug.cgi?id=110321
[fdo#110336]: https://bugs.freedesktop.org/show_bug.cgi?id=110336
[i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#151]: https://gitlab.freedesktop.org/drm/intel/issues/151
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1887]: https://gitlab.freedesktop.org/drm/intel/issues/1887
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2295]: https://gitlab.freedesktop.org/drm/intel/issues/2295
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2369]: https://gitlab.freedesktop.org/drm/intel/issues/2369
[i915#2389]: https://gitlab.freedesktop.org/drm/intel/issues/2389
[i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
[i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
[i915#2597]: https://gitlab.freedesktop.org/drm/intel/issues/2597
[i915#2598]: https://gitlab.freedesktop.org/drm/intel/issues/2598
[i915#2635]: https://gitlab.freedesktop.org/drm/intel/issues/2635
[i915#2637]: https://gitlab.freedesktop.org/drm/intel/issues/2637
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#579]: https://gitlab.freedesktop.org/drm/intel/issues/579
[i915#78]: https://gitlab.freedesktop.org/drm/intel/issues/78
[i915#96]: https://gitlab.freedesktop.org/drm/intel/issues/96
Participating hosts (10 -> 8)
------------------------------
Missing (2): pig-skl-6260u pig-glk-j5005
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5876 -> IGTPW_5239
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_9405: 9b8ec3277e6ac37b18a215370c353f0ae1a187b7 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_5239: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/index.html
IGT_5876: cf2f41b3d3dfabaf3a4837062f996f3491a350b1 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5239/index.html
[-- Attachment #1.2: Type: text/html, Size: 23965 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2020-12-01 7:57 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-23 20:15 [Intel-gfx] [PATCH i-g-t] i915/gem_request_retire: Switch from random blitter loads to dummy Chris Wilson
2020-11-23 20:15 ` [igt-dev] " Chris Wilson
2020-11-23 20:49 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2020-11-24 1:37 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-11-30 10:36 ` [Intel-gfx] [PATCH i-g-t] " Chris Wilson
2020-11-30 16:20 ` Tvrtko Ursulin
2020-11-30 16:20 ` [igt-dev] " Tvrtko Ursulin
2020-11-30 16:24 ` [Intel-gfx] " Chris Wilson
2020-11-30 16:24 ` Chris Wilson
2020-11-30 15:14 ` [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_request_retire: Switch from random blitter loads to dummy (rev2) Patchwork
2020-12-01 7:57 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.