Re: [PATCH] IRQ distribution in the 2.5.52 kernel

William Lee Irwin III (wli@holomorphy.com)
Fri, 20 Dec 2002 03:15:18 -0800


On Fri, Dec 20, 2002 at 01:08:18AM -0800, Kamble, Nitin A wrote:
> -static inline void balance_irq(int irq)
> +static inline void balance_irq (int cpu, int irq)
> {
> - irq_balance_t *entry = irq_balance + irq;
> unsigned long now = jiffies;
> -
> + unsigned long allowed_mask;
> + unsigned int new_cpu;
> +
> if (clustered_apic_mode)
> return;

This can actually be done for clustered_apic_mode, just not as the
IO-APIC is currently programmed. It needs to either:

(1) develop awareness of multiple APIC buses and not attempt to perform
physical mode interrupt delivery to non-existant destinations or
overflow destination bitmasks to cpus not physically addressible
from the local cluster

or

(2) the IO-APIC must be programmed for clustered hierarchical destinations
in clustered setups, which probably isn't that hot an idea as the
IO-APIC's in such setups usually have some affinity to the locally
addressible physical destinations

These are both a PITA, but I thought I'd just sort of fling the issues
into open discussion since something touching this code hit the list.

There's some complexity in these schemes so unless you feel brave and/or
interested there's no need for you to run off and implement them etc.

No criticism of or flaws in your patch implied.

Thanks,
Bill
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/