diff options
author | Alan Mayer <ajm@sgi.com> | 2008-03-26 22:11:31 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-05-12 21:28:05 +0200 |
commit | 6859a8402945cf1d74af75a2e1aa4e327a506ab4 (patch) | |
tree | fd663e47f31a8c30718af560132e1e58940c475f /include/asm-x86/irq_64.h | |
parent | Linux 2.6.26-rc2 (diff) | |
download | linux-6859a8402945cf1d74af75a2e1aa4e327a506ab4.tar.xz linux-6859a8402945cf1d74af75a2e1aa4e327a506ab4.zip |
x86: resize NR_IRQS for large machines
On machines with very large numbers of cpus, tables that are dimensioned
by NR_IRQS get very large, especially the irq_desc table. They are also
very sparsely used. When the cpu count is > MAX_IO_APICS, use MAX_IO_APICS
to set NR_IRQS, otherwise use NR_CPUS.
Signed-off-by: Alan Mayer <ajm@sgi.com>
Reviewed-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/asm-x86/irq_64.h')
-rw-r--r-- | include/asm-x86/irq_64.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/asm-x86/irq_64.h b/include/asm-x86/irq_64.h index 083d35a62c94..7608176590b6 100644 --- a/include/asm-x86/irq_64.h +++ b/include/asm-x86/irq_64.h @@ -10,6 +10,8 @@ * <tomsoft@informatik.tu-chemnitz.de> */ +#include <asm/apicdef.h> + #define TIMER_IRQ 0 /* @@ -31,7 +33,11 @@ #define FIRST_SYSTEM_VECTOR 0xef /* duplicated in hw_irq.h */ +#if NR_CPUS < MAX_IO_APICS #define NR_IRQS (NR_VECTORS + (32 * NR_CPUS)) +#else +#define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS)) +#endif #define NR_IRQ_VECTORS NR_IRQS static inline int irq_canonicalize(int irq) |