too low MAX_MP_BUSSES

From: Vitezslav Samel
Date: Mon Jul 31 2006 - 07:59:43 EST


Hi!

I tried upgrading our server (i386 arch) from 2.6.16 to 2.6.17 but there
were some odd messages in dmesg:

MP table busid value (32) for bustype ISA is too large, max. supported is 31

and (repeated 315 times):

unknown bus type 32

I found out that 50% of the processor time was spent in softirq and the timers
ran too fast. I didn't look for what else was wrong.

Tracked down to this change in 2.6.17-rc2:

diff -urN linux-2.6.17-rc1/arch/i386/kernel/mpparse.c linux-2.6.17-rc2/arch/i386/kernel/mpparse.c
+ if (m->mpc_busid >= MAX_MP_BUSSES) {
+ printk(KERN_WARNING "MP table busid value (%d) for bustype %s "
+ " is too large, max. supported is %d\n",
+ m->mpc_busid, str, MAX_MP_BUSSES - 1);
+ return;
+ }

Uping the MAX_MP_BUSSES value in include/asm-i386/mach-default/mach_mpspec.h
to 64 makes the machine work O.K.
The system is HP DL380 g4 with 1 Xeon CPU, kernel compiled non-SMP.

Here is excerpt from mptable output:
---
Bus: Bus ID Type
0 PCI
1 PCI
2 PCI
3 PCI
4 PCI
5 PCI
6 PCI
10 PCI
32 ISA
---
The last item is the offending one.

Please, can you consider up the default value of MAX_MP_BUSSES?

P.S.: also tested 2.6.18-rc3, the same - bad - result

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