Bug #869

SMP Panic: no local apic

Added by elekktretterr almost 7 years ago. Updated over 5 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

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?

Cheers,
Petr

mp_machdep.c.patch Magnifier (655 Bytes) josepht, 07/17/2008 07:39 PM

History

#1 Updated by dillon almost 7 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?
:
:Cheers,
:Petr

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.

-Matt
Matthew Dillon
<>

#2 Updated by elekktretterr almost 7 years ago

had a look on google but found nothing so far :( Is there any way i can
"scan" the cpu for local apic or is this already done, perhaps via
acpidump? This is rather sad, i bought the laptop to finally run DragonFly
with 2 cpus in it.

#3 Updated by joerg almost 7 years ago

Is APIC listed as CPU feature?

Joerg

#4 Updated by elekktretterr almost 7 years ago

Yeah it is:

CPU: Genuine Intel(R) CPU T2130 @ 1.86GHz (1862.22-MHz
686-class CPU)
Origin = "GenuineIntel" Id = 0x6ec Stepping = 12
Features=0xbfe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0xc189<SSE3,MON,EST,TM2,XTPR,RSVD15>
Hyperthreading: 2 logical CPUs

Petr

#5 Updated by dillon almost 7 years ago

I wonder if there is a BIOS option that has to be turned on to enable
the APIC.

-Matt
Matthew Dillon
<>

#6 Updated by elekktretterr almost 7 years ago

I looked into the BIOS, but only found Dual-Core Enable/Disable option,
and thats set to Enabled. I think Linux enables local APIC during boot or
something like that I read on google.

Petr

#7 Updated by elekktretterr almost 7 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?

#8 Updated by elekktretterr almost 7 years ago

Matt,
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.)

Cheers,
Petr

#9 Updated by dillon almost 7 years ago

:Matt,
: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.)
:
:Cheers,
:Petr

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.

-Matt
Matthew Dillon
<>

#10 Updated by tuxillo almost 7 years ago

El Mon, 10 Dec 2007 15:44:44 -0800, Matthew Dillon escribió:

Hello

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?

http://leaf.dragonflybsd.org/~tuxillo/bugs/smp/smp.jpg

Cheers

#11 Updated by elekktretterr almost 7 years ago

Hi,
It's the same error.

Petr

#12 Updated by mneumann over 6 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:

mp_probe();

to

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
mp_machdep.c:

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/i386/i386/mp_machdep.c?r=1.220

#13 Updated by elekktretterr over 6 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.

Petr

#14 Updated by mneumann over 6 years ago

My guess is that this output comes from CPUID and has nothing to do with
the SMP boot problem you see. So I think yes, we probably have the same
problem.

Yes, that would be great.

Regards,

Michael

#15 Updated by majeru over 6 years ago

Hello,

I also have a HP 6710b laptop with a T7500 CPU and I get this error.
Can anyone with more experience in this field give a hint on what could be
changed to fix it?

Cristi

#16 Updated by josepht over 6 years ago

Petr,

Try this patch.

Joe

#17 Updated by josepht over 6 years ago

Actually that probably won't work. Can you try running mptable and
see if it is able to find the MP table? If it can we should be able
fix mp_probe to search in the extra areas where mptable does. This
should probably be done anyway.

Joe

#18 Updated by elekktretterr over 6 years ago

Youre right, the patch didnt work. Running mptable shows "MP FPS NOT found"

Cheers,
Petr

#19 Updated by mneumann over 6 years ago

The same applies to my HP Compaq 6710b laptop. FreeBSD had a lot of
changes to overcome these issues and they started to use ACPI (or fall
back to) to enumerate the CPUs.

Regards,

Michael

#20 Updated by tuxillo over 5 years ago

Hi all,

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.

Regards,
Antonio

#21 Updated by sepherosa over 5 years ago

grab

#22 Updated by sepherosa over 5 years ago

After ACPI MADT LAPIC enumeration introduction, all reports show this issues
could be closed :)

Also available in: Atom PDF