Re: [Questions]: how to extend nr_irqs for arch arm64
From: Thomas Gleixner
Date: Mon Jan 11 2016 - 03:04:57 EST
On Mon, 11 Jan 2016, Zhou Qiao(周侨) wrote:
> The nr_irqs is set to NR_IRQS by default and NR_IRQS is small(64). Arch/arm
> platforms will re-set nr_irqs to a larger value. I didn't find similar way
> for arm64. The way I can think of is to redefine NR_IRQS. But according
> comments in include/asm-generic/irq.h, NR_IRQS should not be a large
> value. so what's the preferred way to extend nr_irqs, for arm64
> specifically? Thanks in advance.
With SPARSE_IRQ enabled the core will modify nr_irqs with the following
mechanims:
- Early boot: arch_probe_nr_irqs(). If the return value of that function is >
NR_IRQS then it will be set to that.
This is used for interrupts which have to be allocated and
assigned in early boot, but that's really only for legacy
purposes. So arm64 should not use that at all.
- Runtime: The core dynamically increases nr_irqs up to IRQ_BITMAP_BITS,
which is NR_IRQS + 8192.
The runtime increase is happening, when interrupts are allocated. And you
won't notice unless you try to extend nr_irqs above NR_IRQS + 8192. So there
is nothing to do for arm64, it should just work.
Thanks,
tglx