Re: [PATCH] IRQ distribution in the 2.5.52 kernel

From: William Lee Irwin III (wli@holomorphy.com)
Date: Fri Dec 20 2002 - 06:15:18 EST


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/



This archive was generated by hypermail 2b29 : Mon Dec 23 2002 - 22:00:26 EST