diff options
author | Will Deacon <will.deacon@arm.com> | 2011-03-25 16:12:37 (GMT) |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-03-26 10:06:09 (GMT) |
commit | a737823d37666255e3e74ce84bc9611a038e0888 (patch) | |
tree | 0424691dc1af593e08877cb1ee2b2e59334f532f /arch/arm/mach-s3c2400 | |
parent | 574b69cbb633037a9c305d2993aeb680f4a8badd (diff) | |
download | linux-a737823d37666255e3e74ce84bc9611a038e0888.tar.xz |
ARM: 6835/1: perf: ensure overflows aren't missed due to IRQ latency
If a counter overflows during a perf stat profiling run it may overtake
the last known value of the counter:
0 prev new 0xffffffff
|----------|-------|----------------------|
In this case, the number of events that have occurred is
(0xffffffff - prev) + new. Unfortunately, the event update code will
not realise an overflow has occurred and will instead report the event
delta as (new - prev) which may be considerably smaller than the real
count.
This patch adds an extra argument to armpmu_event_update which indicates
whether or not an overflow has occurred. If an overflow has occurred
then we use the maximum period of the counter to calculate the elapsed
events.
Acked-by: Jamie Iles <jamie@jamieiles.com>
Reported-by: Ashwin Chaugule <ashwinc@codeaurora.org>
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/mach-s3c2400')
0 files changed, 0 insertions, 0 deletions