diff mbox

drm/i915: Queue hangcheck when irqs are disabled

Message ID 20170123093724.18592-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Chris Wilson Jan. 23, 2017, 9:37 a.m. UTC
Ensure that the hangcheck is queued even in the absence of interrupts.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
 drivers/gpu/drm/i915/intel_breadcrumbs.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Mika Kuoppala Jan. 23, 2017, 11:11 a.m. UTC | #1
Chris Wilson <chris@chris-wilson.co.uk> writes:

> Ensure that the hangcheck is queued even in the absence of interrupts.
>

This was rather terse to begin with, but the why became clear from the
context.

Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>

> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_breadcrumbs.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c
> index 7681bcd2717e..b574cc414d43 100644
> --- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
> +++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
> @@ -175,6 +175,7 @@ static void __intel_breadcrumbs_enable_irq(struct intel_breadcrumbs *b)
>  	if (!b->irq_enabled ||
>  	    test_bit(engine->id, &i915->gpu_error.missed_irq_rings)) {
>  		mod_timer(&b->fake_irq, jiffies + 1);
> +		i915_queue_hangcheck(i915);
>  	} else {
>  		/* Ensure we never sleep indefinitely */
>  		GEM_BUG_ON(!time_after(b->timeout, jiffies));
> -- 
> 2.11.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Chris Wilson Jan. 23, 2017, 11:19 a.m. UTC | #2
On Mon, Jan 23, 2017 at 01:11:26PM +0200, Mika Kuoppala wrote:
> Chris Wilson <chris@chris-wilson.co.uk> writes:
> 
> > Ensure that the hangcheck is queued even in the absence of interrupts.
> >
> 
> This was rather terse to begin with, but the why became clear from the
> context.

I went off on a tangent as to the impossiblity of interrupts being
disabled, decided that we still needed the queue_hanghcheck anyway,
and removed the digression.

We should start thinking about how we can prove that we have interrupts
whilst GT is alive.
-Chris
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_breadcrumbs.c b/drivers/gpu/drm/i915/intel_breadcrumbs.c
index 7681bcd2717e..b574cc414d43 100644
--- a/drivers/gpu/drm/i915/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/intel_breadcrumbs.c
@@ -175,6 +175,7 @@  static void __intel_breadcrumbs_enable_irq(struct intel_breadcrumbs *b)
 	if (!b->irq_enabled ||
 	    test_bit(engine->id, &i915->gpu_error.missed_irq_rings)) {
 		mod_timer(&b->fake_irq, jiffies + 1);
+		i915_queue_hangcheck(i915);
 	} else {
 		/* Ensure we never sleep indefinitely */
 		GEM_BUG_ON(!time_after(b->timeout, jiffies));