* [PATCH i-g-t 1/4] i915/gem_exec_balancer: Beware the migratory fence
@ 2019-09-07 11:59 ` Chris Wilson
0 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
If the object needs to be migrated, it may will need GPU relocs and so
have an exclusive fence showing up in the write domain.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
tests/i915/gem_exec_balancer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index cda156ea6..407dc0eca 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -830,10 +830,10 @@ static void busy(int i915)
do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
igt_assert_eq_u32(busy.busy, 1u << (class + 16));
- /* Queued(read): expected class */
+ /* Queued(read, maybe write if being migrated): expected class */
busy.handle = spin[1]->handle;
do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
- igt_assert_eq_u32(busy.busy, 1u << (class + 16));
+ igt_assert_eq_u32(busy.busy & 0xffff << 16, 1u << (class + 16));
/* Queued(write): expected class */
busy.handle = scratch;
--
2.23.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [PATCH i-g-t 1/4] i915/gem_exec_balancer: Beware the migratory fence
@ 2019-09-07 11:59 ` Chris Wilson
0 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
If the object needs to be migrated, it may will need GPU relocs and so
have an exclusive fence showing up in the write domain.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
tests/i915/gem_exec_balancer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index cda156ea6..407dc0eca 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -830,10 +830,10 @@ static void busy(int i915)
do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
igt_assert_eq_u32(busy.busy, 1u << (class + 16));
- /* Queued(read): expected class */
+ /* Queued(read, maybe write if being migrated): expected class */
busy.handle = spin[1]->handle;
do_ioctl(i915, DRM_IOCTL_I915_GEM_BUSY, &busy);
- igt_assert_eq_u32(busy.busy, 1u << (class + 16));
+ igt_assert_eq_u32(busy.busy & 0xffff << 16, 1u << (class + 16));
/* Queued(write): expected class */
busy.handle = scratch;
--
2.23.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH i-g-t 2/4] i915/gem_exec_schedule: Check timeslice
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
@ 2019-09-07 11:59 ` Chris Wilson
-1 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
Check that we can run a second request even if an equal priority spinner
is hogging the engine.
Extend the testing with some undying timeslice behaviour that requires
hangcheck to intervene.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
---
tests/i915/gem_exec_schedule.c | 109 +++++++++++++++++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
index ddcb1f21a..461e8de09 100644
--- a/tests/i915/gem_exec_schedule.c
+++ b/tests/i915/gem_exec_schedule.c
@@ -1060,6 +1060,107 @@ static void preempt_queue(int fd, unsigned ring, unsigned int flags)
}
}
+static void preempt_timeslice(int i915, unsigned ring)
+{
+ const uint32_t bbe = MI_BATCH_BUFFER_END;
+ struct drm_i915_gem_exec_object2 obj = {
+ .handle = gem_create(i915, 4096)
+ };
+ struct drm_i915_gem_execbuffer2 execbuf = {
+ .buffers_ptr = to_user_pointer(&obj),
+ .buffer_count = 1,
+ .flags = ring,
+ .rsvd1 = gem_context_create(i915),
+ };
+ igt_spin_t *spin;
+
+ /*
+ * Launch a spinner to occupy the target engine, and then
+ * check we execute a ping underneath it from a second context.
+ */
+ spin = igt_spin_new(i915, .engine = ring, .flags = IGT_SPIN_POLL_RUN);
+ igt_spin_busywait_until_started(spin);
+
+ /* Both the active spinner and this are at the same priority */
+ gem_write(i915, obj.handle, 0, &bbe, sizeof(bbe));
+ gem_execbuf(i915, &execbuf);
+ gem_sync(i915, obj.handle);
+
+ igt_assert(gem_bo_busy(i915, spin->handle));
+ igt_spin_free(i915, spin);
+
+ gem_context_destroy(i915, execbuf.rsvd1);
+ gem_close(i915, obj.handle);
+}
+
+static void preempt_timeslice_undying(int i915, unsigned ring)
+{
+ struct drm_i915_gem_exec_object2 obj = {
+ .handle = gem_create(i915, 4096)
+ };
+ struct drm_i915_gem_execbuffer2 execbuf = {
+ .buffers_ptr = to_user_pointer(&obj),
+ .buffer_count = 1,
+ .flags = ring,
+ .rsvd1 = gem_context_create(i915),
+ };
+ igt_spin_t *spin;
+
+ /*
+ * We should not allow a spinner to evade hangcheck by simply
+ * being timesliced.
+ */
+ spin = igt_spin_new(i915, .engine = ring, .flags = IGT_SPIN_POLL_RUN);
+ igt_spin_busywait_until_started(spin);
+
+ for (int i = 0; i < 120; i++) {
+ const uint32_t bbe = MI_BATCH_BUFFER_END;
+
+ if (!gem_bo_busy(i915, spin->handle))
+ break;
+
+ gem_write(i915, obj.handle, 0, &bbe, sizeof(bbe));
+ gem_execbuf(i915, &execbuf);
+
+ usleep(500 * 1000); /* 0.5s */
+ }
+
+ igt_assert(!gem_bo_busy(i915, spin->handle));
+ igt_spin_free(i915, spin);
+
+ gem_context_destroy(i915, execbuf.rsvd1);
+ gem_close(i915, obj.handle);
+}
+
+static void preempt_antitimeslice(int i915, unsigned ring)
+{
+ uint32_t ctx[2] = { gem_context_create(i915), gem_context_create(i915) };
+ igt_spin_t *spin[2];
+
+ /*
+ * Launch two independent spinners to occupy an engine. Timeslicing
+ * should not allow them to bypass hangcheck and run indefinitely.
+ */
+ for (int i = 0; i < ARRAY_SIZE(spin); i++)
+ spin[i] = igt_spin_new(i915, ctx[i],
+ .engine = ring,
+ .flags = IGT_SPIN_FENCE_OUT);
+
+ /* Hangcheck should kill each spinner after about 10s */
+ for (int i = 0; i < ARRAY_SIZE(spin); i++) {
+ int64_t timeout = 60ull * NSEC_PER_SEC;
+ igt_assert_eq(gem_wait(i915, spin[i]->handle, &timeout), 0);
+ }
+
+ for (int i = 0; i < ARRAY_SIZE(spin); i++) {
+ igt_assert(!gem_bo_busy(i915, spin[i]->handle));
+ igt_assert_eq(sync_fence_status(spin[i]->out_fence), -EIO);
+
+ igt_spin_free(i915, spin[i]);
+ gem_context_destroy(i915, ctx[i]);
+ }
+}
+
static void preempt_self(int fd, unsigned ring)
{
uint32_t result = gem_create(fd, 4096);
@@ -1773,6 +1874,8 @@ igt_main
igt_subtest_f("preempt-queue-contexts-chain-%s", e->name)
preempt_queue(fd, e->exec_id | e->flags, CONTEXTS | CHAIN);
+ igt_subtest_f("preempt-timeslice-%s", e->name)
+ preempt_timeslice(fd, e->exec_id | e->flags);
igt_subtest_group {
igt_hang_t hang;
@@ -1788,6 +1891,12 @@ igt_main
igt_subtest_f("preemptive-hang-%s", e->name)
preemptive_hang(fd, e->exec_id | e->flags);
+ igt_subtest_f("preempt-timeslice-undying-%s", e->name)
+ preempt_timeslice_undying(fd, e->exec_id | e->flags);
+
+ igt_subtest_f("preempt-antitimeslice-%s", e->name)
+ preempt_antitimeslice(fd, e->exec_id | e->flags);
+
igt_fixture {
igt_disallow_hang(fd, hang);
igt_fork_hang_detector(fd);
--
2.23.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [PATCH i-g-t 2/4] i915/gem_exec_schedule: Check timeslice
@ 2019-09-07 11:59 ` Chris Wilson
0 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev, Tvrtko Ursulin
Check that we can run a second request even if an equal priority spinner
is hogging the engine.
Extend the testing with some undying timeslice behaviour that requires
hangcheck to intervene.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
---
tests/i915/gem_exec_schedule.c | 109 +++++++++++++++++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
index ddcb1f21a..461e8de09 100644
--- a/tests/i915/gem_exec_schedule.c
+++ b/tests/i915/gem_exec_schedule.c
@@ -1060,6 +1060,107 @@ static void preempt_queue(int fd, unsigned ring, unsigned int flags)
}
}
+static void preempt_timeslice(int i915, unsigned ring)
+{
+ const uint32_t bbe = MI_BATCH_BUFFER_END;
+ struct drm_i915_gem_exec_object2 obj = {
+ .handle = gem_create(i915, 4096)
+ };
+ struct drm_i915_gem_execbuffer2 execbuf = {
+ .buffers_ptr = to_user_pointer(&obj),
+ .buffer_count = 1,
+ .flags = ring,
+ .rsvd1 = gem_context_create(i915),
+ };
+ igt_spin_t *spin;
+
+ /*
+ * Launch a spinner to occupy the target engine, and then
+ * check we execute a ping underneath it from a second context.
+ */
+ spin = igt_spin_new(i915, .engine = ring, .flags = IGT_SPIN_POLL_RUN);
+ igt_spin_busywait_until_started(spin);
+
+ /* Both the active spinner and this are at the same priority */
+ gem_write(i915, obj.handle, 0, &bbe, sizeof(bbe));
+ gem_execbuf(i915, &execbuf);
+ gem_sync(i915, obj.handle);
+
+ igt_assert(gem_bo_busy(i915, spin->handle));
+ igt_spin_free(i915, spin);
+
+ gem_context_destroy(i915, execbuf.rsvd1);
+ gem_close(i915, obj.handle);
+}
+
+static void preempt_timeslice_undying(int i915, unsigned ring)
+{
+ struct drm_i915_gem_exec_object2 obj = {
+ .handle = gem_create(i915, 4096)
+ };
+ struct drm_i915_gem_execbuffer2 execbuf = {
+ .buffers_ptr = to_user_pointer(&obj),
+ .buffer_count = 1,
+ .flags = ring,
+ .rsvd1 = gem_context_create(i915),
+ };
+ igt_spin_t *spin;
+
+ /*
+ * We should not allow a spinner to evade hangcheck by simply
+ * being timesliced.
+ */
+ spin = igt_spin_new(i915, .engine = ring, .flags = IGT_SPIN_POLL_RUN);
+ igt_spin_busywait_until_started(spin);
+
+ for (int i = 0; i < 120; i++) {
+ const uint32_t bbe = MI_BATCH_BUFFER_END;
+
+ if (!gem_bo_busy(i915, spin->handle))
+ break;
+
+ gem_write(i915, obj.handle, 0, &bbe, sizeof(bbe));
+ gem_execbuf(i915, &execbuf);
+
+ usleep(500 * 1000); /* 0.5s */
+ }
+
+ igt_assert(!gem_bo_busy(i915, spin->handle));
+ igt_spin_free(i915, spin);
+
+ gem_context_destroy(i915, execbuf.rsvd1);
+ gem_close(i915, obj.handle);
+}
+
+static void preempt_antitimeslice(int i915, unsigned ring)
+{
+ uint32_t ctx[2] = { gem_context_create(i915), gem_context_create(i915) };
+ igt_spin_t *spin[2];
+
+ /*
+ * Launch two independent spinners to occupy an engine. Timeslicing
+ * should not allow them to bypass hangcheck and run indefinitely.
+ */
+ for (int i = 0; i < ARRAY_SIZE(spin); i++)
+ spin[i] = igt_spin_new(i915, ctx[i],
+ .engine = ring,
+ .flags = IGT_SPIN_FENCE_OUT);
+
+ /* Hangcheck should kill each spinner after about 10s */
+ for (int i = 0; i < ARRAY_SIZE(spin); i++) {
+ int64_t timeout = 60ull * NSEC_PER_SEC;
+ igt_assert_eq(gem_wait(i915, spin[i]->handle, &timeout), 0);
+ }
+
+ for (int i = 0; i < ARRAY_SIZE(spin); i++) {
+ igt_assert(!gem_bo_busy(i915, spin[i]->handle));
+ igt_assert_eq(sync_fence_status(spin[i]->out_fence), -EIO);
+
+ igt_spin_free(i915, spin[i]);
+ gem_context_destroy(i915, ctx[i]);
+ }
+}
+
static void preempt_self(int fd, unsigned ring)
{
uint32_t result = gem_create(fd, 4096);
@@ -1773,6 +1874,8 @@ igt_main
igt_subtest_f("preempt-queue-contexts-chain-%s", e->name)
preempt_queue(fd, e->exec_id | e->flags, CONTEXTS | CHAIN);
+ igt_subtest_f("preempt-timeslice-%s", e->name)
+ preempt_timeslice(fd, e->exec_id | e->flags);
igt_subtest_group {
igt_hang_t hang;
@@ -1788,6 +1891,12 @@ igt_main
igt_subtest_f("preemptive-hang-%s", e->name)
preemptive_hang(fd, e->exec_id | e->flags);
+ igt_subtest_f("preempt-timeslice-undying-%s", e->name)
+ preempt_timeslice_undying(fd, e->exec_id | e->flags);
+
+ igt_subtest_f("preempt-antitimeslice-%s", e->name)
+ preempt_antitimeslice(fd, e->exec_id | e->flags);
+
igt_fixture {
igt_disallow_hang(fd, hang);
igt_fork_hang_detector(fd);
--
2.23.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH i-g-t 3/4] Force spin-batch to cause a hang as required
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
@ 2019-09-07 11:59 ` Chris Wilson
-1 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
When using a spinner to trigger a hang, make it unpreemptable so that it
appears like a true hang.
References: https://bugs.freedesktop.org/show_bug.cgi?id=109661
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
tests/i915/gem_eio.c | 4 +++-
tests/i915/gem_exec_fence.c | 3 ++-
tests/kms_busy.c | 3 ++-
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 9b086a039..a783b7bff 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -176,7 +176,9 @@ static igt_spin_t * __spin_poll(int fd, uint32_t ctx, unsigned long flags)
struct igt_spin_factory opts = {
.ctx = ctx,
.engine = flags,
- .flags = IGT_SPIN_FAST | IGT_SPIN_FENCE_OUT,
+ .flags = (IGT_SPIN_FAST |
+ IGT_SPIN_NO_PREEMPTION |
+ IGT_SPIN_FENCE_OUT),
};
if (gem_can_store_dword(fd, opts.engine))
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index 207182922..2f04d7af4 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -331,7 +331,8 @@ static void test_fence_await(int fd, unsigned ring, unsigned flags)
spin = igt_spin_new(fd,
.engine = ring,
- .flags = IGT_SPIN_FENCE_OUT);
+ .flags = (IGT_SPIN_FENCE_OUT |
+ IGT_SPIN_NO_PREEMPTION));
igt_assert(spin->out_fence != -1);
i = 0;
diff --git a/tests/kms_busy.c b/tests/kms_busy.c
index 66f26cd08..7e5ab3d19 100644
--- a/tests/kms_busy.c
+++ b/tests/kms_busy.c
@@ -271,7 +271,8 @@ static void test_pageflip_modeset_hang(igt_display_t *dpy,
t = igt_spin_new(dpy->drm_fd,
.engine = ring,
- .dependency = fb.gem_handle);
+ .dependency = fb.gem_handle,
+ .flags = IGT_SPIN_NO_PREEMPTION);
do_or_die(drmModePageFlip(dpy->drm_fd, dpy->pipes[pipe].crtc_id, fb.fb_id, DRM_MODE_PAGE_FLIP_EVENT, &fb));
--
2.23.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [PATCH i-g-t 3/4] Force spin-batch to cause a hang as required
@ 2019-09-07 11:59 ` Chris Wilson
0 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
When using a spinner to trigger a hang, make it unpreemptable so that it
appears like a true hang.
References: https://bugs.freedesktop.org/show_bug.cgi?id=109661
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
tests/i915/gem_eio.c | 4 +++-
tests/i915/gem_exec_fence.c | 3 ++-
tests/kms_busy.c | 3 ++-
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 9b086a039..a783b7bff 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -176,7 +176,9 @@ static igt_spin_t * __spin_poll(int fd, uint32_t ctx, unsigned long flags)
struct igt_spin_factory opts = {
.ctx = ctx,
.engine = flags,
- .flags = IGT_SPIN_FAST | IGT_SPIN_FENCE_OUT,
+ .flags = (IGT_SPIN_FAST |
+ IGT_SPIN_NO_PREEMPTION |
+ IGT_SPIN_FENCE_OUT),
};
if (gem_can_store_dword(fd, opts.engine))
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index 207182922..2f04d7af4 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -331,7 +331,8 @@ static void test_fence_await(int fd, unsigned ring, unsigned flags)
spin = igt_spin_new(fd,
.engine = ring,
- .flags = IGT_SPIN_FENCE_OUT);
+ .flags = (IGT_SPIN_FENCE_OUT |
+ IGT_SPIN_NO_PREEMPTION));
igt_assert(spin->out_fence != -1);
i = 0;
diff --git a/tests/kms_busy.c b/tests/kms_busy.c
index 66f26cd08..7e5ab3d19 100644
--- a/tests/kms_busy.c
+++ b/tests/kms_busy.c
@@ -271,7 +271,8 @@ static void test_pageflip_modeset_hang(igt_display_t *dpy,
t = igt_spin_new(dpy->drm_fd,
.engine = ring,
- .dependency = fb.gem_handle);
+ .dependency = fb.gem_handle,
+ .flags = IGT_SPIN_NO_PREEMPTION);
do_or_die(drmModePageFlip(dpy->drm_fd, dpy->pipes[pipe].crtc_id, fb.fb_id, DRM_MODE_PAGE_FLIP_EVENT, &fb));
--
2.23.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH i-g-t 4/4] kms_busy: Replace fiddling with hangcheck modparam with explicit fence
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
@ 2019-09-07 11:59 ` Chris Wilson
-1 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
Use an explicit fence to circumvent the [i915] GPU hang detection rather
than tweak the i915 specific modparam (and remove the assertion that
such a param exists). Note, that with a bit more work, the fence could
be used be directly rather than via dirtying the fb with a dummyload.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
lib/igt_dummyload.c | 5 +++++
lib/igt_dummyload.h | 10 ++++++----
tests/kms_busy.c | 26 ++++++++++----------------
3 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index 0e06276af..65b5cc927 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -236,6 +236,11 @@ emit_recursive_batch(igt_spin_t *spin,
if (opts->flags & IGT_SPIN_FENCE_OUT)
execbuf->flags |= I915_EXEC_FENCE_OUT;
+ if (opts->flags & IGT_SPIN_FENCE_IN) {
+ execbuf->flags |= I915_EXEC_FENCE_IN;
+ execbuf->rsvd2 = opts->fence;
+ }
+
for (i = 0; i < nengine; i++) {
execbuf->flags &= ~ENGINE_MASK;
execbuf->flags |= flags[i];
diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
index bb25751ad..66837057d 100644
--- a/lib/igt_dummyload.h
+++ b/lib/igt_dummyload.h
@@ -54,12 +54,14 @@ struct igt_spin_factory {
uint32_t dependency;
unsigned int engine;
unsigned int flags;
+ int fence;
};
-#define IGT_SPIN_FENCE_OUT (1 << 0)
-#define IGT_SPIN_POLL_RUN (1 << 1)
-#define IGT_SPIN_FAST (1 << 2)
-#define IGT_SPIN_NO_PREEMPTION (1 << 3)
+#define IGT_SPIN_FENCE_IN (1 << 0)
+#define IGT_SPIN_FENCE_OUT (1 << 1)
+#define IGT_SPIN_POLL_RUN (1 << 2)
+#define IGT_SPIN_FAST (1 << 3)
+#define IGT_SPIN_NO_PREEMPTION (1 << 4)
igt_spin_t *
__igt_spin_factory(int fd, const struct igt_spin_factory *opts);
diff --git a/tests/kms_busy.c b/tests/kms_busy.c
index 7e5ab3d19..bfb3857f4 100644
--- a/tests/kms_busy.c
+++ b/tests/kms_busy.c
@@ -75,22 +75,16 @@ static void flip_to_fb(igt_display_t *dpy, int pipe,
struct pollfd pfd = { .fd = dpy->drm_fd, .events = POLLIN };
const int timeout = modeset ? 8500 : 100;
struct drm_event_vblank ev;
+ IGT_CORK_FENCE(cork);
+ igt_spin_t *t;
+ int fence;
- igt_spin_t *t = igt_spin_new(dpy->drm_fd,
- .engine = ring,
- .dependency = fb->gem_handle);
-
- if (modeset) {
- /*
- * We want to check that a modeset actually waits for the
- * spin batch to complete, but we keep a bigger timeout for
- * disable than required for flipping.
- *
- * As a result, the GPU reset code may kick in, which we neuter
- * here to be sure there's no premature completion.
- */
- igt_set_module_param_int("enable_hangcheck", 0);
- }
+ fence = igt_cork_plug(&cork, dpy->drm_fd);
+ t = igt_spin_new(dpy->drm_fd,
+ .engine = ring,
+ .fence = fence,
+ .dependency = fb->gem_handle,
+ .flags = IGT_SPIN_FENCE_IN | IGT_SPIN_NO_PREEMPTION);
igt_fork(child, 1) {
igt_assert(gem_bo_busy(dpy->drm_fd, fb->gem_handle));
@@ -116,13 +110,13 @@ static void flip_to_fb(igt_display_t *dpy, int pipe,
igt_waitchildren_timeout(5 * timeout,
"flip blocked waiting for busy bo\n");
igt_spin_end(t);
+ close(fence);
igt_assert(read(dpy->drm_fd, &ev, sizeof(ev)) == sizeof(ev));
igt_assert(poll(&pfd, 1, 0) == 0);
if (modeset) {
gem_quiescent_gpu(dpy->drm_fd);
- igt_set_module_param_int("enable_hangcheck", 1);
/* Clear old mode blob. */
igt_pipe_refresh(dpy, pipe, true);
--
2.23.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] [PATCH i-g-t 4/4] kms_busy: Replace fiddling with hangcheck modparam with explicit fence
@ 2019-09-07 11:59 ` Chris Wilson
0 siblings, 0 replies; 12+ messages in thread
From: Chris Wilson @ 2019-09-07 11:59 UTC (permalink / raw)
To: intel-gfx; +Cc: igt-dev
Use an explicit fence to circumvent the [i915] GPU hang detection rather
than tweak the i915 specific modparam (and remove the assertion that
such a param exists). Note, that with a bit more work, the fence could
be used be directly rather than via dirtying the fb with a dummyload.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
lib/igt_dummyload.c | 5 +++++
lib/igt_dummyload.h | 10 ++++++----
tests/kms_busy.c | 26 ++++++++++----------------
3 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/lib/igt_dummyload.c b/lib/igt_dummyload.c
index 0e06276af..65b5cc927 100644
--- a/lib/igt_dummyload.c
+++ b/lib/igt_dummyload.c
@@ -236,6 +236,11 @@ emit_recursive_batch(igt_spin_t *spin,
if (opts->flags & IGT_SPIN_FENCE_OUT)
execbuf->flags |= I915_EXEC_FENCE_OUT;
+ if (opts->flags & IGT_SPIN_FENCE_IN) {
+ execbuf->flags |= I915_EXEC_FENCE_IN;
+ execbuf->rsvd2 = opts->fence;
+ }
+
for (i = 0; i < nengine; i++) {
execbuf->flags &= ~ENGINE_MASK;
execbuf->flags |= flags[i];
diff --git a/lib/igt_dummyload.h b/lib/igt_dummyload.h
index bb25751ad..66837057d 100644
--- a/lib/igt_dummyload.h
+++ b/lib/igt_dummyload.h
@@ -54,12 +54,14 @@ struct igt_spin_factory {
uint32_t dependency;
unsigned int engine;
unsigned int flags;
+ int fence;
};
-#define IGT_SPIN_FENCE_OUT (1 << 0)
-#define IGT_SPIN_POLL_RUN (1 << 1)
-#define IGT_SPIN_FAST (1 << 2)
-#define IGT_SPIN_NO_PREEMPTION (1 << 3)
+#define IGT_SPIN_FENCE_IN (1 << 0)
+#define IGT_SPIN_FENCE_OUT (1 << 1)
+#define IGT_SPIN_POLL_RUN (1 << 2)
+#define IGT_SPIN_FAST (1 << 3)
+#define IGT_SPIN_NO_PREEMPTION (1 << 4)
igt_spin_t *
__igt_spin_factory(int fd, const struct igt_spin_factory *opts);
diff --git a/tests/kms_busy.c b/tests/kms_busy.c
index 7e5ab3d19..bfb3857f4 100644
--- a/tests/kms_busy.c
+++ b/tests/kms_busy.c
@@ -75,22 +75,16 @@ static void flip_to_fb(igt_display_t *dpy, int pipe,
struct pollfd pfd = { .fd = dpy->drm_fd, .events = POLLIN };
const int timeout = modeset ? 8500 : 100;
struct drm_event_vblank ev;
+ IGT_CORK_FENCE(cork);
+ igt_spin_t *t;
+ int fence;
- igt_spin_t *t = igt_spin_new(dpy->drm_fd,
- .engine = ring,
- .dependency = fb->gem_handle);
-
- if (modeset) {
- /*
- * We want to check that a modeset actually waits for the
- * spin batch to complete, but we keep a bigger timeout for
- * disable than required for flipping.
- *
- * As a result, the GPU reset code may kick in, which we neuter
- * here to be sure there's no premature completion.
- */
- igt_set_module_param_int("enable_hangcheck", 0);
- }
+ fence = igt_cork_plug(&cork, dpy->drm_fd);
+ t = igt_spin_new(dpy->drm_fd,
+ .engine = ring,
+ .fence = fence,
+ .dependency = fb->gem_handle,
+ .flags = IGT_SPIN_FENCE_IN | IGT_SPIN_NO_PREEMPTION);
igt_fork(child, 1) {
igt_assert(gem_bo_busy(dpy->drm_fd, fb->gem_handle));
@@ -116,13 +110,13 @@ static void flip_to_fb(igt_display_t *dpy, int pipe,
igt_waitchildren_timeout(5 * timeout,
"flip blocked waiting for busy bo\n");
igt_spin_end(t);
+ close(fence);
igt_assert(read(dpy->drm_fd, &ev, sizeof(ev)) == sizeof(ev));
igt_assert(poll(&pfd, 1, 0) == 0);
if (modeset) {
gem_quiescent_gpu(dpy->drm_fd);
- igt_set_module_param_int("enable_hangcheck", 1);
/* Clear old mode blob. */
igt_pipe_refresh(dpy, pipe, true);
--
2.23.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] i915/gem_exec_balancer: Beware the migratory fence
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
` (3 preceding siblings ...)
(?)
@ 2019-09-07 12:50 ` Patchwork
-1 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2019-09-07 12:50 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/4] i915/gem_exec_balancer: Beware the migratory fence
URL : https://patchwork.freedesktop.org/series/66375/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6849 -> IGTPW_3426
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/66375/revisions/1/mbox/
Known issues
------------
Here are the changes found in IGTPW_3426 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy: [PASS][1] -> [DMESG-WARN][2] ([fdo#102614])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3:
- fi-blb-e6850: [INCOMPLETE][3] ([fdo#107718]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
* igt@i915_module_load@reload-no-display:
- fi-icl-u3: [DMESG-WARN][5] ([fdo#107724]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/fi-icl-u3/igt@i915_module_load@reload-no-display.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/fi-icl-u3/igt@i915_module_load@reload-no-display.html
#### Warnings ####
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u: [FAIL][7] ([fdo#111096]) -> [FAIL][8] ([fdo#111407])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#102505]: https://bugs.freedesktop.org/show_bug.cgi?id=102505
[fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
[fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
[fdo#111049]: https://bugs.freedesktop.org/show_bug.cgi?id=111049
[fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
[fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407
Participating hosts (52 -> 44)
------------------------------
Missing (8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-icl-guc fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5173 -> IGTPW_3426
CI-20190529: 20190529
CI_DRM_6849: d4111d3dd34455068de02ce18b796a631c7fe3a9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3426: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/
IGT_5173: 3fb0f227d8856008f89a797879e27094745ce97e @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Testlist changes ==
+igt@gem_exec_schedule@preempt-antitimeslice-blt
+igt@gem_exec_schedule@preempt-antitimeslice-bsd
+igt@gem_exec_schedule@preempt-antitimeslice-bsd1
+igt@gem_exec_schedule@preempt-antitimeslice-bsd2
+igt@gem_exec_schedule@preempt-antitimeslice-render
+igt@gem_exec_schedule@preempt-antitimeslice-vebox
+igt@gem_exec_schedule@preempt-timeslice-blt
+igt@gem_exec_schedule@preempt-timeslice-bsd
+igt@gem_exec_schedule@preempt-timeslice-bsd1
+igt@gem_exec_schedule@preempt-timeslice-bsd2
+igt@gem_exec_schedule@preempt-timeslice-render
+igt@gem_exec_schedule@preempt-timeslice-undying-blt
+igt@gem_exec_schedule@preempt-timeslice-undying-bsd
+igt@gem_exec_schedule@preempt-timeslice-undying-bsd1
+igt@gem_exec_schedule@preempt-timeslice-undying-bsd2
+igt@gem_exec_schedule@preempt-timeslice-undying-render
+igt@gem_exec_schedule@preempt-timeslice-undying-vebox
+igt@gem_exec_schedule@preempt-timeslice-vebox
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 12+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/4] i915/gem_exec_balancer: Beware the migratory fence
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
` (4 preceding siblings ...)
(?)
@ 2019-09-07 15:02 ` Patchwork
-1 siblings, 0 replies; 12+ messages in thread
From: Patchwork @ 2019-09-07 15:02 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/4] i915/gem_exec_balancer: Beware the migratory fence
URL : https://patchwork.freedesktop.org/series/66375/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_6849_full -> IGTPW_3426_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/66375/revisions/1/mbox/
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_3426_full:
### IGT changes ###
#### Possible regressions ####
* {igt@gem_exec_schedule@preempt-antitimeslice-blt} (NEW):
- shard-kbl: NOTRUN -> [FAIL][1] +4 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-kbl2/igt@gem_exec_schedule@preempt-antitimeslice-blt.html
- shard-iclb: NOTRUN -> [FAIL][2] +1 similar issue
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb2/igt@gem_exec_schedule@preempt-antitimeslice-blt.html
* {igt@gem_exec_schedule@preempt-antitimeslice-bsd} (NEW):
- shard-glk: NOTRUN -> [FAIL][3] +2 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-glk1/igt@gem_exec_schedule@preempt-antitimeslice-bsd.html
* {igt@gem_exec_schedule@preempt-antitimeslice-vebox} (NEW):
- shard-apl: NOTRUN -> [FAIL][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-apl4/igt@gem_exec_schedule@preempt-antitimeslice-vebox.html
* {igt@gem_exec_schedule@preempt-timeslice-undying-bsd} (NEW):
- shard-iclb: NOTRUN -> [SKIP][5] +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb1/igt@gem_exec_schedule@preempt-timeslice-undying-bsd.html
New tests
---------
New tests have been introduced between CI_DRM_6849_full and IGTPW_3426_full:
### New IGT tests (18) ###
* igt@gem_exec_schedule@preempt-antitimeslice-blt:
- Statuses : 3 fail(s) 1 pass(s) 2 skip(s)
- Exec time: [0.0, 64.02] s
* igt@gem_exec_schedule@preempt-antitimeslice-bsd:
- Statuses : 1 fail(s) 1 pass(s) 3 skip(s)
- Exec time: [0.0, 62.69] s
* igt@gem_exec_schedule@preempt-antitimeslice-bsd1:
- Statuses : 1 fail(s) 5 skip(s)
- Exec time: [0.0, 62.99] s
* igt@gem_exec_schedule@preempt-antitimeslice-bsd2:
- Statuses : 1 fail(s) 1 pass(s) 4 skip(s)
- Exec time: [0.0, 60.95] s
* igt@gem_exec_schedule@preempt-antitimeslice-render:
- Statuses : 2 fail(s) 2 pass(s) 2 skip(s)
- Exec time: [0.0, 63.35] s
* igt@gem_exec_schedule@preempt-antitimeslice-vebox:
- Statuses : 3 fail(s) 1 pass(s) 2 skip(s)
- Exec time: [0.0, 62.96] s
* igt@gem_exec_schedule@preempt-timeslice-blt:
- Statuses : 4 pass(s) 2 skip(s)
- Exec time: [0.0, 0.01] s
* igt@gem_exec_schedule@preempt-timeslice-bsd:
- Statuses : 2 pass(s) 3 skip(s)
- Exec time: [0.0, 0.01] s
* igt@gem_exec_schedule@preempt-timeslice-bsd1:
- Statuses : 1 pass(s) 4 skip(s)
- Exec time: [0.0, 0.00] s
* igt@gem_exec_schedule@preempt-timeslice-bsd2:
- Statuses : 1 pass(s) 5 skip(s)
- Exec time: [0.0, 0.00] s
* igt@gem_exec_schedule@preempt-timeslice-render:
- Statuses : 4 pass(s) 2 skip(s)
- Exec time: [0.0, 0.01] s
* igt@gem_exec_schedule@preempt-timeslice-undying-blt:
- Statuses : 4 pass(s) 2 skip(s)
- Exec time: [0.0, 16.02] s
* igt@gem_exec_schedule@preempt-timeslice-undying-bsd:
- Statuses : 2 pass(s) 4 skip(s)
- Exec time: [0.0, 15.02] s
* igt@gem_exec_schedule@preempt-timeslice-undying-bsd1:
- Statuses : 1 pass(s) 5 skip(s)
- Exec time: [0.0, 14.52] s
* igt@gem_exec_schedule@preempt-timeslice-undying-bsd2:
- Statuses : 2 pass(s) 4 skip(s)
- Exec time: [0.0, 16.52] s
* igt@gem_exec_schedule@preempt-timeslice-undying-render:
- Statuses : 4 pass(s) 2 skip(s)
- Exec time: [0.0, 16.52] s
* igt@gem_exec_schedule@preempt-timeslice-undying-vebox:
- Statuses : 4 pass(s) 2 skip(s)
- Exec time: [0.0, 14.53] s
* igt@gem_exec_schedule@preempt-timeslice-vebox:
- Statuses : 4 pass(s) 2 skip(s)
- Exec time: [0.0, 0.01] s
Known issues
------------
Here are the changes found in IGTPW_3426_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_isolation@rcs0-s3:
- shard-apl: [PASS][6] -> [DMESG-WARN][7] ([fdo#108566]) +3 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-apl6/igt@gem_ctx_isolation@rcs0-s3.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-apl4/igt@gem_ctx_isolation@rcs0-s3.html
* igt@gem_exec_schedule@preempt-other-chain-bsd:
- shard-iclb: [PASS][8] -> [SKIP][9] ([fdo#111325]) +5 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb1/igt@gem_exec_schedule@preempt-other-chain-bsd.html
* igt@gem_exec_schedule@promotion-bsd1:
- shard-iclb: [PASS][10] -> [SKIP][11] ([fdo#109276]) +10 similar issues
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb2/igt@gem_exec_schedule@promotion-bsd1.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb6/igt@gem_exec_schedule@promotion-bsd1.html
* igt@kms_flip@flip-vs-suspend:
- shard-hsw: [PASS][12] -> [INCOMPLETE][13] ([fdo#103540])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-hsw7/igt@kms_flip@flip-vs-suspend.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-hsw4/igt@kms_flip@flip-vs-suspend.html
- shard-kbl: [PASS][14] -> [DMESG-WARN][15] ([fdo#103313])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-kbl4/igt@kms_flip@flip-vs-suspend.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-kbl6/igt@kms_flip@flip-vs-suspend.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
- shard-iclb: [PASS][16] -> [INCOMPLETE][17] ([fdo#107713]) +1 similar issue
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite:
- shard-iclb: [PASS][18] -> [FAIL][19] ([fdo#103167]) +4 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [PASS][20] -> [SKIP][21] ([fdo#109642] / [fdo#111068])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb3/igt@kms_psr2_su@frontbuffer.html
* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [PASS][22] -> [SKIP][23] ([fdo#109441]) +2 similar issues
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb5/igt@kms_psr@psr2_sprite_mmap_gtt.html
* igt@kms_setmode@basic:
- shard-hsw: [PASS][24] -> [FAIL][25] ([fdo#99912])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-hsw4/igt@kms_setmode@basic.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-hsw4/igt@kms_setmode@basic.html
#### Possible fixes ####
* igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl: [DMESG-WARN][26] ([fdo#103313]) -> [PASS][27]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-kbl6/igt@gem_ctx_isolation@bcs0-s3.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-kbl1/igt@gem_ctx_isolation@bcs0-s3.html
* igt@gem_exec_schedule@deep-bsd:
- shard-iclb: [SKIP][28] ([fdo#111325]) -> [PASS][29] +7 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb1/igt@gem_exec_schedule@deep-bsd.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb5/igt@gem_exec_schedule@deep-bsd.html
* igt@gem_exec_schedule@independent-bsd1:
- shard-iclb: [SKIP][30] ([fdo#109276]) -> [PASS][31] +19 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb3/igt@gem_exec_schedule@independent-bsd1.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb1/igt@gem_exec_schedule@independent-bsd1.html
* igt@gem_exec_suspend@basic-s3:
- shard-kbl: [INCOMPLETE][32] ([fdo#103665]) -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-kbl3/igt@gem_exec_suspend@basic-s3.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-kbl6/igt@gem_exec_suspend@basic-s3.html
* igt@gem_tiled_swapping@non-threaded:
- shard-apl: [DMESG-WARN][34] ([fdo#108686]) -> [PASS][35]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-apl4/igt@gem_tiled_swapping@non-threaded.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-apl1/igt@gem_tiled_swapping@non-threaded.html
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
- shard-hsw: [FAIL][36] ([fdo#105767]) -> [PASS][37]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-hsw1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-hsw4/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-glk: [FAIL][38] ([fdo#105363]) -> [PASS][39]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
* igt@kms_frontbuffer_tracking@fbc-stridechange:
- shard-glk: [FAIL][40] ([fdo#103167]) -> [PASS][41]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-glk2/igt@kms_frontbuffer_tracking@fbc-stridechange.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-glk9/igt@kms_frontbuffer_tracking@fbc-stridechange.html
- shard-apl: [FAIL][42] ([fdo#103167]) -> [PASS][43]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-apl7/igt@kms_frontbuffer_tracking@fbc-stridechange.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-apl3/igt@kms_frontbuffer_tracking@fbc-stridechange.html
- shard-kbl: [FAIL][44] ([fdo#103167]) -> [PASS][45]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-stridechange.html
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-stridechange.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt:
- shard-iclb: [FAIL][46] ([fdo#103167]) -> [PASS][47] +5 similar issues
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
* igt@kms_psr@psr2_cursor_mmap_cpu:
- shard-iclb: [SKIP][48] ([fdo#109441]) -> [PASS][49] +1 similar issue
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb7/igt@kms_psr@psr2_cursor_mmap_cpu.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
* igt@kms_vblank@pipe-c-ts-continuation-suspend:
- shard-apl: [DMESG-WARN][50] ([fdo#108566]) -> [PASS][51] +9 similar issues
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-apl3/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-apl8/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
#### Warnings ####
* igt@gem_ctx_isolation@vcs1-nonpriv:
- shard-iclb: [SKIP][52] ([fdo#109276]) -> [FAIL][53] ([fdo#111329])
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb7/igt@gem_ctx_isolation@vcs1-nonpriv.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb1/igt@gem_ctx_isolation@vcs1-nonpriv.html
* igt@gem_mocs_settings@mocs-reset-bsd2:
- shard-iclb: [SKIP][54] ([fdo#109276]) -> [FAIL][55] ([fdo#111330]) +1 similar issue
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-iclb6/igt@gem_mocs_settings@mocs-reset-bsd2.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-iclb1/igt@gem_mocs_settings@mocs-reset-bsd2.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
- shard-apl: [INCOMPLETE][56] ([fdo#103927]) -> [SKIP][57] ([fdo#109271])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6849/shard-apl2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/shard-apl5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103313]: https://bugs.freedesktop.org/show_bug.cgi?id=103313
[fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
[fdo#111329]: https://bugs.freedesktop.org/show_bug.cgi?id=111329
[fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
Participating hosts (10 -> 6)
------------------------------
Missing (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5173 -> IGTPW_3426
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_6849: d4111d3dd34455068de02ce18b796a631c7fe3a9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3426: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3426/
IGT_5173: 3fb0f227d8856008f89a797879e27094745ce97e @ 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_3426/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/4] i915/gem_exec_balancer: Beware the migratory fence
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
@ 2019-09-13 18:39 ` Matthew Auld
-1 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2019-09-13 18:39 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev, Intel Graphics Development
On Sat, 7 Sep 2019 at 13:00, Chris Wilson <chris@chris-wilson.co.uk> wrote:
>
> If the object needs to be migrated, it may will need GPU relocs and so
> have an exclusive fence showing up in the write domain.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/4] i915/gem_exec_balancer: Beware the migratory fence
@ 2019-09-13 18:39 ` Matthew Auld
0 siblings, 0 replies; 12+ messages in thread
From: Matthew Auld @ 2019-09-13 18:39 UTC (permalink / raw)
To: Chris Wilson; +Cc: igt-dev, Intel Graphics Development
On Sat, 7 Sep 2019 at 13:00, Chris Wilson <chris@chris-wilson.co.uk> wrote:
>
> If the object needs to be migrated, it may will need GPU relocs and so
> have an exclusive fence showing up in the write domain.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2019-09-13 18:39 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-07 11:59 [PATCH i-g-t 1/4] i915/gem_exec_balancer: Beware the migratory fence Chris Wilson
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
2019-09-07 11:59 ` [PATCH i-g-t 2/4] i915/gem_exec_schedule: Check timeslice Chris Wilson
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
2019-09-07 11:59 ` [PATCH i-g-t 3/4] Force spin-batch to cause a hang as required Chris Wilson
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
2019-09-07 11:59 ` [PATCH i-g-t 4/4] kms_busy: Replace fiddling with hangcheck modparam with explicit fence Chris Wilson
2019-09-07 11:59 ` [igt-dev] " Chris Wilson
2019-09-07 12:50 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] i915/gem_exec_balancer: Beware the migratory fence Patchwork
2019-09-07 15:02 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-09-13 18:39 ` [igt-dev] [PATCH i-g-t 1/4] " Matthew Auld
2019-09-13 18:39 ` Matthew Auld
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.