diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2020-03-19 21:47:06 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2020-03-19 21:47:48 +0300 |
commit | 52da479a9aee630d2cdf37d05edfe5bcfff3e17f (patch) | |
tree | aba88a3467e6a5c34075e7e86658c051b646ade2 /kernel/time | |
parent | 2c8bd58812ee3dbf0d78b566822f7eacd34bdd7b (diff) | |
download | linux-52da479a9aee630d2cdf37d05edfe5bcfff3e17f.tar.xz |
Revert "tick/common: Make tick_periodic() check for missing ticks"
This reverts commit d441dceb5dce71150f28add80d36d91bbfccba99 due to
boot failures.
Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Waiman Long <longman@redhat.com>
Diffstat (limited to 'kernel/time')
-rw-r--r-- | kernel/time/tick-common.c | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index cce4ed1515c7..7e5d3524e924 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -16,7 +16,6 @@ #include <linux/profile.h> #include <linux/sched.h> #include <linux/module.h> -#include <linux/sched/clock.h> #include <trace/events/power.h> #include <asm/irq_regs.h> @@ -85,41 +84,12 @@ int tick_is_oneshot_available(void) static void tick_periodic(int cpu) { if (tick_do_timer_cpu == cpu) { - /* - * Use running_clock() as reference to check for missing ticks. - */ - static ktime_t last_update; - ktime_t now; - int ticks = 1; - - now = ns_to_ktime(running_clock()); write_seqlock(&jiffies_lock); - if (last_update) { - u64 delta = ktime_sub(now, last_update); - - /* - * Check for eventually missed ticks - * - * There is likely a persistent delta between - * last_update and tick_next_period. So they are - * updated separately. - */ - if (delta >= 2 * tick_period) { - s64 period = ktime_to_ns(tick_period); - - ticks = ktime_divns(delta, period); - } - last_update = ktime_add(last_update, - ticks * tick_period); - } else { - last_update = now; - } - /* Keep track of the next tick event */ - tick_next_period = ktime_add(tick_next_period, - ticks * tick_period); - do_timer(ticks); + tick_next_period = ktime_add(tick_next_period, tick_period); + + do_timer(1); write_sequnlock(&jiffies_lock); update_wall_time(); } |