Commit a0fc2217 authored by Andrew Morton's avatar Andrew Morton Committed by Ben Collins

[PATCH] More irq balance fixes

From: Andi Kleen <ak@suse.de>

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.
parent 8e680b66
......@@ -352,16 +352,8 @@ static inline void balance_irq(int cpu, int irq)
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 @@ static int __init balanced_irq_init(void)
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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment