Messages in this thread Patch in this message | | | From | Chen Lifu <> | Subject | [PATCH -next] genirq: Add SPARSE_NR_IRQS Kconfig option | Date | Fri, 30 Sep 2022 16:58:39 +0800 |
| |
On a large-scale multi-core and NUMA platform, more than 1024 cores and 16 NUMA nodes for example, even if SPASE_IRQ is selected to increase the number of interrupt numbers by 8196 base on NR_IRQS, the interrupt numbers requirement cannot be met. Therefore, make the number of sparse interrupt numbers configurable.
Signed-off-by: Chen Lifu <chenlifu@huawei.com> --- kernel/irq/Kconfig | 8 ++++++++ kernel/irq/internals.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/kernel/irq/Kconfig b/kernel/irq/Kconfig index db3d174c53d4..b517b820e329 100644 --- a/kernel/irq/Kconfig +++ b/kernel/irq/Kconfig @@ -123,10 +123,18 @@ config SPARSE_IRQ ( Sparse irqs can also be beneficial on NUMA boxes, as they spread out the interrupt descriptors in a more NUMA-friendly way. ) If you don't know what to do here, say N. +config SPARSE_NR_IRQS + int "Number of sparse interrupt numbers" + depends on SPARSE_IRQ + default 8196 + help + This defines the maximum number of interrupt numbers + that can be dynamically expanded. + config GENERIC_IRQ_DEBUGFS bool "Expose irq internals in debugfs" depends on DEBUG_FS select GENERIC_IRQ_INJECTION default n diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index f09c60393e55..ab8ac93c60e6 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h @@ -10,11 +10,11 @@ #include <linux/kernel_stat.h> #include <linux/pm_runtime.h> #include <linux/sched/clock.h> #ifdef CONFIG_SPARSE_IRQ -# define IRQ_BITMAP_BITS (NR_IRQS + 8196) +# define IRQ_BITMAP_BITS (NR_IRQS + CONFIG_SPARSE_NR_IRQS) #else # define IRQ_BITMAP_BITS NR_IRQS #endif #define istate core_internal_state__do_not_mess_with_it -- 2.37.1
| |