Skip to contentSkip to conversation

More irq balance fixes

PATCH New Andi Kleen 1 participant 1 message May 31, 2003

lore
Share & tools
lore

Andi Kleen

author
#0 lore raw

PATCH 1/1 More irq balance fixes

John Stultz noticed that kirqd didn't start because of another logic error, which broke irq balancing. This was still a fallout from the generic subarchitecture changes.

Actually it still refuses to balance anything on my test box, but perhaps I'm just not able to generate enough interrupts.

Anyways, with this patch the thread is running again at least.

-Andi

Index: linux/arch/i386/kernel/io_apic.c
===================================================================
RCS file: /home/cvs/linux-2.5/arch/i386/kernel/io_apic.c,v retrieving revision 1.72

arch/i386/kernel/io_apic.c +4 -9
diff -u -u -r1.72 io_apic.c
@@ -352,16 +352,8 @@
 	unsigned long allowed_mask;
 	unsigned int new_cpu;
 		
-	if (irqbalance_disabled == IRQBALANCE_CHECK_ARCH)
-		irqbalance_disabled = NO_BALANCE_IRQ;
-	if (irqbalance_disabled) { 
-		static int warned;
-		if (warned == 0) {
-			printk("irqbalance disabled\n");
-			warned = 1;
-		} 
+	if (irqbalance_disabled)
 		return; 
-	} 
 
 	allowed_mask = cpu_online_map & irq_affinity[irq];
 	new_cpu = move(cpu, allowed_mask, now, 1);
@@ -620,6 +612,9 @@
 	struct cpuinfo_x86 *c;
 
         c = &boot_cpu_data;
+	/* When not overwritten by the command line ask subarchitecture. */
+	if (irqbalance_disabled == IRQBALANCE_CHECK_ARCH)
+		irqbalance_disabled = NO_BALANCE_IRQ;
 	if (irqbalance_disabled)
 		return 0;