Re: NMI problems with Dell SMP Xeons

Rajesh Shah
2006-06-08T00:45:28Z

On Wed, Jun 07, 2006 at 11:47:47AM -0700, Rajesh Shah wrote:
> On Wed, Jun 07, 2006 at 03:18:57PM +0000, Brendan Trotter wrote:
> >
> > > I will try forcing send_IPI_allbutself() to use the mask version rather
> > > than the broadcast shortcut. Later tonight ...
> >
> > I've been looking into this a little - it appears that Linux tries to
> > use one bit per CPU in the local APIC's "logical destination register"
> > and that in all cases at least one bit is set for each valid CPU. As
> > far as I can tell sending an NMI (or any other broadcast IPI) in
> > logical mode with no shorthand and "destination = 0xFF" should work
> > fine for both "cluster mode" and "flat mode". In this case I'd also
> > suggest that "clear_local_APIC()" clear the destination format
> > register (DFR) and the logical destination register (LDR) so that it
> > doesn't receive broadcast NMIs if the CPU is taken offline.
> >
> I will double-check with the CPU folks, but I don't think this
> will do what you want it to do. If you send an NMI IPI with
> destination set to 0xff, I think it will interrupt all CPUs,

I was wrong - a (reasonably modern) CPU will indeed not take the
NMI IPI if its LDR is clear and the IPI was sent in logical mode.
However, the CPU folks weren't expecting it to be used this way,
so they aren't sure yet if this is guaranteed to work this way
on all CPUs.

Rajesh