diff options
author | Mark Salyzyn <salyzyn@google.com> | 2018-01-24 14:00:19 -0800 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2019-12-23 23:43:40 +0200 |
commit | e2495b88b595e304101a063cd9e28d9c17694d41 (patch) | |
tree | c642aade16e4e5079530f8e167a8206144380f2b /kernel/sched/sched.h | |
parent | a230b07de3633069ec1027bea2a30554faf93205 (diff) |
ANDROID: clock_gettime(CLOCK_BOOTTIME,) slows down >20x
clock_gettime(CLOCK_BOOTTIME,) slows down after significant
accumulation of suspend time creating a large offset between it and
CLOCK_MONOTONIC time. The __iter_div_u64_rem() is only for the usage
of adding a few second+nanosecond times and saving cycles on more
expensive remainder and division operations, but iterates one second
at a time which quickly goes out of scale in CLOCK_BOOTTIME's case
since it was specified as nanoseconds only.
The fix is to split off seconds from the boot time and cap the
nanoseconds so that __iter_div_u64_rem does not iterate.
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 72406285
Change-Id: Ia647ef1e76b7ba3b0c003028d4b3b955635adabb
Diffstat (limited to 'kernel/sched/sched.h')
0 files changed, 0 insertions, 0 deletions