Re: [PATCH v2 1/2] MIPS: SGI-IP27: micro-optimize arch_init_irq()

From: Yury Norov
Date: Mon Apr 22 2024 - 19:10:55 EST


On Wed, Apr 17, 2024 at 01:10:52PM +0200, Thomas Bogendoerfer wrote:
> On Tue, Apr 16, 2024 at 10:37:10AM -0700, Yury Norov wrote:
> > The function sets adjusted groups of bits in hub_irq_map by using
> > for-loops. There's a bitmap_set() function dedicated to do this.
> >
> > Because [0, CPU_CALL_B_IRQ] and [NI_BRDCAST_ERR_A, MSC_PANIC_INTR]
> > ranges belong to the same machine word, bitmap_set() would boil down
> > to an inline wrapper in both cases, avoiding generating a loop, with
> > the associate overhead. Effectively, it would be a compile-time:
> >
> > *hub_irq_map = GENMASK() | GENMASK();
> >
> > Signed-off-by: Yury Norov <yury.norov@xxxxxxxxx>
> > ---
> > arch/mips/sgi-ip27/ip27-irq.c | 8 ++------
> > 1 file changed, 2 insertions(+), 6 deletions(-)
> >
> > diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
> > index 8f5299b269e7..d8acdf0439d2 100644
> > --- a/arch/mips/sgi-ip27/ip27-irq.c
> > +++ b/arch/mips/sgi-ip27/ip27-irq.c
> > @@ -277,7 +277,6 @@ void __init arch_init_irq(void)
> > {
> > struct irq_domain *domain;
> > struct fwnode_handle *fn;
> > - int i;
>
> I've already applied your first version, so I need an incremental
> patch, which just removes the unused variable.

Sure, please find below.