Re: 2.6.x BUGs at boot time (APIC related)

From: Denis Vlasenko
Date: Thu Dec 23 2004 - 04:04:13 EST


On Wednesday 22 December 2004 17:31, Denis Vlasenko wrote:
> This is happening on a "HP Compaq dc7100 CMT"
> (I believe it is a model number - taken from the label on the box).
>
> Both 2.6.9 and 2.6.10-rc3 are dying this way:
>
> [top of visible screen]
> I/O APIC #1 Version 17 at 0xFEC00000
> Enabled APIC mode: Flat. Using 1 I/O APICs
> ...
> [unrelated stuff (dentry cache size etc...)]
> ...
> Enabling fast FPU save & restore ...done
> Enabling unmasked SIMD FPU exception support ...done
> Checking 'hlt' instruction ..OK
> ------------------------
> kernel BUG at arch/i386/kernel/apic.c:388! [:366! for 2.6.9]
>
>
> Code:
> ....
> void __init setup_local_APIC (void)
> {
> ...
> /*
> * Double-check whether this APIC is really registered.
> */
> if (!apic_id_registered())
> BUG(); <=========================

Tested with noapic nolapic boot params. Still happens.

Call chain is init() -> APIC_init_uniprocessor() ->
-> setup_local_APIC(). I am a bit suspicious why
APIC_init_uniprocessor() does not bail out
if enable_local_apic<0 (i.e. if I boot with "nolapic"):

int __init APIC_init_uniprocessor (void)
{
if (enable_local_apic < 0)
clear_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability);
<===== missing "return -1"?

if (!smp_found_config && !cpu_has_apic)
return -1;
...
verify_local_APIC();

connect_bsp_APIC();

phys_cpu_present_map = physid_mask_of_physid(boot_cpu_physical_apicid);

setup_local_APIC(); <=== will die there

--
vda
-
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/