diff options
Diffstat (limited to 'include/linux/timekeeper_internal.h')
| -rw-r--r-- | include/linux/timekeeper_internal.h | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/include/linux/timekeeper_internal.h b/include/linux/timekeeper_internal.h index fb86963859c7..25247220b4b7 100644 --- a/include/linux/timekeeper_internal.h +++ b/include/linux/timekeeper_internal.h @@ -49,6 +49,8 @@ struct tk_read_base {   * @offs_boot:		Offset clock monotonic -> clock boottime   * @offs_tai:		Offset clock monotonic -> clock tai   * @tai_offset:		The current UTC to TAI offset in seconds + * @clock_was_set_seq:	The sequence number of clock was set events + * @next_leap_ktime:	CLOCK_MONOTONIC time value of a pending leap-second   * @raw_time:		Monotonic raw base time in timespec64 format   * @cycle_interval:	Number of clock cycles in one NTP interval   * @xtime_interval:	Number of clock shifted nano seconds in one NTP @@ -60,6 +62,9 @@ struct tk_read_base {   *			shifted nano seconds.   * @ntp_error_shift:	Shift conversion between clock shifted nano seconds and   *			ntp shifted nano seconds. + * @last_warning:	Warning ratelimiter (DEBUG_TIMEKEEPING) + * @underflow_seen:	Underflow warning flag (DEBUG_TIMEKEEPING) + * @overflow_seen:	Overflow warning flag (DEBUG_TIMEKEEPING)   *   * Note: For timespec(64) based interfaces wall_to_monotonic is what   * we need to add to xtime (or xtime corrected for sub jiffie times) @@ -85,6 +90,8 @@ struct timekeeper {  	ktime_t			offs_boot;  	ktime_t			offs_tai;  	s32			tai_offset; +	unsigned int		clock_was_set_seq; +	ktime_t			next_leap_ktime;  	struct timespec64	raw_time;  	/* The following members are for timekeeping internal use */ @@ -104,6 +111,18 @@ struct timekeeper {  	s64			ntp_error;  	u32			ntp_error_shift;  	u32			ntp_err_mult; +#ifdef CONFIG_DEBUG_TIMEKEEPING +	long			last_warning; +	/* +	 * These simple flag variables are managed +	 * without locks, which is racy, but they are +	 * ok since we don't really care about being +	 * super precise about how many events were +	 * seen, just that a problem was observed. +	 */ +	int			underflow_seen; +	int			overflow_seen; +#endif  };  #ifdef CONFIG_GENERIC_TIME_VSYSCALL |