android_kernel_motorola_sm6375/kernel/time
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Joel Fernandes 948a5312f4 timekeeping: Add a fast and NMI safe boot clock
This boot clock can be used as a tracing clock and will account for
suspend time.

To keep it NMI safe since we're accessing from tracing, we're not using a
separate timekeeper with updates to monotonic clock and boot offset
protected with seqlocks. This has the following minor side effects:

(1) Its possible that a timestamp be taken after the boot offset is updated
but before the timekeeper is updated. If this happens, the new boot offset
is added to the old timekeeping making the clock appear to update slightly
earlier:
   CPU 0                                        CPU 1
   timekeeping_inject_sleeptime64()
   __timekeeping_inject_sleeptime(tk, delta);
                                                timestamp();
   timekeeping_update(tk, TK_CLEAR_NTP...);

(2) On 32-bit systems, the 64-bit boot offset (tk->offs_boot) may be
partially updated.  Since the tk->offs_boot update is a rare event, this
should be a rare occurrence which postprocessing should be able to handle.

Signed-off-by: Joel Fernandes <joelaf@google.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1480372524-15181-6-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2016-11-29 18:02:59 +01:00
..
alarmtimer.c posix-timers: Make them configurable 2016-11-16 09:26:35 +01:00
clockevents.c clockevents: Make clockevents_subsys static 2016-07-19 10:48:06 +02:00
clocksource.c clocksource: Defer override invalidation unless clock is unstable 2016-08-31 14:43:33 -07:00
hrtimer.c timers: Fix documentation for schedule_timeout() and similar 2016-10-26 13:14:47 +02:00
itimer.c timer: Move sys_alarm from timer.c to itimer.c 2016-11-16 09:26:34 +01:00
jiffies.c jiffies: Use CLOCKSOURCE_MASK instead of constant 2016-02-27 08:55:31 +01:00
Kconfig
Makefile posix-timers: Make them configurable 2016-11-16 09:26:35 +01:00
ntp.c
ntp_internal.h
posix-clock.c
posix-cpu-timers.c posix_cpu_timers: Move the add_device_randomness() call to a proper place 2016-11-16 09:26:34 +01:00
posix-stubs.c posix-timers: Make them configurable 2016-11-16 09:26:35 +01:00
posix-timers.c
sched_clock.c
test_udelay.c time: Avoid timespec in udelay_test 2016-06-20 12:47:26 -07:00
tick-broadcast-hrtimer.c tick/broadcast-hrtimer: Set name of the ce_broadcast_hrtimer 2016-07-05 17:02:19 +02:00
tick-broadcast.c
tick-common.c
tick-internal.h timers: Forward the wheel clock whenever possible 2016-07-07 10:35:11 +02:00
tick-oneshot.c
tick-sched.c tick/nohz: Prevent stopping the tick on an offline CPU 2016-09-13 17:53:52 +02:00
tick-sched.h timers/nohz: Convert tick dependency mask to atomic_t 2016-03-29 11:52:11 +02:00
time.c time: Avoid undefined behaviour in timespec64_add_safe() 2016-08-31 14:43:35 -07:00
timeconst.bc
timeconv.c time: Add time64_to_tm() 2016-06-20 12:47:15 -07:00
timecounter.c
timekeeping.c timekeeping: Add a fast and NMI safe boot clock 2016-11-29 18:02:59 +01:00
timekeeping.h
timekeeping_debug.c timekeeping: Prints the amounts of time spent during suspend 2016-08-31 14:43:34 -07:00
timekeeping_internal.h
timer.c posix-timers: Make them configurable 2016-11-16 09:26:35 +01:00
timer_list.c
timer_stats.c timer: Avoid using timespec 2016-06-20 12:47:33 -07:00