[PATCH 3/4] irq: initialize nr_irqs based on nr_cpu_ids

Mike Travis
2009-01-10T22:39:39Z

[-- Attachment #1: irq-variable-nr_irqs --]
[-- Type: text/plain, Size: 950 bytes --]

Impact: Reduce memory usage.

This is the second half of the changes to make the irq_desc_ptrs be
variable sized based on nr_cpu_ids. The algorithm is the same as the
setting of NR_IRQS except use nr_cpu_ids instead of NR_CPUS. This is
only when CONFIG_SPARSE_IRQS=y.

Signed-off-by: Mike Travis <travis@sgi.com>
---
kernel/irq/handle.c | 5 +++++
1 file changed, 5 insertions(+)

Files linux-2.6-for-ingo.orig/kernel/irq/.handle.c.swp and linux-2.6-for-ingo/kernel/irq/.handle.c.swp differ
--- linux-2.6-for-ingo.orig/kernel/irq/handle.c
+++ linux-2.6-for-ingo/kernel/irq/handle.c
@@ -133,6 +133,11 @@ int __init early_irq_init(void)
int legacy_count;
int i;

+ /* initialize nr_irqs based on nr_cpu_ids */
+ nr_irqs = (8 * nr_cpu_ids) > (32 * MAX_IO_APICS) ?
+ NR_VECTORS + (8 * nr_cpu_ids) :
+ NR_VECTORS + (32 * MAX_IO_APICS);
+
printk(KERN_INFO "NR_IRQS:%d nr_irqs:%d\n", NR_IRQS, nr_irqs);

desc = irq_desc_legacy;

--