Kernel panic at early boot time
jhb at freebsd.org
Mon Aug 13 17:47:17 UTC 2012
On Wednesday, August 08, 2012 8:26:56 pm mnln.l4 wrote:
> I finally have some time to take a closer look at this issue. Yes, it
> is caused by SMI#. DragonflyBSD has tried to fix the similar problem
> But Windows and Linux don't cause such problem on my machine.
> I compared MP initialization code between FreeBSD, Linux and NetBSD. I
> believe the problem is FreeBSD doesn't wait for 10ms between IPI_INIT
> assert and IPI_INIT deassert (though FreeBSD waits for 10ms after
> IPI_INIT deassert). After inserting 10ms wait time, the issue is
> solved. BTW, Intel's MP spec 1.4 doesn't explain very well either.
I think the confusion is that we have an extra IPI step (deassert INIT IPI)
that we did have the wait after. Your patch is correct and I've committed
it (well, a variant, I put the DELAY() after the lapic_ipi_wait()). I think
we should actually just remove the deassert INIT IPI entirely as I can find
no reference in either the MP spec or otherwise that says that it should be
used. It is also ignored on all modern processors.
More information about the freebsd-stable