All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Always wakeup the next breadcrumb waiter
@ 2017-03-02 23:02 Chris Wilson
  2017-03-02 23:47 ` ✓ Fi.CI.BAT: success for " Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Chris Wilson @ 2017-03-02 23:02 UTC (permalink / raw)
  To: intel-gfx

Whenever we advance from one completed waiter to the next, give it a
kick so that it can check to see if its seqno completed during the
switch. We used to rely on faking an interrupt to determine when the
wake up was required, but now the irq should always be enabled and so no
longer receive the kick when starting a new waiter.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_breadcrumbs.c | 46 ++++++++++++--------------------
 1 file changed, 17 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c
index 235d4645a5cf..d48cbd66ae42 100644
--- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
@@ -287,6 +287,19 @@ static inline void __intel_breadcrumbs_finish(struct intel_breadcrumbs *b,
 	wake_up_process(wait->tsk); /* implicit smp_wmb() */
 }
 
+static inline void __intel_breadcrumbs_next(struct intel_breadcrumbs *b,
+					    struct rb_node *next)
+{
+	/* As there is a delay between reading the current
+	 * seqno, processing the completed tasks and selecting
+	 * the next waiter, we may have missed the interrupt
+	 * and so need for the next bottom-half to wakeup.
+	 */
+	GEM_BUG_ON(!b->irq_armed);
+	b->first_wait = to_wait(next);
+	wake_up_process(to_wait(next)->tsk);
+}
+
 static bool __intel_engine_add_wait(struct intel_engine_cs *engine,
 				    struct intel_wait *wait)
 {
@@ -357,21 +370,7 @@ static bool __intel_engine_add_wait(struct intel_engine_cs *engine,
 		GEM_BUG_ON(!next && !first);
 		if (next && next != &wait->node) {
 			GEM_BUG_ON(first);
-			b->first_wait = to_wait(next);
-			/* As there is a delay between reading the current
-			 * seqno, processing the completed tasks and selecting
-			 * the next waiter, we may have missed the interrupt
-			 * and so need for the next bottom-half to wakeup.
-			 *
-			 * Also as we enable the IRQ, we may miss the
-			 * interrupt for that seqno, so we have to wake up
-			 * the next bottom-half in order to do a coherent check
-			 * in case the seqno passed.
-			 */
-			__intel_breadcrumbs_enable_irq(b);
-			if (test_bit(ENGINE_IRQ_BREADCRUMB,
-				     &engine->irq_posted))
-				wake_up_process(to_wait(next)->tsk);
+			__intel_breadcrumbs_next(b, next);
 		}
 
 		do {
@@ -473,21 +472,10 @@ static void __intel_engine_remove_wait(struct intel_engine_cs *engine,
 			}
 		}
 
-		if (next) {
-			/* In our haste, we may have completed the first waiter
-			 * before we enabled the interrupt. Do so now as we
-			 * have a second waiter for a future seqno. Afterwards,
-			 * we have to wake up that waiter in case we missed
-			 * the interrupt, or if we have to handle an
-			 * exception rather than a seqno completion.
-			 */
-			b->first_wait = to_wait(next);
-			if (b->first_wait->seqno != wait->seqno)
-				__intel_breadcrumbs_enable_irq(b);
-			wake_up_process(b->first_wait->tsk);
-		} else {
+		if (next)
+			__intel_breadcrumbs_next(b, next);
+		else
 			b->first_wait = NULL;
-		}
 	} else {
 		GEM_BUG_ON(rb_first(&b->waiters) == &wait->node);
 	}
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Always wakeup the next breadcrumb waiter
  2017-03-02 23:02 [PATCH] drm/i915: Always wakeup the next breadcrumb waiter Chris Wilson
@ 2017-03-02 23:47 ` Patchwork
  2017-03-03  7:49 ` [PATCH] " Chris Wilson
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2017-03-02 23:47 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Always wakeup the next breadcrumb waiter
URL   : https://patchwork.freedesktop.org/series/20590/
State : success

== Summary ==

Series 20590v1 drm/i915: Always wakeup the next breadcrumb waiter
https://patchwork.freedesktop.org/api/1.0/series/20590/revisions/1/mbox/

Test drv_module_reload:
        Subgroup basic-reload:
                dmesg-warn -> PASS       (fi-ilk-650)

fi-bdw-5557u     total:278  pass:267  dwarn:0   dfail:0   fail:0   skip:11 
fi-bsw-n3050     total:278  pass:239  dwarn:0   dfail:0   fail:0   skip:39 
fi-bxt-j4205     total:278  pass:259  dwarn:0   dfail:0   fail:0   skip:19 
fi-bxt-t5700     total:278  pass:258  dwarn:0   dfail:0   fail:0   skip:20 
fi-byt-j1900     total:278  pass:251  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-n2820     total:278  pass:247  dwarn:0   dfail:0   fail:0   skip:31 
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16 
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16 
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50 
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18 
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18 
fi-kbl-7500u     total:278  pass:259  dwarn:1   dfail:0   fail:0   skip:18 
fi-skl-6260u     total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10 
fi-skl-6700hq    total:278  pass:261  dwarn:0   dfail:0   fail:0   skip:17 
fi-skl-6700k     total:278  pass:256  dwarn:4   dfail:0   fail:0   skip:18 
fi-skl-6770hq    total:278  pass:268  dwarn:0   dfail:0   fail:0   skip:10 
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28 
fi-snb-2600      total:278  pass:248  dwarn:0   dfail:0   fail:1   skip:29 

7f38bb9ea553c613223b705326c1b8d1a8fc4a90 drm-tip: 2017y-03m-02d-22h-35m-41s UTC integration manifest
a4cbf72 drm/i915: Always wakeup the next breadcrumb waiter

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4046/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] drm/i915: Always wakeup the next breadcrumb waiter
  2017-03-02 23:02 [PATCH] drm/i915: Always wakeup the next breadcrumb waiter Chris Wilson
  2017-03-02 23:47 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2017-03-03  7:49 ` Chris Wilson
  2017-03-03  7:55 ` [PATCH v2] drm/i915: Refactor wakeup of " Chris Wilson
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2017-03-03  7:49 UTC (permalink / raw)
  To: intel-gfx

On Thu, Mar 02, 2017 at 11:02:11PM +0000, Chris Wilson wrote:
> Whenever we advance from one completed waiter to the next, give it a
> kick so that it can check to see if its seqno completed during the
> switch. We used to rely on faking an interrupt to determine when the
> wake up was required, but now the irq should always be enabled and so no
> longer receive the kick when starting a new waiter.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

I can't decide if there's a bug here or not. When we install a new
waiter, we wakeup any that are complete, but the question is do we need
to wakeup the next.

Thread:					IRQ:
spin_lock_irq:
	consume expired
	first_waiter = next
	if (irq)
		wake_up(next);
					irq = true
					spin_lock:
						wake_up(first_waiter);

Will be fine.

					irq = true
					spin_lock:
						wake_up(first_waiter);
spin_lock_irq:
	consume expired
	first_waiter = next
	if (irq)
		wake_up(next);

Either the thread consumes the irq to perform the barrier before
completing, or it leaves it set and the next waiter is woken. Either
way, because the wake_up in the IRQ is now serliased by the spin_lock we
should never loose a wakeup.

In the failure case in CI, irq = false, implying that the wakeup had
been consumed before it slept. I think I need to look elsewhere for the
missing wakeup - or it is a legimate missed breadcrumb on that machine,
which looks unlikely as the error appears very specific and an ordinary
miss is likely to show up in many different tests.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2] drm/i915: Refactor wakeup of the next breadcrumb waiter
  2017-03-02 23:02 [PATCH] drm/i915: Always wakeup the next breadcrumb waiter Chris Wilson
  2017-03-02 23:47 ` ✓ Fi.CI.BAT: success for " Patchwork
  2017-03-03  7:49 ` [PATCH] " Chris Wilson
@ 2017-03-03  7:55 ` Chris Wilson
  2017-03-03  8:00 ` [PATCH v3] " Chris Wilson
  2017-03-03  8:19 ` ✗ Fi.CI.BAT: failure for drm/i915: Always wakeup the next breadcrumb waiter (rev3) Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2017-03-03  7:55 UTC (permalink / raw)
  To: intel-gfx

Since extracting the reset wakeup into a independent waitqueue, we only
need to consider the possibility of there being an outstanding
breadcrumb interrupt when advancing onto the next waiter. Both paths can
now use the same code, so refactor it to a common function.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_breadcrumbs.c | 55 +++++++++++++++-----------------
 1 file changed, 26 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c
index 235d4645a5cf..0bc37ccc066a 100644
--- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
@@ -287,6 +287,28 @@ static inline void __intel_breadcrumbs_finish(struct intel_breadcrumbs *b,
 	wake_up_process(wait->tsk); /* implicit smp_wmb() */
 }
 
+static inline void __intel_breadcrumbs_next(struct intel_engine_cs *engine,
+					    struct rb_node *next)
+{
+	struct intel_breadcrumbs *b = &engine->breadcrumbs;
+
+	/* As there is a delay between reading the current
+	 * seqno, processing the completed tasks and selecting
+	 * the next waiter, we may have missed the interrupt
+	 * and so need for the next bottom-half to wakeup.
+	 *
+	 * Note that we only have to consider wake ups from the interrupt
+	 * (breadcrumb completion) here as any others (such as GPU reset) will
+	 * wake up the affect processes directly.
+	 */
+
+	GEM_BUG_ON(!b->irq_armed);
+	b->first_wait = to_wait(next);
+
+	if (test_bit(ENGINE_IRQ_BREADCRUMB, &engine->irq_posted))
+		wake_up_process(to_wait(next)->tsk);
+}
+
 static bool __intel_engine_add_wait(struct intel_engine_cs *engine,
 				    struct intel_wait *wait)
 {
@@ -357,21 +379,7 @@ static bool __intel_engine_add_wait(struct intel_engine_cs *engine,
 		GEM_BUG_ON(!next && !first);
 		if (next && next != &wait->node) {
 			GEM_BUG_ON(first);
-			b->first_wait = to_wait(next);
-			/* As there is a delay between reading the current
-			 * seqno, processing the completed tasks and selecting
-			 * the next waiter, we may have missed the interrupt
-			 * and so need for the next bottom-half to wakeup.
-			 *
-			 * Also as we enable the IRQ, we may miss the
-			 * interrupt for that seqno, so we have to wake up
-			 * the next bottom-half in order to do a coherent check
-			 * in case the seqno passed.
-			 */
-			__intel_breadcrumbs_enable_irq(b);
-			if (test_bit(ENGINE_IRQ_BREADCRUMB,
-				     &engine->irq_posted))
-				wake_up_process(to_wait(next)->tsk);
+			__intel_breadcrumbs_next(b, next);
 		}
 
 		do {
@@ -473,21 +481,10 @@ static void __intel_engine_remove_wait(struct intel_engine_cs *engine,
 			}
 		}
 
-		if (next) {
-			/* In our haste, we may have completed the first waiter
-			 * before we enabled the interrupt. Do so now as we
-			 * have a second waiter for a future seqno. Afterwards,
-			 * we have to wake up that waiter in case we missed
-			 * the interrupt, or if we have to handle an
-			 * exception rather than a seqno completion.
-			 */
-			b->first_wait = to_wait(next);
-			if (b->first_wait->seqno != wait->seqno)
-				__intel_breadcrumbs_enable_irq(b);
-			wake_up_process(b->first_wait->tsk);
-		} else {
+		if (next)
+			__intel_breadcrumbs_next(engine, next);
+		else
 			b->first_wait = NULL;
-		}
 	} else {
 		GEM_BUG_ON(rb_first(&b->waiters) == &wait->node);
 	}
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v3] drm/i915: Refactor wakeup of the next breadcrumb waiter
  2017-03-02 23:02 [PATCH] drm/i915: Always wakeup the next breadcrumb waiter Chris Wilson
                   ` (2 preceding siblings ...)
  2017-03-03  7:55 ` [PATCH v2] drm/i915: Refactor wakeup of " Chris Wilson
@ 2017-03-03  8:00 ` Chris Wilson
  2017-03-03  8:19 ` ✗ Fi.CI.BAT: failure for drm/i915: Always wakeup the next breadcrumb waiter (rev3) Patchwork
  4 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2017-03-03  8:00 UTC (permalink / raw)
  To: intel-gfx

Since extracting the reset wakeup into a independent waitqueue, we only
need to consider the possibility of there being an outstanding
breadcrumb interrupt when advancing onto the next waiter. Both paths can
now use the same code, so refactor it to a common function.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
git add
---
 drivers/gpu/drm/i915/intel_breadcrumbs.c | 56 +++++++++++++++-----------------
 1 file changed, 27 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c
index 235d4645a5cf..afefacc2e226 100644
--- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
@@ -287,6 +287,29 @@ static inline void __intel_breadcrumbs_finish(struct intel_breadcrumbs *b,
 	wake_up_process(wait->tsk); /* implicit smp_wmb() */
 }
 
+static inline void __intel_breadcrumbs_next(struct intel_engine_cs *engine,
+					    struct rb_node *next)
+{
+	struct intel_breadcrumbs *b = &engine->breadcrumbs;
+
+	/* As there is a delay between reading the current
+	 * seqno, processing the completed tasks and selecting
+	 * the next waiter, we may have missed the interrupt
+	 * and so need for the next bottom-half to wakeup.
+	 *
+	 * Note that we only have to consider wake ups from the interrupt
+	 * (breadcrumb completion) here as any others (such as GPU reset) will
+	 * wake up the affect processes directly.
+	 */
+
+	GEM_BUG_ON(!b->irq_armed);
+	b->first_wait = to_wait(next);
+
+	if (engine->irq_seqno_barrier &&
+	    test_bit(ENGINE_IRQ_BREADCRUMB, &engine->irq_posted))
+		wake_up_process(to_wait(next)->tsk);
+}
+
 static bool __intel_engine_add_wait(struct intel_engine_cs *engine,
 				    struct intel_wait *wait)
 {
@@ -357,21 +380,7 @@ static bool __intel_engine_add_wait(struct intel_engine_cs *engine,
 		GEM_BUG_ON(!next && !first);
 		if (next && next != &wait->node) {
 			GEM_BUG_ON(first);
-			b->first_wait = to_wait(next);
-			/* As there is a delay between reading the current
-			 * seqno, processing the completed tasks and selecting
-			 * the next waiter, we may have missed the interrupt
-			 * and so need for the next bottom-half to wakeup.
-			 *
-			 * Also as we enable the IRQ, we may miss the
-			 * interrupt for that seqno, so we have to wake up
-			 * the next bottom-half in order to do a coherent check
-			 * in case the seqno passed.
-			 */
-			__intel_breadcrumbs_enable_irq(b);
-			if (test_bit(ENGINE_IRQ_BREADCRUMB,
-				     &engine->irq_posted))
-				wake_up_process(to_wait(next)->tsk);
+			__intel_breadcrumbs_next(engine, next);
 		}
 
 		do {
@@ -473,21 +482,10 @@ static void __intel_engine_remove_wait(struct intel_engine_cs *engine,
 			}
 		}
 
-		if (next) {
-			/* In our haste, we may have completed the first waiter
-			 * before we enabled the interrupt. Do so now as we
-			 * have a second waiter for a future seqno. Afterwards,
-			 * we have to wake up that waiter in case we missed
-			 * the interrupt, or if we have to handle an
-			 * exception rather than a seqno completion.
-			 */
-			b->first_wait = to_wait(next);
-			if (b->first_wait->seqno != wait->seqno)
-				__intel_breadcrumbs_enable_irq(b);
-			wake_up_process(b->first_wait->tsk);
-		} else {
+		if (next)
+			__intel_breadcrumbs_next(engine, next);
+		else
 			b->first_wait = NULL;
-		}
 	} else {
 		GEM_BUG_ON(rb_first(&b->waiters) == &wait->node);
 	}
-- 
2.11.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915: Always wakeup the next breadcrumb waiter (rev3)
  2017-03-02 23:02 [PATCH] drm/i915: Always wakeup the next breadcrumb waiter Chris Wilson
                   ` (3 preceding siblings ...)
  2017-03-03  8:00 ` [PATCH v3] " Chris Wilson
@ 2017-03-03  8:19 ` Patchwork
  2017-03-03  8:31   ` Chris Wilson
  4 siblings, 1 reply; 7+ messages in thread
From: Patchwork @ 2017-03-03  8:19 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Always wakeup the next breadcrumb waiter (rev3)
URL   : https://patchwork.freedesktop.org/series/20590/
State : failure

== Summary ==

Series 20590v3 drm/i915: Always wakeup the next breadcrumb waiter
https://patchwork.freedesktop.org/api/1.0/series/20590/revisions/3/mbox/

Test drv_module_reload:
        Subgroup basic-reload:
                dmesg-warn -> PASS       (fi-ilk-650)
Test gem_exec_flush:
        Subgroup basic-batch-kernel-default-uc:
                fail       -> PASS       (fi-snb-2600) fdo#100007
Test gem_exec_parallel:
        Subgroup basic:
                pass       -> FAIL       (fi-bxt-t5700)
                pass       -> FAIL       (fi-skl-6260u)
                pass       -> FAIL       (fi-bxt-j4205)
                pass       -> FAIL       (fi-bdw-5557u)
                pass       -> FAIL       (fi-skl-6700hq)
                pass       -> FAIL       (fi-kbl-7500u)
Test gem_sync:
        Subgroup basic-store-all:
                pass       -> FAIL       (fi-bxt-t5700)
                pass       -> FAIL       (fi-bxt-j4205)
                pass       -> FAIL       (fi-kbl-7500u)
                pass       -> FAIL       (fi-skl-6260u)
                pass       -> FAIL       (fi-skl-6700hq)
                pass       -> FAIL       (fi-bdw-5557u)
                pass       -> FAIL       (fi-skl-6700k)
                pass       -> FAIL       (fi-skl-6770hq)
                pass       -> FAIL       (fi-bsw-n3050)

fdo#100007 https://bugs.freedesktop.org/show_bug.cgi?id=100007

fi-bdw-5557u     total:278  pass:265  dwarn:0   dfail:0   fail:2   skip:11 
fi-bsw-n3050     total:278  pass:238  dwarn:0   dfail:0   fail:1   skip:39 
fi-bxt-j4205     total:278  pass:257  dwarn:0   dfail:0   fail:2   skip:19 
fi-bxt-t5700     total:278  pass:256  dwarn:0   dfail:0   fail:2   skip:20 
fi-byt-j1900     total:278  pass:251  dwarn:0   dfail:0   fail:0   skip:27 
fi-byt-n2820     total:278  pass:247  dwarn:0   dfail:0   fail:0   skip:31 
fi-hsw-4770      total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16 
fi-hsw-4770r     total:278  pass:262  dwarn:0   dfail:0   fail:0   skip:16 
fi-ilk-650       total:278  pass:228  dwarn:0   dfail:0   fail:0   skip:50 
fi-ivb-3520m     total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18 
fi-ivb-3770      total:278  pass:260  dwarn:0   dfail:0   fail:0   skip:18 
fi-kbl-7500u     total:278  pass:257  dwarn:1   dfail:0   fail:2   skip:18 
fi-skl-6260u     total:278  pass:266  dwarn:0   dfail:0   fail:2   skip:10 
fi-skl-6700hq    total:278  pass:259  dwarn:0   dfail:0   fail:2   skip:17 
fi-skl-6700k     total:278  pass:255  dwarn:4   dfail:0   fail:1   skip:18 
fi-skl-6770hq    total:278  pass:267  dwarn:0   dfail:0   fail:1   skip:10 
fi-snb-2520m     total:278  pass:250  dwarn:0   dfail:0   fail:0   skip:28 
fi-snb-2600      total:278  pass:249  dwarn:0   dfail:0   fail:0   skip:29 

7f38bb9ea553c613223b705326c1b8d1a8fc4a90 drm-tip: 2017y-03m-02d-22h-35m-41s UTC integration manifest
2d98958 drm/i915: Refactor wakeup of the next breadcrumb waiter

== Logs ==

For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_4049/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: ✗ Fi.CI.BAT: failure for drm/i915: Always wakeup the next breadcrumb waiter (rev3)
  2017-03-03  8:19 ` ✗ Fi.CI.BAT: failure for drm/i915: Always wakeup the next breadcrumb waiter (rev3) Patchwork
@ 2017-03-03  8:31   ` Chris Wilson
  0 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2017-03-03  8:31 UTC (permalink / raw)
  To: intel-gfx

On Fri, Mar 03, 2017 at 08:19:43AM -0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Always wakeup the next breadcrumb waiter (rev3)
> URL   : https://patchwork.freedesktop.org/series/20590/
> State : failure
> 
> == Summary ==
> 
> Series 20590v3 drm/i915: Always wakeup the next breadcrumb waiter
> https://patchwork.freedesktop.org/api/1.0/series/20590/revisions/3/mbox/
> 
> Test drv_module_reload:
>         Subgroup basic-reload:
>                 dmesg-warn -> PASS       (fi-ilk-650)
> Test gem_exec_flush:
>         Subgroup basic-batch-kernel-default-uc:
>                 fail       -> PASS       (fi-snb-2600) fdo#100007
> Test gem_exec_parallel:
>         Subgroup basic:
>                 pass       -> FAIL       (fi-bxt-t5700)
>                 pass       -> FAIL       (fi-skl-6260u)
>                 pass       -> FAIL       (fi-bxt-j4205)
>                 pass       -> FAIL       (fi-bdw-5557u)
>                 pass       -> FAIL       (fi-skl-6700hq)
>                 pass       -> FAIL       (fi-kbl-7500u)
> Test gem_sync:
>         Subgroup basic-store-all:
>                 pass       -> FAIL       (fi-bxt-t5700)
>                 pass       -> FAIL       (fi-bxt-j4205)
>                 pass       -> FAIL       (fi-kbl-7500u)
>                 pass       -> FAIL       (fi-skl-6260u)
>                 pass       -> FAIL       (fi-skl-6700hq)
>                 pass       -> FAIL       (fi-bdw-5557u)
>                 pass       -> FAIL       (fi-skl-6700k)
>                 pass       -> FAIL       (fi-skl-6770hq)
>                 pass       -> FAIL       (fi-bsw-n3050)

Clearly I missed some reason as to why that wakeup *is* required. We are
not as serialised by the spinlock as I thought?
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-03-03  8:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-02 23:02 [PATCH] drm/i915: Always wakeup the next breadcrumb waiter Chris Wilson
2017-03-02 23:47 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-03-03  7:49 ` [PATCH] " Chris Wilson
2017-03-03  7:55 ` [PATCH v2] drm/i915: Refactor wakeup of " Chris Wilson
2017-03-03  8:00 ` [PATCH v3] " Chris Wilson
2017-03-03  8:19 ` ✗ Fi.CI.BAT: failure for drm/i915: Always wakeup the next breadcrumb waiter (rev3) Patchwork
2017-03-03  8:31   ` Chris Wilson

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.