<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
From: Patrick Gefre &lt;pfg@sgi.com&gt;

Use the pda to keep the num of interrupts



---

 arch/ia64/sn/io/sn2/ml_SN_intr.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff -puN arch/ia64/sn/io/sn2/ml_SN_intr.c~altix-irq-accounting-speedup arch/ia64/sn/io/sn2/ml_SN_intr.c
--- 25/arch/ia64/sn/io/sn2/ml_SN_intr.c~altix-irq-accounting-speedup	2004-02-09 09:37:16.000000000 -0800
+++ 25-akpm/arch/ia64/sn/io/sn2/ml_SN_intr.c	2004-02-09 09:37:16.000000000 -0800
@@ -30,6 +30,7 @@
 #include &lt;asm/sal.h&gt;
 #include &lt;asm/sn/sn_sal.h&gt;
 #include &lt;asm/sn/sn2/shub_mmr.h&gt;
+#include &lt;asm/sn/pda.h&gt;
 
 extern irqpda_t	*irqpdaindr;
 extern cnodeid_t master_node_get(vertex_hdl_t vhdl);
@@ -216,7 +217,6 @@ static cpuid_t intr_cpu_choose_from_node
 {
 	cpuid_t		cpu, best_cpu = CPU_NONE;
 	int		slice, min_count = 1000;
-	irqpda_t	*irqs;
 
 	for (slice = CPUS_PER_NODE - 1; slice &gt;= 0; slice--) {
 		int intrs;
@@ -227,8 +227,7 @@ static cpuid_t intr_cpu_choose_from_node
 		if (!cpu_online(cpu))
 			continue;
 
-		irqs = irqpdaindr;
-		intrs = irqs-&gt;num_irq_used;
+		intrs = pdacpu(cpu)-&gt;sn_num_irqs;
 
 		if (min_count &gt; intrs) {
 			min_count = intrs;
@@ -243,6 +242,7 @@ static cpuid_t intr_cpu_choose_from_node
 			}
 		}
 	}
+	pdacpu(best_cpu)-&gt;sn_num_irqs++;
 	return best_cpu;
 }
 

_
</pre></body></html>