On Mon, 2002-11-25 at 18:26, Keith Owens wrote:

> The problem with a broadcast NMI is that all processors end up in the
> NMI state.  I don't know about ppc, but on x86 and ia64, the processors
> will not take another NMI until they exit from the first one.  IOW, the
> broadcast NMI stops the kdb NMI from doing anything.  The only solution
> is to use KDB_ENTER() on the first cpu that gets the NMI and to drop
> back to normal code for all the other cpus.  Code something like this

This is pretty much what I am doing.  However, our processors are not in
a "reset state" so we *can* take a reset while handling a reset.  We
aren't using reset as a kdb NMI anyway since it can't be pulled by
software.

I would prefer that if a processor enters kdb on a reset and it detects
it is already in kdb that it would simply return.  Then if my system
drops into kdb through some other means (perhaps a panic) and the IPI
fails to stop other processors, I could simply hit the reset button to
nab those other processors -- without screwing up the state of the
processors already in kdb.

The only trouble with this thought is that I would not be able to use
reset to "recover" if kdb itself has problems.  Oh well.

-todd


Reply via email to