2003-02-28 23:08:34

by JP Pozzi izzop.org

[permalink] [raw]
Subject: Bug in APIC on 2.4.20 kernel

Hello,

I found a problem with the APIC management in the 2.4.20 kernel.

My system is (was) a bi-processor one :

MSI K7D Master (BIOS V 1.1) with 2 ATHLON MP 1800+

The facts :

1) The 2.4.20 kernel was OK on my system with the 2 processors and a
home made SMP kernel.

2) One processor was broken/defective.

3) No boot was possible with only on processor on the card with a loop
while booting saying endlessly : "APIC 04(04)"

I try to recompile the 2.4.20 kernel with no SMP support the problem was
the same, I try gcc2.95 and gcc3 without any success.

4) The system runs fine with a 2.2.22 home made kernel, the APIC works
well with my lonely processor ... (cf attachment dmesg.2.2.22).

As the system does not run with 2.4.20 kernel I made "ver_linux" under
the current (2.2.22) kernel (cf attachment ver_linux.txt).


Regards

[email protected]
--
JP Pozzi izzop.org <[email protected]>


Attachments:
dmesg.2.2.22 (7.26 kB)
ver_linux.txt (701.00 B)
Download all attachments

2003-03-01 00:22:16

by Mikael Pettersson

[permalink] [raw]
Subject: Re: Bug in APIC on 2.4.20 kernel

On 01 Mar 2003 00:18:46 +0100, "JP Pozzi izzop.org" wrote:
>I found a problem with the APIC management in the 2.4.20 kernel.
>
>My system is (was) a bi-processor one :
>
>MSI K7D Master (BIOS V 1.1) with 2 ATHLON MP 1800+
>
>The facts :
>
>1) The 2.4.20 kernel was OK on my system with the 2 processors and a
>home made SMP kernel.
>
>2) One processor was broken/defective.
>
>3) No boot was possible with only on processor on the card with a loop
>while booting saying endlessly : "APIC 04(04)"
>
>I try to recompile the 2.4.20 kernel with no SMP support the problem was
>the same, I try gcc2.95 and gcc3 without any success.

Known problem. It has been discussed extensively on LKML recently.
Apply the patch below.

/Mikael

diff -ruN linux-2.4.21-pre5/arch/i386/kernel/apic.c linux-2.4.21-pre5.apic-fixes/arch/i386/kernel/apic.c
--- linux-2.4.21-pre5/arch/i386/kernel/apic.c 2003-02-27 12:58:55.000000000 +0100
+++ linux-2.4.21-pre5.apic-fixes/arch/i386/kernel/apic.c 2003-02-27 13:05:28.000000000 +0100
@@ -649,7 +649,6 @@
}
set_bit(X86_FEATURE_APIC, &boot_cpu_data.x86_capability);
mp_lapic_addr = APIC_DEFAULT_PHYS_BASE;
- boot_cpu_physical_apicid = 0;
if (nmi_watchdog != NMI_NONE)
nmi_watchdog = NMI_LOCAL_APIC;

@@ -1169,8 +1168,7 @@

connect_bsp_APIC();

- phys_cpu_present_map = 1;
- apic_write_around(APIC_ID, boot_cpu_physical_apicid);
+ phys_cpu_present_map = 1 << boot_cpu_physical_apicid;

apic_pm_init2();

2003-03-01 22:32:05

by JP Pozzi izzop.org

[permalink] [raw]
Subject: Re: Bug in APIC on 2.4.20 kernel

Hello,

I try the patch with no success, the kernel seems to be ok, but the
message at boot loops always "APIC CPU0 O4(04)".

Regards

JP Pozzi


> On 01 Mar 2003 00:18:46 +0100, "JP Pozzi izzop.org" wrote:
> >I found a problem with the APIC management in the 2.4.20 kernel.
> >
> >My system is (was) a bi-processor one :
> >
> >MSI K7D Master (BIOS V 1.1) with 2 ATHLON MP 1800+
> >
> >The facts :
> >
> >1) The 2.4.20 kernel was OK on my system with the 2 processors and a
> >home made SMP kernel.
> >
> >2) One processor was broken/defective.
> >
> >3) No boot was possible with only on processor on the card with a loop
> >while booting saying endlessly : "APIC 04(04)"
> >
> >I try to recompile the 2.4.20 kernel with no SMP support the problem was
> >the same, I try gcc2.95 and gcc3 without any success.
>
> Known problem. It has been discussed extensively on LKML recently.
> Apply the patch below.
>
> /Mikael
>
> diff -ruN linux-2.4.21-pre5/arch/i386/kernel/apic.c linux-2.4.21-pre5.apic-fixes/arch/i386/kernel/apic.c
> --- linux-2.4.21-pre5/arch/i386/kernel/apic.c 2003-02-27 12:58:55.000000000 +0100
> +++ linux-2.4.21-pre5.apic-fixes/arch/i386/kernel/apic.c 2003-02-27 13:05:28.000000000 +0100
> @@ -649,7 +649,6 @@
> }
> set_bit(X86_FEATURE_APIC, &boot_cpu_data.x86_capability);
> mp_lapic_addr = APIC_DEFAULT_PHYS_BASE;
> - boot_cpu_physical_apicid = 0;
> if (nmi_watchdog != NMI_NONE)
> nmi_watchdog = NMI_LOCAL_APIC;
>
> @@ -1169,8 +1168,7 @@
>
> connect_bsp_APIC();
>
> - phys_cpu_present_map = 1;
> - apic_write_around(APIC_ID, boot_cpu_physical_apicid);
> + phys_cpu_present_map = 1 << boot_cpu_physical_apicid;
>
> apic_pm_init2();
>
--
JP Pozzi izzop.org <[email protected]>

2003-03-02 22:20:10

by Ion Badulescu

[permalink] [raw]
Subject: Re: Bug in APIC on 2.4.20 kernel

On 01 Mar 2003 23:42:18 +0100, JP Pozzi izzop.org <[email protected]> wrote:
> Hello,
>
> I try the patch with no success, the kernel seems to be ok, but the
> message at boot loops always "APIC CPU0 O4(04)".

The patch only affects a UP kernel. If you compiled your kernel as SMP,
try again as UP and report back.

Ion

--
It is better to keep your mouth shut and be thought a fool,
than to open it and remove all doubt.