aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2011-04-05 14:01:24 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-04-10 21:13:35 +0100
commit6759788b944139793bffa889761cc3d8d703fdc0 (patch)
treeac97143a319067bb8d5929d83f34df646d703189 /arch/arm/kernel
parente89c0d7090c54d7b11b9b091e495a1ae345dd3ff (diff)
downloadkernel_goldelico_gta04-6759788b944139793bffa889761cc3d8d703fdc0.zip
kernel_goldelico_gta04-6759788b944139793bffa889761cc3d8d703fdc0.tar.gz
kernel_goldelico_gta04-6759788b944139793bffa889761cc3d8d703fdc0.tar.bz2
ARM: 6865/1: perf: ensure pass through zero is counted on overflow
Commit a737823d ("ARM: perf: ensure overflows aren't missed due to IRQ latency") changed the way that event deltas are calculated on overflow so that we don't miss events when the new count value overtakes the previous one. Unfortunately, we forget to count the event that passes through zero so we end up being off by 1. This patch adds on the correction. Reported-by: Chris Moore <moore@free.fr> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/perf_event.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index 69cfee0..979da39 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -221,7 +221,7 @@ again:
prev_raw_count &= armpmu->max_period;
if (overflow)
- delta = armpmu->max_period - prev_raw_count + new_raw_count;
+ delta = armpmu->max_period - prev_raw_count + new_raw_count + 1;
else
delta = new_raw_count - prev_raw_count;