Re: [PATCH 08/13] xen/pvticketlock: disable interrupts while blocking

From: Andi Kleen
Date: Tue Sep 13 2011 - 17:04:30 EST


On Tue, Sep 13, 2011 at 04:53:18PM -0400, Don Zickus wrote:
> On Tue, Sep 13, 2011 at 09:58:38PM +0200, Andi Kleen wrote:
> > > Or are you saying an NMI in an idle system will have the same %rip thus
> > > falsely detecting a back-to-back NMI?
> >
> > Yup.
>
> Hmm. That sucks. Is there another register that can be used in
> conjunction to seperate it, like sp or something? Or we can we assume

Not that I know of.

> than an idle cpu isn't doing much for local NMI IPIs and that the only
> NMIs that would interrupt it would be external ones?

There can be still activity on the "idle" system, e.g. SMM or some
Hypervisor in the background. If you profile events those might trigger
samples, but they will be all accounted to the MWAIT.

> > Another problem is very long running instructions, like WBINVD and some others.
> > If there's a high frequency NMI it may well hit multiple times in a single
> > instance.
>
> I thought NMIs happen on instruction boundaries, maybe not.

Yes, but there may be multiple queued up when the instruction has finished
executing. So you get multiple at the boundary.

> Honestly, our current implementation would probably be tripped up with
> those examples too, so I don't think I am making things worse (assuming
> the only high frequency NMI is coming from perf).

I wish perf/oprofile would just stop using NMIs. The interrupt off regions
are getting smaller and smaller and they can be profiled in a limited way
using PEBS anyways. Or maybe make it a knob with default to off.

-Andi

--
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/