android_kernel_motorola_sm6375/kernel/time
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Channagoud Kadabi dca86b7f36 kernel: time: Fix accuracy for low resolution timer
timer wheel calculates the index for any timer based on the expiry
value and level granularity of the timer. Due to the level granularity
timer will not fire at the exact time instead expire at a time value
expires + granularity. This is done in the timer code when the index for
each timer is calculated based on the expiry and granularity at each
level:

 expires = (expires + LVL_GRAN(lvl)) >> LVL_SHIFT(lvl);

For devfreq drivers the requirement is to fire the timer at the exact
time. If the timer does not expire at the exact time then it'll take
much longer to react and increase the device frequency. Devfreq driver
registers timer for 10ms expiry and due to slack in timer code the
expirty happens at 20 ms. For eg: Frame rendering time is 16ms.
If devfreq driver reacts after 20ms instead of 10ms, that's
way past a frame rendering time.

Timers with 10ms to 630ms expiry fall under level 0, to overcome the
granularity issue for level 0 with low expirty values do not add the
granularity by introducing a new function calc_index_min_granularity.

Change-Id: I60f6f4394de4b5f409829de9734645e1a0d7659e
Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
[eberman@codeaurora.org: simplify to one function]
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2020-08-12 10:53:10 -07:00
..
alarmtimer.c alarmtimer: Make alarmtimer platform device child of RTC device 2020-02-24 08:36:57 +01:00
clockevents.c
clocksource.c Merge android-5.4.24 (ce5de62) into msm-5.4 2020-04-14 08:25:29 -07:00
hrtimer.c Merge android-5.4.8 (de197c5) into msm-5.4 2020-03-06 19:19:20 -08:00
itimer.c posix-cpu-timers: Switch thread group sampling to array 2019-08-28 11:50:39 +02:00
jiffies.c
Kconfig
Makefile
ntp.c ntp/y2038: Remove incorrect time_t truncation 2019-11-12 08:13:44 +01:00
ntp_internal.h
posix-clock.c ptp: fix the race between the release of ptp_clock and cdev 2020-01-04 19:18:48 +01:00
posix-cpu-timers.c posix-cpu-timers: Fix two trivial comments 2019-10-23 14:48:24 +02:00
posix-stubs.c
posix-timers.c
posix-timers.h
sched_clock.c time/sched_clock: Expire timer in hardirq context 2020-04-17 10:50:02 +02:00
test_udelay.c
tick-broadcast-hrtimer.c tick: broadcast-hrtimer: Fix a race in bc_set_next 2019-09-27 14:45:55 +02:00
tick-broadcast.c
tick-common.c
tick-internal.h
tick-oneshot.c
tick-sched.c Merge android-5.4.24 (ce5de62) into msm-5.4 2020-04-14 08:25:29 -07:00
tick-sched.h
time.c time: Zero the upper 32-bits in __kernel_timespec on 32-bit 2019-12-13 08:42:18 +01:00
timeconst.bc
timeconv.c
timecounter.c
timekeeping.c
timekeeping.h
timekeeping_debug.c
timekeeping_internal.h
timer.c kernel: time: Fix accuracy for low resolution timer 2020-08-12 10:53:10 -07:00
timer_list.c
vsyscall.c lib/vdso: Update coarse timekeeper unconditionally 2020-03-05 16:43:49 +01:00