Re: [Intel-gfx] [PATCH] drm/i915: Assert that we always complete a submission to guc/execlists

2018-02-16 Thread Chris Wilson
Quoting Mika Kuoppala (2018-02-16 13:42:23)
> Chris Wilson  writes:
> 
> > The continual resubmission model for execlists (and emulated over guc)
> > requires that we keep feeding requests into the HW in order to generate
> > more CS interrupts to drain the rest of the queue. Add a couple of
> > asserts to ensure that we don't skip a cycle and come to a grinding
> > halt.
> >
> > Signed-off-by: Chris Wilson 
> > Cc: Michał Winiarski 
> 
> Reviewed-by: Mika Kuoppala 

Thanks for the review, pushed. Hopefully serves well as commentary.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Assert that we always complete a submission to guc/execlists

2018-02-16 Thread Mika Kuoppala
Chris Wilson  writes:

> The continual resubmission model for execlists (and emulated over guc)
> requires that we keep feeding requests into the HW in order to generate
> more CS interrupts to drain the rest of the queue. Add a couple of
> asserts to ensure that we don't skip a cycle and come to a grinding
> halt.
>
> Signed-off-by: Chris Wilson 
> Cc: Michał Winiarski 

Reviewed-by: Mika Kuoppala 

> ---
>  drivers/gpu/drm/i915/intel_guc_submission.c | 6 ++
>  drivers/gpu/drm/i915/intel_lrc.c| 6 ++
>  2 files changed, 12 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
> b/drivers/gpu/drm/i915/intel_guc_submission.c
> index b43b58cc599b..946766b62459 100644
> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
> @@ -747,6 +747,12 @@ static void guc_dequeue(struct intel_engine_cs *engine)
>   execlists_set_active(execlists, EXECLISTS_ACTIVE_USER);
>   guc_submit(engine);
>   }
> +
> + /* We must always keep the beast fed if we have work piled up */
> + GEM_BUG_ON(port_isset(execlists->port) &&
> +!execlists_is_active(execlists, EXECLISTS_ACTIVE_USER));
> + GEM_BUG_ON(execlists->first && !port_isset(execlists->port));
> +
>  unlock:
>   spin_unlock_irq(&engine->timeline->lock);
>  }
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c 
> b/drivers/gpu/drm/i915/intel_lrc.c
> index c2c8380a0121..6fbe1a8a37ad 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -642,6 +642,12 @@ static void execlists_dequeue(struct intel_engine_cs 
> *engine)
>   execlists->first = rb;
>   if (submit)
>   port_assign(port, last);
> +
> + /* We must always keep the beast fed if we have work piled up */
> + GEM_BUG_ON(port_isset(execlists->port) &&
> +!execlists_is_active(execlists, EXECLISTS_ACTIVE_USER));
> + GEM_BUG_ON(execlists->first && !port_isset(execlists->port));
> +
>  unlock:
>   spin_unlock_irq(&engine->timeline->lock);
>  
> -- 
> 2.16.1
>
> ___
> 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


[Intel-gfx] [PATCH] drm/i915: Assert that we always complete a submission to guc/execlists

2018-02-15 Thread Chris Wilson
The continual resubmission model for execlists (and emulated over guc)
requires that we keep feeding requests into the HW in order to generate
more CS interrupts to drain the rest of the queue. Add a couple of
asserts to ensure that we don't skip a cycle and come to a grinding
halt.

Signed-off-by: Chris Wilson 
Cc: Michał Winiarski 
---
 drivers/gpu/drm/i915/intel_guc_submission.c | 6 ++
 drivers/gpu/drm/i915/intel_lrc.c| 6 ++
 2 files changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c 
b/drivers/gpu/drm/i915/intel_guc_submission.c
index b43b58cc599b..946766b62459 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -747,6 +747,12 @@ static void guc_dequeue(struct intel_engine_cs *engine)
execlists_set_active(execlists, EXECLISTS_ACTIVE_USER);
guc_submit(engine);
}
+
+   /* We must always keep the beast fed if we have work piled up */
+   GEM_BUG_ON(port_isset(execlists->port) &&
+  !execlists_is_active(execlists, EXECLISTS_ACTIVE_USER));
+   GEM_BUG_ON(execlists->first && !port_isset(execlists->port));
+
 unlock:
spin_unlock_irq(&engine->timeline->lock);
 }
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index c2c8380a0121..6fbe1a8a37ad 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -642,6 +642,12 @@ static void execlists_dequeue(struct intel_engine_cs 
*engine)
execlists->first = rb;
if (submit)
port_assign(port, last);
+
+   /* We must always keep the beast fed if we have work piled up */
+   GEM_BUG_ON(port_isset(execlists->port) &&
+  !execlists_is_active(execlists, EXECLISTS_ACTIVE_USER));
+   GEM_BUG_ON(execlists->first && !port_isset(execlists->port));
+
 unlock:
spin_unlock_irq(&engine->timeline->lock);
 
-- 
2.16.1

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