diff options
author | Arve Hjønnevåg <arve@android.com> | 2023-11-17 10:21:03 -0800 |
---|---|---|
committer | Arve Hjønnevåg <arve@android.com> | 2024-03-30 00:29:18 +0000 |
commit | 1ec3401a7d40d62b215d99172b1d07fae0f35f58 (patch) | |
tree | 41df6e50721ecd829162a448c191d6ec8e1efb8b /lib/rust_support/rules.mk | |
parent | 53039a27a5f9bca3f38b911dcca0e3c245a4e793 (diff) | |
download | common-1ec3401a7d40d62b215d99172b1d07fae0f35f58.tar.gz |
dev: timer: x86_generic: Fix divisor calculation
The old code incorrectly claimed the timer could handle a 55 ms timer,
and clamped the millisecond value to 55 before converting from ms to pit
timer ticks. The converted value overflow when then clamped to 16 bits
resulting in a timer request less than 100 microseconds into the future
instead of 55 millioseconds. This resulted in 100% cpu usage while
waiting for a timer 55ms or longer.
Improve the precision of the conversion by converting directly from nano
seconds to pit timer ticks instead of first converting to milliseconds.
Then clamp the value after the conversion instead where the boundary is
more clear.
Also remove code that starts a periodic timer on boot that had no
apparent purpose.
Bug: 311709679
Change-Id: Ia2cff162b9bf2359973356a5108de87ec860d61b
Diffstat (limited to 'lib/rust_support/rules.mk')
0 files changed, 0 insertions, 0 deletions