* [PATCH] drm/i915: Move the irq_barrier for reset earlier into reset_prepare
@ 2017-02-10 18:52 Chris Wilson
2017-02-10 20:05 ` Michel Thierry
2017-02-10 20:52 ` ✗ Fi.CI.BAT: failure for " Patchwork
0 siblings, 2 replies; 4+ messages in thread
From: Chris Wilson @ 2017-02-10 18:52 UTC (permalink / raw)
To: intel-gfx; +Cc: Mika Kuoppala
When updating the bookkeeping following the reset, we need the seqno to
be coherent on the CPU prior to trusting its result for deciding whether
any request is completed. We need the irq_barrier before we start making
these decisions, i.e. in reset_prepare.
References: https://bugs.freedesktop.org/show_bug.cgi?id=99733
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
drivers/gpu/drm/i915/i915_gem.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index ed60d5881b40..3066f94da8f0 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2677,6 +2677,9 @@ int i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
tasklet_disable(&engine->irq_tasklet);
tasklet_kill(&engine->irq_tasklet);
+ if (engine->irq_seqno_barrier)
+ engine->irq_seqno_barrier(engine);
+
if (engine_stalled(engine)) {
request = i915_gem_find_active_request(engine);
if (request && request->fence.error == -EIO)
@@ -2773,9 +2776,6 @@ static void i915_gem_reset_engine(struct intel_engine_cs *engine)
{
struct drm_i915_gem_request *request;
- if (engine->irq_seqno_barrier)
- engine->irq_seqno_barrier(engine);
-
request = i915_gem_find_active_request(engine);
if (request && i915_gem_reset_request(request)) {
DRM_DEBUG_DRIVER("resetting %s to restart from tail of request 0x%x\n",
--
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] 4+ messages in thread
* Re: [PATCH] drm/i915: Move the irq_barrier for reset earlier into reset_prepare
2017-02-10 18:52 [PATCH] drm/i915: Move the irq_barrier for reset earlier into reset_prepare Chris Wilson
@ 2017-02-10 20:05 ` Michel Thierry
2017-02-10 21:16 ` Chris Wilson
2017-02-10 20:52 ` ✗ Fi.CI.BAT: failure for " Patchwork
1 sibling, 1 reply; 4+ messages in thread
From: Michel Thierry @ 2017-02-10 20:05 UTC (permalink / raw)
To: Chris Wilson, intel-gfx; +Cc: Kuoppala, Mika
On 10/02/17 10:52, Chris Wilson wrote:
> When updating the bookkeeping following the reset, we need the seqno to
> be coherent on the CPU prior to trusting its result for deciding whether
> any request is completed. We need the irq_barrier before we start making
> these decisions, i.e. in reset_prepare.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=99733
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
I havent seen the issue in the platforms I have, but makes sense. If you
need one,
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index ed60d5881b40..3066f94da8f0 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -2677,6 +2677,9 @@ int i915_gem_reset_prepare(struct drm_i915_private *dev_priv)
> tasklet_disable(&engine->irq_tasklet);
> tasklet_kill(&engine->irq_tasklet);
>
> + if (engine->irq_seqno_barrier)
> + engine->irq_seqno_barrier(engine);
> +
> if (engine_stalled(engine)) {
> request = i915_gem_find_active_request(engine);
> if (request && request->fence.error == -EIO)
> @@ -2773,9 +2776,6 @@ static void i915_gem_reset_engine(struct intel_engine_cs *engine)
> {
> struct drm_i915_gem_request *request;
>
> - if (engine->irq_seqno_barrier)
> - engine->irq_seqno_barrier(engine);
> -
> request = i915_gem_find_active_request(engine);
> if (request && i915_gem_reset_request(request)) {
> DRM_DEBUG_DRIVER("resetting %s to restart from tail of request 0x%x\n",
> --
> 2.11.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Move the irq_barrier for reset earlier into reset_prepare
2017-02-10 18:52 [PATCH] drm/i915: Move the irq_barrier for reset earlier into reset_prepare Chris Wilson
2017-02-10 20:05 ` Michel Thierry
@ 2017-02-10 20:52 ` Patchwork
1 sibling, 0 replies; 4+ messages in thread
From: Patchwork @ 2017-02-10 20:52 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Move the irq_barrier for reset earlier into reset_prepare
URL : https://patchwork.freedesktop.org/series/19473/
State : failure
== Summary ==
Series 19473v1 drm/i915: Move the irq_barrier for reset earlier into reset_prepare
https://patchwork.freedesktop.org/api/1.0/series/19473/revisions/1/mbox/
Test gem_exec_parse:
Subgroup basic-allowed:
pass -> INCOMPLETE (fi-byt-j1900)
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-a:
incomplete -> PASS (fi-ivb-3770)
fi-bdw-5557u total:252 pass:241 dwarn:0 dfail:0 fail:0 skip:11
fi-bsw-n3050 total:252 pass:213 dwarn:0 dfail:0 fail:0 skip:39
fi-bxt-j4205 total:252 pass:233 dwarn:0 dfail:0 fail:0 skip:19
fi-bxt-t5700 total:83 pass:70 dwarn:0 dfail:0 fail:0 skip:12
fi-byt-j1900 total:69 pass:59 dwarn:0 dfail:0 fail:0 skip:9
fi-byt-n2820 total:252 pass:221 dwarn:0 dfail:0 fail:0 skip:31
fi-hsw-4770 total:252 pass:236 dwarn:0 dfail:0 fail:0 skip:16
fi-hsw-4770r total:252 pass:236 dwarn:0 dfail:0 fail:0 skip:16
fi-ilk-650 total:252 pass:202 dwarn:0 dfail:0 fail:0 skip:50
fi-ivb-3520m total:252 pass:234 dwarn:0 dfail:0 fail:0 skip:18
fi-ivb-3770 total:252 pass:234 dwarn:0 dfail:0 fail:0 skip:18
fi-kbl-7500u total:252 pass:234 dwarn:0 dfail:0 fail:0 skip:18
fi-skl-6260u total:252 pass:242 dwarn:0 dfail:0 fail:0 skip:10
fi-skl-6700hq total:252 pass:235 dwarn:0 dfail:0 fail:0 skip:17
fi-skl-6700k total:252 pass:230 dwarn:4 dfail:0 fail:0 skip:18
fi-skl-6770hq total:252 pass:242 dwarn:0 dfail:0 fail:0 skip:10
fi-snb-2520m total:252 pass:224 dwarn:0 dfail:0 fail:0 skip:28
fi-snb-2600 total:252 pass:223 dwarn:0 dfail:0 fail:0 skip:29
c02eede7256a86ccd8308612491aa5e350aad8db drm-tip: 2017y-02m-10d-19h-11m-09s UTC integration manifest
48a5eaf drm/i915: Move the irq_barrier for reset earlier into reset_prepare
== Logs ==
For more details see: https://intel-gfx-ci.01.org/CI/Patchwork_3773/
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/i915: Move the irq_barrier for reset earlier into reset_prepare
2017-02-10 20:05 ` Michel Thierry
@ 2017-02-10 21:16 ` Chris Wilson
0 siblings, 0 replies; 4+ messages in thread
From: Chris Wilson @ 2017-02-10 21:16 UTC (permalink / raw)
To: Michel Thierry; +Cc: intel-gfx, Kuoppala, Mika
On Fri, Feb 10, 2017 at 12:05:53PM -0800, Michel Thierry wrote:
>
> On 10/02/17 10:52, Chris Wilson wrote:
> >When updating the bookkeeping following the reset, we need the seqno to
> >be coherent on the CPU prior to trusting its result for deciding whether
> >any request is completed. We need the irq_barrier before we start making
> >these decisions, i.e. in reset_prepare.
> >
> >References: https://bugs.freedesktop.org/show_bug.cgi?id=99733
> >Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> >Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> >---
> > drivers/gpu/drm/i915/i915_gem.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
>
> I havent seen the issue in the platforms I have, but makes sense.
Ironlake is the most special of all. There's no flush control available
to order the posting of writes and the interrupt, so there's just a big
sleep and hope for the best. (Not that the story is any better for
gen6/7.)
> If you need one,
>
> Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Thanks,
-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] 4+ messages in thread
end of thread, other threads:[~2017-02-10 21:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-10 18:52 [PATCH] drm/i915: Move the irq_barrier for reset earlier into reset_prepare Chris Wilson
2017-02-10 20:05 ` Michel Thierry
2017-02-10 21:16 ` Chris Wilson
2017-02-10 20:52 ` ✗ Fi.CI.BAT: failure for " 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.