Re: [PATCH -v3] perf, x86: try to handle unknown nmis with running perfctrs

Robert Richter
2010-08-27T08:33:49Z

On 27.08.10 04:11:21, Peter Zijlstra wrote:
> On Fri, 2010-08-27 at 09:57 +0200, Robert Richter wrote:
> > On 26.08.10 14:02:50, Cyrill Gorcunov wrote:
> > > > diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
> > > > index 4539b4b..9e65a7b 100644
> > > > --- a/arch/x86/kernel/cpu/perf_event_intel.c
> > > > +++ b/arch/x86/kernel/cpu/perf_event_intel.c
> > > > @@ -777,7 +777,9 @@ again:
> > > >
> > > > done:
> > > > intel_pmu_enable_all(0);
> > > > - return handled;
> > > > + if (!handled)
> > > > + return handled;
> > > > + return ++handled;
> > > > }
> > > >
> > > > static struct event_constraint *
> > > >
> > >
> > > ok, it seems it just treat any unknown nmi as being came from PMU, no?
> >
> > Yes, this just throws away all unknown nmis after a perf nmi. It
> > disables unknown nmi detection on this cpu type.
>
> Wouldn't returning 2 be more sensible, then it would only eat a few
> unknowns after each pmi? (Still assuming you return 0 when there really
> was nothing to do)

Yes, this would be the best workaround for cpus where the detection
logic does not work properly. But I think Don found a solution
already.

-Robert

--
Advanced Micro Devices, Inc.
Operating System Research Center