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