Skip to contentSkip to conversation

A tester is needed with dual P3 and USB

PATCH New Pete Zaitcev 4 participants 4 messages Aug 27, 2001

lore
Share & tools
lore
#0 lore raw

Hi, All:

I received a complaint that a UP kernel hangs on boot if USB is enabled. SMP works. An SMP kernel started with "nosmp" hangs too. The reporter is, umm, how shall I put it... is a power user.

I need someone to help me to track the problem down, because I am curious. I heard of SMP hangs before, but a UP hang is a novel idea.

The box is VA Linux 1000 (similar to IBM Netfinity 4000r). Kernel is 2.4.8-ac10.

If you love me (or USB subsystem in kernel) enough to help me out, and you your hardware reproduces the problem, please reply privately.

Thanks in advance,
-- Pete

#1 lore raw
Quoted 11 lines · Pete Zaitcev

Hi, All:

I received a complaint that a UP kernel hangs on boot if USB is enabled. SMP works. An SMP kernel started with "nosmp" hangs too. The reporter is, umm, how shall I put it... is a power user. I need someone to help me to track the problem down, because I am curious. I heard of SMP hangs before, but a UP hang is a novel idea.

The box is VA Linux 1000 (similar to IBM Netfinity 4000r). Kernel is 2.4.8-ac10.

Doesn't VA use one of those Intel boards which have the problem with theis BIOS, which is seen as a hang with the adaptec driver?

Tried the same work-around? (enabling the APIC)

Signature · 1 line
Pekka Pietikainen
#2 lore raw
In reply to Pete Zaitcev
Quoted 11 lines · Pekka Pietikainen
Quoted 9 lines · Pete Zaitcev

Hi, All:

I received a complaint that a UP kernel hangs on boot if USB is enabled. SMP works. An SMP kernel started with "nosmp" hangs too. The reporter is, umm, how shall I put it... is a power user. I need someone to help me to track the problem down, because I am curious. I heard of SMP hangs before, but a UP hang is a novel idea.

Quoted 4 lines
Quoted 2 lines

The box is VA Linux 1000 (similar to IBM Netfinity 4000r). Kernel is 2.4.8-ac10.

Doesn't VA use one of those Intel boards which have the problem with theis BIOS, which is seen as a hang with the adaptec driver?

Thats the problem i can reproduce here (ASUS-P2B-DS with Dual PIII/850, USB and AHA2940U2W-SCSI onboard, Kernel 2.4.2/3-SMP), SMP-Kernels with option "nosmp" simply stop when they try to access the SCSI-System, the aic7xxx-driver loads (no matter if build-in or module), but stucks at initializing the first device.
No Ooop or crash, it simply does nothing any more.

But a "real" UP-Kernel (i used the one from RH7.1, 2.4.2-UP) has no problems with booting here.

Solong..
Frank.

--
Frank Schneider, <[email protected]>.
... -.-

#3 lore raw

PATCH 1/1 disableapic option

In reply to Pete Zaitcev

Hi Pekka, Linus, Alan,

Quoted 4 lines · Pekka Pietikainen

Doesn't VA use one of those Intel boards which have the problem with theis BIOS, which is seen as a hang with the adaptec driver?

Tried the same work-around? (enabling the APIC)

Here's a patch that allows you to compile the kernel with APIC enabled always. Some machines need it, but others barf, when they find out that there is an MP table and an IOAPIC but no APIC on the CPU is found. (Plug a K6 in a dual Pentium board, e.g.)

Then you may pass the disableapic boot parameter, so you bypass APIC setup completely and the APIC compiled kernel works like compiled without. (For people who compile their own kernels, this is irrelevant, except for
testing. That's not the majority of Linux users anymore, though.)

Another possibility might be to make apic.c:221 fail gracefully instead of BUG(), BTW.

Linus, Alan, please apply to your trees!

In theory, the compile time option could be removed now, but some people probably want to be able to save a few bytes.

Regards,

Signature · 4 lines
Kurt Garloff                   <[email protected]>         [Eindhoven, NL]
Physics: Plasma simulations  <[email protected]>  [TU Eindhoven, NL]
Linux: SCSI, Security          <[email protected]>    [SuSE Nuernberg, DE]
 (See mail header or public key servers for PGP2 and GPG public keys.)
arch/i386/kernel/io_apic.c renamed from arch/i386/kernel/io_apic.c.orig +11 -1
@@ -182,6 +182,7 @@
 int pirq_entries [MAX_PIRQS];
 int pirqs_enabled;
 int skip_ioapic_setup;
+int disable_apic;
 
 static int __init ioapic_setup(char *str)
 {
@@ -191,6 +192,15 @@
 
 __setup("noapic", ioapic_setup);
 
+static int __init disable_apic_setup(char *str)
+{
+	skip_ioapic_setup = 1;
+	disable_apic = 1;
+	return 1;
+}
+
+__setup("disableapic", disable_apic_setup);
+
 static int __init ioapic_pirq_setup(char *str)
 {
 	int i, max;
@@ -1605,7 +1615,7 @@
  */
 void IO_APIC_init_uniprocessor (void)
 {
-	if (!smp_found_config)
+	if (!smp_found_config || disable_apic)
 		return;
 	connect_bsp_APIC();
 	setup_local_APIC();