Kernel panic at early boot time

John Baldwin 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
> (see 
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/bb467734fc407e2c2de7f8314c63dd9f708f4df4)
> 
> 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.

-- 
John Baldwin


More information about the freebsd-stable mailing list