Messages in this thread Patch in this message | | | Date | Thu, 20 Nov 2008 16:34:29 -0800 (PST) | From | Thomas Gleixner <> | Subject | Re: Regression: Bisected, IRQ and MSI allocations screwed without sparse irq |
| |
Jesper,
On Thu, 20 Nov 2008, Jesper Dangaard Brouer wrote: > I have bisected a regression to your commit > 3235e936c0cc3589309280b6f59e5096779adae3, > "x86: remove sparse irq from Kconfig". > > Its actually not necessary your fault, as your commit simply removes > the config option HAVE_SPARSE_IRQ. This revels the bug / regression > I'm exposted to.
Yup, the bisect result is pretty useless.
> The cause of this problem (tracked down together with Robert Olsson) > is that on 2.6.28 I have a lot less IRQs available. It seems max 34 > IRQs. Due the reduced number of IRQs the NIU driver cannot get > enough IRQs to the interfaces, and starts to use "IO-APIC" based > IRQs.
Can you please try the attached patch ?
Thanks,
tglx
----- arch/x86/kernel/io_apic.c | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-)
Index: linux-2.6/arch/x86/kernel/io_apic.c =================================================================== --- linux-2.6.orig/arch/x86/kernel/io_apic.c +++ linux-2.6/arch/x86/kernel/io_apic.c @@ -3594,27 +3594,7 @@ int __init io_apic_get_redir_entries (in int __init probe_nr_irqs(void) { - int idx; - int nr = 0; -#ifndef CONFIG_XEN - int nr_min = 32; -#else - int nr_min = NR_IRQS; -#endif - - for (idx = 0; idx < nr_ioapics; idx++) - nr += io_apic_get_redir_entries(idx) + 1; - - /* double it for hotplug and msi and nmi */ - nr <<= 1; - - /* something wrong ? */ - if (nr < nr_min) - nr = nr_min; - if (WARN_ON(nr > NR_IRQS)) - nr = NR_IRQS; - - return nr; + return NR_IRQS; } /* --------------------------------------------------------------------------
| |