SMP Panic: no local apic
Hi all again,
I just acquired a new laptop(Fujitsu V1010) that has a Core Duo (not Core 2
Duo). While UP seems to work fine, any SMP kernel, with(out) IO_APIC and
with(out) ACPI immediately panics after the boot menul, saying no local apic.
I have no idea what it means or how I can fix it, so Im asking you guys :) How
can we get this fixed?
#1 Updated by dillon over 9 years ago
:Hi all again,
:I just acquired a new laptop(Fujitsu V1010) that has a Core Duo (not Core 2
:Duo). While UP seems to work fine, any SMP kernel, with(out) IO_APIC and
:with(out) ACPI immediately panics after the boot menul, saying no local apic.
:I have no idea what it means or how I can fix it, so Im asking you guys :) How
:can we get this fixed?
I seem to recall that Intel screwed up the location of the local APIC
in some of those cpus. I'm not at all sure how to fix it but there
might be a patch in one of the other BSDs for it.
#4 Updated by elekktretterr over 9 years ago
Yeah it is:
CPU: Genuine Intel(R) CPU T2130 @ 1.86GHz (1862.22-MHz
Origin = "GenuineIntel" Id = 0x6ec Stepping = 12
Hyperthreading: 2 logical CPUs
#7 Updated by elekktretterr over 9 years ago
J just checked FreeBSD current and it properly enables both cores. I tink it
would be because they get the local apic table from ACPI and not from the
BIOS correct? What's the chance you or someone will get to port this from
FreeBSD within the next 6 months?
#9 Updated by dillon over 9 years ago
:How difficult would it be to make the APIC table be "read" from ACPI like
:FreeBSD does it? (this is just a question, not an implication that you or
:someone else do it at this very minute.)
I think we already do it to a degree, it may not be enabled or may not
be the source of the problem, or the MP table may be overriding it.
I'm not really sure. I'm afraid all of my time is being spent on
HAMMER, I can't afford to mess with ACPI now. That shouldn't stop
someone else from trying, though.
#10 Updated by tuxillo over 9 years ago
El Mon, 10 Dec 2007 15:44:44 -0800, Matthew Dillon escribió:
Same here. I have taken a shot of my screen when booting.
Could you please take a look to the following picture and tell me whether
is the same error?
#12 Updated by mneumann about 9 years ago
Same problem on my laptop (HP Compaq 6710b, Core 2 Duo). I browsed through the
mp_machdep.c code and noticed that it has nothing to do with not finding the
local apic. The CPU itself is not detected as MP capable in mp_probe().
mptable_pass1() is never called in this situation, which leads to the wrong
panic ("no local apic").
Please change in platform/pc32/i386/machdep.c in function getmemsize() the line:
if (mp_probe() == 0)
panic("CPU not detected as MP capable");
This will give you a more appropriate error message, nothing more.
The whole problem arises because search_for_sig don't find a "_MP_" signature in
memory. The relevant changes were introduced in FreeBSD in version 1.220 of
#13 Updated by elekktretterr about 9 years ago
Well when I boot with a UP kernel, it says 2 logical cpus found. So do we have
the same problem?
It would be great if someone ported this newer code from freebsd or at least
did something about this problem. I think theres a lot of people that can't
get SMP to work due to this problem.
#20 Updated by tuxillo almost 8 years ago
For some motherboards (almost 90% that I've used), there's a setting in the BIOS
so you can choose MPS version 1.1 or 1.4.
The most probable thing is that it makes no difference and that mptable will
still return "MP FPS NOT found", but I think it is worth of giving a try with
both versions to make 100% sure it doesn't work at all.
If any difference, please update this ticket.