Re: freebsd-head: suddenly NMI panics lead to ddb being unable to stop CPUs?

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Fri, 21 Aug 2015 20:10:48 +0300
On Sat, Aug 22, 2015 at 12:53:15AM +0800, Julian Elischer wrote:
> On 8/22/15 12:23 AM, Ian Lepore wrote:
> > On Fri, 2015-08-21 at 23:30 +0800, Julian Elischer wrote:
> >> On 8/21/15 11:25 PM, Adrian Chadd wrote:
> >>> Ah, cool. I'll give it a whirl.
> >>>
> >>> I'm a little worried about having all of the other cores spinning in
> >>> this case (mostly thermal; the machines get VERY LOUD when the CPUs
> >>> are spinning..)
> >>>
> >> make each spin with the pause instruction.. and for N seconds (N being
> >> the CPU ID) or something
> > cpu_spinwait() is defined as ia32_pause() on i386 and amd64.
> >
> > The problem is that ONLY x86 arches benefit from cpu_spinwait(), it's
> > just a nop on other arches, which turn into little radiant heaters for
> > long spins (like while waiting for APs to be released).
> 
> remind me again why it cant spin with a 'halt' instruction?
Because interrupts are disabled.  Even NMI is disabled, because spin
happens in the NMI handler.  There is no way to wake up CPU from the
halted state.
Received on Fri Aug 21 2015 - 15:10:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:59 UTC