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

From: Andi Kleen
Date: Thu Oct 07 2010 - 11:11:39 EST


On Thu, Oct 07, 2010 at 10:01:12AM -0400, Don Zickus wrote:
> On Thu, Oct 07, 2010 at 09:26:41AM +0200, Andi Kleen wrote:
> >
> > Having a regression test for this is good, but it would
> > be also good if it wasn't a private one but in some public
> > git repository.
>
> Yeah, I know. It isn't meant to be private, mostly glue logic to load
> this module using RedHat's internal test harness.
>
> Is there a more public place to add a test like this? I guess that would
> be LTP. Though last time I looked at LTP, all the tests are written in
> 'C' whereas I just cobbled together some shell scripts to configure kdump,
> load the module, panic, process the resulting vmcore to verify it panic'd
> for the right reason

One possible place would be mce-test, but LTP would work too I guess.

>
> >
> > > static struct jprobe lkdtm;
> > > @@ -340,6 +343,9 @@ static void lkdtm_do_action(enum ctype which)
> > > set_current_state(TASK_UNINTERRUPTIBLE);
> > > schedule();
> > > break;
> > > + case NMI:
> > > + apic->send_IPI_allbutself(NMI_VECTOR);
> > > + break;
> > > case NONE:
> > > default:
> > > break;
> > >
> > > Anyone have any thoughts? Maybe there is an easier way?
> >
> > Do you really want the NMI on all CPUs - 1? Normally it's directed to
> > a single one.
>
> No I prefer a single one too, but there didn't seem to be a
> send_IPI_self() command, so I took the short route and sent it to
> everyone. :-(

You're not sending it to everyone, everyone but you.

Anyways for standard APIC send_IPI_cpu should be easy enough
to add. Standard NMI is usually to CPU #0 only.

-Andi

--
ak@xxxxxxxxxxxxxxx -- Speaking for myself only.
--
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/