SMP turbulence: "kernel trap 12 with interrupts disabled"

Bruce Evans bde at zeta.org.au
Sat Jun 26 18:31:24 PDT 2004


On Sat, 26 Jun 2004, Robert Watson wrote:

> On Sat, 26 Jun 2004, David Wolfskill wrote:
>
> > Daily builds of -STABLE & -CURRENT went fine today, both on (UP) laptop
> > and SMP "build machine," but the subsequent boot of -CURRENT on the SMP
> > machine didn't go so well -- even a single-user boot died thus:
>
> I ran into this also -- I got a panic when I hit a key on the serial
> console, as that caused the sio intr to preempt the ACPI idle loop and
> resulted in unhappiness somehow.  I found that when I disabled the tunable
> that turns off HTT, it worked fine.  Likewise, if I used 4BSD it was fine.
> It's unclear to me what the cause is.

This looks like phk's roto-tilling of com->hotchar to com->tp->t_hotchar.
Hitting a key on a serial console that has not been opened from userland
is the most deterministic way to demonstrate the brokenness of this change
in practice.  com->tp is NULL until first open, and the null pointer access
is especially easy to reach using a serial console since it is in the
interrupt handler and interrupts are enabled before open on serial consoles
to support trapping to the debugger on them.  You probably need the options
that give this early enabling to see the bug.  They are:

%%%
#if defined(DDB) && (defined(BREAK_TO_DEBUGGER) || \
    defined(ALT_BREAK_TO_DEBUGGER))
%%%

Bruce


More information about the freebsd-current mailing list