diff options
author | Nicolas Boichat <drinkcat@chromium.org> | 2018-12-12 11:30:51 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-12-18 04:28:56 -0800 |
commit | 9f4852b7e9bbceb1fadb04eb68da43037f0b09d5 (patch) | |
tree | e3bed99f9248d40ec81aa9020c1439a53594a5d3 /.clang-format | |
parent | e5ddc233ebc2285e3d145c6206c86c483bfbae11 (diff) | |
download | chrome-ec-9f4852b7e9bbceb1fadb04eb68da43037f0b09d5.tar.gz |
core/cortex-m*/task: Record 32-bit exception times
"time in exceptions" looks unreasonable after > 4294s (when 32-bit
microsecond timer wraps around).
This is because core/cortex-m/task.c:svc_handler records time
exc_start_time just before the interrupt handler for 32-bit
timer interrupt runs, so the high word of the system clock
(clksrc_high) is not updated yet (while the low 32-bits already
wrapped around). After the handler runs, clksrc_high is updated,
so there appear to be a 4294s gap between the 2 measurements.
Fix this by recording the low 32-bit timer value only. There will
never be more than 4294s between exceptions, and this fixes the
wrap-around issue as well.
BRANCH=none
BUG=chromium:914208
TEST=Flash kukui (cortex-m0) and kukui_scp (cortex-m), let system
run for 4300+s, no more accounting error in "Time in exceptions".
Change-Id: If52855ef093ac1a1d38432555694c83742feb8f1
Signed-off-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1372876
Diffstat (limited to '.clang-format')
0 files changed, 0 insertions, 0 deletions