• Yinghai Lu's avatar
    x86: Increase NR_IRQS and nr_irqs · 9959c888
    Yinghai Lu authored
    I have a system with lots of igb and ixgbe, when iov/vf are
    enabled for them, we hit the limit of 3064.
    
    when system has 20 pcie installed, and one card has 2
    functions, and one function needs 64 msi-x,
     may need 20 * 2 * 64 = 2560 for msi-x
    
    but if iov and vf are enabled
     may need 20 * 2 * 64 * 3 = 7680 for msi-x
    assume system with 5 ioapic, nr_irqs_gsi will be 120.
    
    NR_CPUS = 512, and nr_cpu_ids = 128
    will have NR_IRQS = 256 + 512 * 64 = 33024
    will have nr_irqs = 120 + 8 * 128 + 120 * 64 = 8824
    
    When SPARSE_IRQ is not set, there is no increase with kernel data
    size.
    
    when NR_CPUS=128, and SPARSE_IRQ is set:
       text		   data	    bss		   dec		 hex	filename
    21837444	4216564	12480736	38534744	24bfe58	vmlinux.before
    21837442	4216580	12480736	38534758	24bfe66	vmlinux.after
    when NR_CPUS=4096, and SPARSE_IRQ is set
       text		   data	    bss		   dec		 hex	filename
    21878619	5610244	13415392	40904255	270263f	vmlinux.before
    21878617	5610244	13415392	40904253	270263d	vmlinux.after
    Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    LKML-Reference: <4B398ECD.1080506@kernel.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    9959c888
irq_vectors.h 4.78 KB