Re: [RFC] arch generic way to trigger unknown NMIs

From: Cyrill Gorcunov
Date: Sun Oct 17 2010 - 04:58:39 EST


On Sun, Oct 17, 2010 at 12:59:11AM +0100, Maciej W. Rozycki wrote:
> On Sat, 16 Oct 2010, Cyrill Gorcunov wrote:
>
> > > > Hi Maciej, the send_IPI_self could be modified to send NMI (at moment it
> > > > uses self shortcut with fixed delivery mode). The question is rather if
> > > > we need it without a real caller yet. When Don's patch gets merged we
> > > > will have a real caller then and could update send_IPI_self to support
> > > > NMI delivery mode. Something like that :)
> > >
> > > Sounds backwards to me. My understanding is a need has just arisen, so
> > > why not:
> > >
> > > 1. Update send_IPI_self().
> > >
> > > 2. Add code that makes use of the new functionality.
> > >
> > > 3. Submit all the changes as self-contained patches in a single series to
> > > be applied at the same time.
> > >
> > > ? That's what I'd imagine the most natural way of doing this would be.
> >
> > Well, Maciej I believe the problem is not in modifying send_IPI_self
> > but rather _how_ to make it more natural and do not introduce overhead.
> > apic code is already weird enough :) Need to think.
> >
> > (
> > btw, we will have to add additional flag which would check for NMI
> > being generated by "NMI-tester" and make a second apic write to
> > ICR to deassert level line, ie it could be something like
> >
> > apic->send_IPI_self(NMI_VECTOR) ; with asserts level
> > default_do_nmi() ; check for NMI being sent for testing purpose
> > apic->send_IPI_self(NMI_VECTOR) ; with deasserts level
> >
> > iirc apic itself doesn't deassert nmi line on message with
> > nmi deliver mode arrival
> > )
>
> How different is it to the other two send_IPI shorthand calls? Or the
> fully-fledged one? I gather from this thread they already handle NMIs
> properly, so what is there within that cannot simply be copied over to
> this one?
>
> Maciej
>

Hmm, good question ;) I thought about 82489dx which required level
trigger mode for nmi delivery, new (or present day) apics always
use edge trigger mode so indeed there is no need for level assert/deassert.

Cyrill
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/