a3ed0e4393
Revert commits92af4dcb4e
("tracing: Unify the "boot" and "mono" tracing clocks")127bfa5f43
("hrtimer: Unify MONOTONIC and BOOTTIME clock behavior")7250a4047a
("posix-timers: Unify MONOTONIC and BOOTTIME clock behavior")d6c7270e91
("timekeeping: Remove boot time specific code")f2d6fdbfd2
("Input: Evdev - unify MONOTONIC and BOOTTIME clock behavior")d6ed449afd
("timekeeping: Make the MONOTONIC clock behave like the BOOTTIME clock")72199320d4
("timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock") As stated in the pull request for the unification of CLOCK_MONOTONIC and CLOCK_BOOTTIME, it was clear that we might have to revert the change. As reported by several folks systemd and other applications rely on the documented behaviour of CLOCK_MONOTONIC on Linux and break with the above changes. After resume daemons time out and other timeout related issues are observed. Rafael compiled this list: * systemd kills daemons on resume, after >WatchdogSec seconds of suspending (Genki Sky). [Verified that that's because systemd uses CLOCK_MONOTONIC and expects it to not include the suspend time.] * systemd-journald misbehaves after resume: systemd-journald[7266]: File /var/log/journal/016627c3c4784cd4812d4b7e96a34226/system.journal corrupted or uncleanly shut down, renaming and replacing. (Mike Galbraith). * NetworkManager reports "networking disabled" and networking is broken after resume 50% of the time (Pavel). [May be because of systemd.] * MATE desktop dims the display and starts the screensaver right after system resume (Pavel). * Full system hang during resume (me). [May be due to systemd or NM or both.] That happens on debian and open suse systems. It's sad, that these problems were neither catched in -next nor by those folks who expressed interest in this change. Reported-by: Rafael J. Wysocki <rjw@rjwysocki.net> Reported-by: Genki Sky <sky@genki.is>, Reported-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: John Stultz <john.stultz@linaro.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Kevin Easton <kevin@guarana.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mark Salyzyn <salyzyn@android.com> Cc: Michael Kerrisk <mtk.manpages@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Petr Mladek <pmladek@suse.com> Cc: Prarit Bhargava <prarit@redhat.com> Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org>
26 lines
661 B
C
26 lines
661 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _KERNEL_TIME_TIMEKEEPING_H
|
|
#define _KERNEL_TIME_TIMEKEEPING_H
|
|
/*
|
|
* Internal interfaces for kernel/time/
|
|
*/
|
|
extern ktime_t ktime_get_update_offsets_now(unsigned int *cwsseq,
|
|
ktime_t *offs_real,
|
|
ktime_t *offs_boot,
|
|
ktime_t *offs_tai);
|
|
|
|
extern int timekeeping_valid_for_hres(void);
|
|
extern u64 timekeeping_max_deferment(void);
|
|
extern void timekeeping_warp_clock(void);
|
|
extern int timekeeping_suspend(void);
|
|
extern void timekeeping_resume(void);
|
|
|
|
extern void do_timer(unsigned long ticks);
|
|
extern void update_wall_time(void);
|
|
|
|
extern seqlock_t jiffies_lock;
|
|
|
|
#define CS_NAME_LEN 32
|
|
|
|
#endif
|