Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | From | Francis Moreau <> | Subject | Re: [tip:perf/core] perf: Ignore non-sampling overflows | Date | Fri, 26 Nov 2010 20:20:29 +0100 |
| |
Peter,
tip-bot for Peter Zijlstra <a.p.zijlstra@chello.nl> writes: > > perf: Ignore non-sampling overflows > > Some arch implementations call perf_event_overflow() by 'accident', > ignore this. > > Reported-by: Francis Moreau <francis.moro@gmail.com> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> > LKML-Reference: <new-submission> > Signed-off-by: Ingo Molnar <mingo@elte.hu> > --- > kernel/perf_event.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/kernel/perf_event.c b/kernel/perf_event.c > index 98c5549..af1e63f 100644 > --- a/kernel/perf_event.c > +++ b/kernel/perf_event.c > @@ -4240,6 +4240,13 @@ static int __perf_event_overflow(struct perf_event *event, int nmi, > struct hw_perf_event *hwc = &event->hw; > int ret = 0; > > + /* > + * Non-sampling counters might still use the PMI to fold short > + * hardware counters, ignore those. > + */ > + if (unlikely(!is_sampling_event(event))) > + return 0; > + > if (!throttle) { > hwc->interrupts++; > } else {
Couldn't we place this in perf_event_overflow() instead, like the following ?
--8<---------------cut here---------------start------------->8---
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index df27fd8..1dabb54 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c @@ -4267,7 +4267,9 @@ int perf_event_overflow(struct perf_event *event, int nmi, struct perf_sample_data *data, struct pt_regs *regs) { - return __perf_event_overflow(event, nmi, 1, data, regs); + if (is_sampling_event(event)) + return __perf_event_overflow(event, nmi, 1, data, regs); + return 0; } /* --8<---------------cut here---------------end--------------->8--- thanks, -- Francis
| ![\](/images/icornerr.gif) |