Fixing SMP on MacBooks

Rui Paulo rpaulo at fnop.net
Fri May 11 00:20:47 UTC 2007


Hi,
I would like to bring this discussion to a wider audicence.

So, here's the problem:
As some of you already know, the second core on Apple's MacBooks fails
to start. There are two nasty tricks to make it start (both involve
interactivity from the user) that I know of.

They are:
	1) Press the power button during the IPI timeout;
	2) Press a key [1] before the IPIs are sent *OR* during the
	   IPI timeout.

[1] This is really an interrupt. Pressing the Fn key doesn't work
because the Fn key doesn't generate an interrupt.

There tricks don't work on the MacBook Pro. While the source of the
problem might be the same, it's not clear why the tricks work.

Some ideas (came up during discussion with Scott Long)
	1) Update EFI -- I have the latest updates from Apple and the
	   AP doesn't start.

	2) The trampoline isn't being set correctly -- if that was the
	   case, the tricks wouldn't really work

	3) Check what kind of interrupt is generated by the USB
	   controller

	4) The LAPIC is not being set correctly -- I've been reading
	   the Linux code on this matter and I don't see any relevant
	   difference

	5) The boot loader is doing something legacy only [2]

[2] This was true for cdboot, at least.

Either way, an interrupt is (it seems):
	1) triggering a (re)configuration of something; or
	2) enabling another interrupt(s)

Anyone has any other ideas on how to better debug this ?


More information about the freebsd-smp mailing list