Message ID | 20180920143350.29249-4-mika.kuoppala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ICL interrupt handling improvements | expand |
Quoting Mika Kuoppala (2018-09-20 15:33:43) > Getting interrupt without any second level indications > is unlikely. So there is no real advantage to bailout early > as all the second level handlers can handle empty master > control status. > > Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Looks reasonable, Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> -Chris
On 20/09/18 07:33, Mika Kuoppala wrote: > Getting interrupt without any second level indications > is unlikely. Do you have any numbers for this? I remember seeing empty interrupts quite often (i.e. up to 5-10%) in early testing on workloads submitting lots of no-ops due to the double buffering, when both events ended up being serviced by the first interrupt. The code was different at the time though, so those might just have been due to less optimal SW handing, but I'd be curious to see the numbers if you have any. Thanks, Daniele
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 1e05ffe16816..27395a90bbef 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -3134,10 +3134,6 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg) raw_reg_write(regs, GEN11_GFX_MSTR_IRQ, 0); master_ctl = raw_reg_read(regs, GEN11_GFX_MSTR_IRQ) & ~GEN11_MASTER_IRQ; - if (!master_ctl) { - raw_reg_write(regs, GEN11_GFX_MSTR_IRQ, GEN11_MASTER_IRQ); - return IRQ_NONE; - } /* Find, clear, then process each source of interrupt. */ gen11_gt_irq_handler(i915, master_ctl); @@ -3162,7 +3158,7 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg) gen11_gu_misc_irq_handler(i915, master_ctl, gu_misc_iir); - return IRQ_HANDLED; + return master_ctl ? IRQ_HANDLED : IRQ_NONE; } static void i915_reset_device(struct drm_i915_private *dev_priv,
Getting interrupt without any second level indications is unlikely. So there is no real advantage to bailout early as all the second level handlers can handle empty master control status. Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> --- drivers/gpu/drm/i915/i915_irq.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)