On Mon, 09 Nov 2026, Ville Syrjala <[email protected]> wrote: > From: Ville Syrjälä <[email protected]> > > Define GEN11_GT_IRQS (we already have the gen8 counterpart > GEN8_GT_IRQS) and use it to skip the entire gen11_gt_irq_handler() > call if none of the relevant bits are set, as a micro > optimization. > > In addition to the redundant function call we also now skip > the redundant gt->irq_lock spinlock which is taken unconditionally > in gen11_gt_irq_handler(). > > Signed-off-by: Ville Syrjälä <[email protected]>
Reviewed-by: Jani Nikula <[email protected]> > --- > drivers/gpu/drm/i915/gt/intel_gt_irq.h | 3 +++ > drivers/gpu/drm/i915/i915_irq.c | 6 ++++-- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_irq.h > b/drivers/gpu/drm/i915/gt/intel_gt_irq.h > index 41cad38668c5..c8cc247778f0 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gt_irq.h > +++ b/drivers/gpu/drm/i915/gt/intel_gt_irq.h > @@ -12,6 +12,9 @@ > > struct intel_gt; > > +#define GEN11_GT_IRQS (GEN11_GT_DW_IRQ(0) | \ > + GEN11_GT_DW_IRQ(1)) > + > #define GEN8_GT_IRQS (GEN8_GT_RCS_IRQ | \ > GEN8_GT_BCS_IRQ | \ > GEN8_GT_VCS0_IRQ | \ > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 448c4730d178..b3fc3e31a5d4 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -527,7 +527,8 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg) > } > > /* Find, queue (onto bottom-halves), then clear each source */ > - gen11_gt_irq_handler(gt, master_ctl); > + if (master_ctl & GEN11_GT_IRQS) > + gen11_gt_irq_handler(gt, master_ctl); > > /* IRQs are synced during runtime_suspend, we don't require a wakeref */ > if (master_ctl & GEN11_DISPLAY_IRQ) > @@ -596,7 +597,8 @@ static irqreturn_t dg1_irq_handler(int irq, void *arg) > return IRQ_NONE; > } > > - gen11_gt_irq_handler(gt, master_ctl); > + if (master_ctl & GEN11_GT_IRQS) > + gen11_gt_irq_handler(gt, master_ctl); > > if (master_ctl & GEN11_DISPLAY_IRQ) > intel_display_irq_handler(display, NULL); -- Jani Nikula, Intel
