mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "tip-bot2 for Thomas Gleixner" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
	John Stultz <jstultz@google.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: timers/ptp] timekeeping: Add clock_valid flag to timekeeper
Date: Wed, 25 Jun 2025 16:15:59 -0000	[thread overview]
Message-ID: <175086815928.406.5307674642753629647.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20250519083026.287145536@linutronix.de>

The following commit has been merged into the timers/ptp branch of tip:

Commit-ID:     6168024604236cb2bb1004ea8459c8ece2c4ef5f
Gitweb:        https://git.kernel.org/tip/6168024604236cb2bb1004ea8459c8ece2c4ef5f
Author:        Thomas Gleixner <tglx@linutronix.de>
AuthorDate:    Mon, 19 May 2025 10:33:27 +02:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Thu, 19 Jun 2025 14:28:23 +02:00

timekeeping: Add clock_valid flag to timekeeper

In preparation for supporting independent auxiliary timekeepers, add a
clock valid field and set it to true for the system timekeeper.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/all/20250519083026.287145536@linutronix.de


---
 include/linux/timekeeper_internal.h | 2 ++
 kernel/time/timekeeping.c           | 5 +++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/include/linux/timekeeper_internal.h b/include/linux/timekeeper_internal.h
index 4201ae8..1690eda 100644
--- a/include/linux/timekeeper_internal.h
+++ b/include/linux/timekeeper_internal.h
@@ -73,6 +73,7 @@ struct tk_read_base {
  * @raw_sec:			CLOCK_MONOTONIC_RAW  time in seconds
  * @clock_was_set_seq:		The sequence number of clock was set events
  * @cs_was_changed_seq:		The sequence number of clocksource change events
+ * @clock_valid:		Indicator for valid clock
  * @monotonic_to_boot:		CLOCK_MONOTONIC to CLOCK_BOOTTIME offset
  * @cycle_interval:		Number of clock cycles in one NTP interval
  * @xtime_interval:		Number of clock shifted nano seconds in one NTP
@@ -149,6 +150,7 @@ struct timekeeper {
 	/* Cachline 3 and 4 (timekeeping internal variables): */
 	unsigned int		clock_was_set_seq;
 	u8			cs_was_changed_seq;
+	u8			clock_valid;
 
 	struct timespec64	monotonic_to_boot;
 
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index e3c1a1c..bf59bac 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -1665,11 +1665,12 @@ read_persistent_wall_and_boot_offset(struct timespec64 *wall_time,
 	*boot_offset = ns_to_timespec64(local_clock());
 }
 
-static __init void tkd_basic_setup(struct tk_data *tkd, enum timekeeper_ids tk_id)
+static __init void tkd_basic_setup(struct tk_data *tkd, enum timekeeper_ids tk_id, bool valid)
 {
 	raw_spin_lock_init(&tkd->lock);
 	seqcount_raw_spinlock_init(&tkd->seq, &tkd->lock);
 	tkd->timekeeper.id = tkd->shadow_timekeeper.id = tk_id;
+	tkd->timekeeper.clock_valid = tkd->shadow_timekeeper.clock_valid = valid;
 }
 
 /*
@@ -1699,7 +1700,7 @@ void __init timekeeping_init(void)
 	struct timekeeper *tks = &tk_core.shadow_timekeeper;
 	struct clocksource *clock;
 
-	tkd_basic_setup(&tk_core, TIMEKEEPER_CORE);
+	tkd_basic_setup(&tk_core, TIMEKEEPER_CORE, true);
 
 	read_persistent_wall_and_boot_offset(&wall_time, &boot_offset);
 	if (timespec64_valid_settod(&wall_time) &&

  parent reply	other threads:[~2025-06-25 16:16 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-19  8:33 [patch V2 00/26] timekeeping: Provide support for auxiliary timekeepers Thomas Gleixner
2025-05-19  8:33 ` [patch V2 01/26] timekeeping: Remove hardcoded access to tk_core Thomas Gleixner
2025-06-12 22:34   ` John Stultz
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 02/26] timekeeping: Cleanup kernel doc of __ktime_get_real_seconds() Thomas Gleixner
2025-06-12 22:36   ` John Stultz
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 03/26] timekeeping: Avoid double notification in do_adjtimex() Thomas Gleixner
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 04/26] timekeeping: Introduce timekeeper ID Thomas Gleixner
2025-06-13  0:03   ` John Stultz
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Anna-Maria Behnsen
2025-05-19  8:33 ` [patch V2 05/26] time: Introduce auxiliary POSIX clocks Thomas Gleixner
2025-06-13  0:06   ` John Stultz
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Anna-Maria Behnsen
2025-05-19  8:33 ` [patch V2 06/26] ntp: Add support for auxiliary timekeepers Thomas Gleixner
2025-06-13  0:14   ` John Stultz
2025-06-13  6:32   ` Thomas Weißschuh
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 07/26] ntp: Add timekeeper ID arguments to public functions Thomas Gleixner
2025-06-13  0:20   ` John Stultz
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 08/26] ntp: Rename __do_adjtimex() to ntp_adjtimex() Thomas Gleixner
2025-06-13  0:20   ` John Stultz
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 09/26] timekeeping: Make __timekeeping_advance() reusable Thomas Gleixner
2025-06-13  0:23   ` John Stultz
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Anna-Maria Behnsen
2025-05-19  8:33 ` [patch V2 10/26] timekeeping: Prepare timekeeping_update_from_shadow() Thomas Gleixner
2025-06-25 16:16   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 11/26] timekeeping: Add clock_valid flag to timekeeper Thomas Gleixner
2025-06-13  4:05   ` John Stultz
2025-06-25 16:15   ` tip-bot2 for Thomas Gleixner [this message]
2025-05-19  8:33 ` [patch V2 12/26] timekeeping: Introduce auxiliary timekeepers Thomas Gleixner
2025-06-14  2:41   ` John Stultz
2025-06-25 16:15   ` [tip: timers/ptp] " tip-bot2 for Anna-Maria Behnsen
2025-05-19  8:33 ` [patch V2 13/26] timekeeping: Provide ktime_get_ntp_seconds() Thomas Gleixner
2025-06-25 16:15   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 14/26] ntp: Use ktime_get_ntp_seconds() Thomas Gleixner
2025-06-25 16:15   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 15/26] timekeeping: Add AUX offset to struct timekeeper Thomas Gleixner
2025-06-14  2:44   ` John Stultz
2025-06-25 16:15   ` [tip: timers/ptp] " tip-bot2 for Thomas Gleixner
2025-05-19  8:33 ` [patch V2 16/26] timekeeping: Update auxiliary timekeepers on clocksource change Thomas Gleixner
2025-05-19  8:33 ` [patch V2 17/26] timekeeping: Provide time getters for auxiliary clocks Thomas Gleixner
2025-06-14  2:51   ` John Stultz
2025-06-14  7:18     ` Thomas Gleixner
2025-05-19  8:33 ` [patch V2 18/26] timekeeping: Add minimal posix-timers support " Thomas Gleixner
2025-05-19  8:33 ` [patch V2 19/26] timekeeping: Provide time setter " Thomas Gleixner
2025-05-19  8:33 ` [patch V2 20/26] timekeeping: Make timekeeping_inject_offset() reusable Thomas Gleixner
2025-05-19  8:33 ` [patch V2 21/26] timekeeping: Add auxiliary clock support to __timekeeping_inject_offset() Thomas Gleixner
2025-05-19  8:33 ` [patch V2 22/26] timekeeping: Make do_adjtimex() reusable Thomas Gleixner
2025-05-19  8:33 ` [patch V2 23/26] timekeeping: Prepare do_adtimex() for auxiliary clocks Thomas Gleixner
2025-05-19  8:33 ` [patch V2 24/26] timekeeping: Provide adjtimex() " Thomas Gleixner
2025-05-19  8:33 ` [patch V2 25/26] timekeeping: Provide update for auxiliary timekeepers Thomas Gleixner
2025-05-19  8:33 ` [patch V2 26/26] timekeeping: Provide interface to control auxiliary clocks Thomas Gleixner
2025-06-13  7:18   ` Thomas Weißschuh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=175086815928.406.5307674642753629647.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=jstultz@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®