powerpc, perf: Fix frequency calculation for overflowing counters (FSL version)
authorAnton Blanchard <anton@samba.org>
Tue, 18 Jan 2011 10:44:04 +0000 (21:44 +1100)
committerIngo Molnar <mingo@elte.hu>
Wed, 19 Jan 2011 19:05:42 +0000 (20:05 +0100)
When fixing the frequency calculations for perf on powerpc I
forgot to fix the FSL version.

If we dont set event->hw.last_period the frequency to period
calculations in perf go haywire and we continually
throttle/unthrottle the PMU.

Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Scott Wood <scottwood@freescale.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <20110118214404.2f42e634@kryten>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/powerpc/kernel/perf_event_fsl_emb.c

index 4dcf5f8..b0dc8f7 100644 (file)
@@ -596,6 +596,7 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
                        if (left <= 0)
                                left = period;
                        record = 1;
+                       event->hw.last_period = event->hw.sample_period;
                }
                if (left < 0x80000000LL)
                        val = 0x80000000LL - left;