lkml.org 
[lkml]   [2022]   [Oct]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH -next] genirq: Add SPARSE_NR_IRQS Kconfig option
From
在 2022/10/18 9:22, chenlifu 写道:
> 在 2022/9/30 16:58, Chen Lifu 写道:
>> 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
>
> Friendly ping ...

Friendly ping ...

\
 
 \ /
  Last update: 2022-10-31 01:38    [W:0.087 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site