From: "tip-bot2 for Anna-Maria Behnsen" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: "Anna-Maria Behnsen" <anna-maria@linutronix.de>,
Thomas Gleixner <tglx@linutronix.de>,
John Stultz <jstultz@google.com>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: timers/ptp] timekeeping: Introduce auxiliary timekeepers
Date: Wed, 25 Jun 2025 16:15:58 -0000 [thread overview]
Message-ID: <175086815823.406.4007639365671610452.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20250519083026.350061049@linutronix.de>
The following commit has been merged into the timers/ptp branch of tip:
Commit-ID: 22c62b9a84b8f16ca0277e133a0cd62a259fee7c
Gitweb: https://git.kernel.org/tip/22c62b9a84b8f16ca0277e133a0cd62a259fee7c
Author: Anna-Maria Behnsen <anna-maria@linutronix.de>
AuthorDate: Mon, 19 May 2025 10:33:28 +02:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Thu, 19 Jun 2025 14:28:23 +02:00
timekeeping: Introduce auxiliary timekeepers
Provide timekeepers for auxiliary clocks and initialize them during
boot.
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/all/20250519083026.350061049@linutronix.de
---
kernel/time/timekeeping.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index bf59bac..19f4af1 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -53,7 +53,11 @@ struct tk_data {
raw_spinlock_t lock;
} ____cacheline_aligned;
-static struct tk_data tk_core;
+static struct tk_data timekeeper_data[TIMEKEEPERS_MAX];
+
+/* The core timekeeper */
+#define tk_core (timekeeper_data[TIMEKEEPER_CORE])
+
/* flag for if timekeeping is suspended */
int __read_mostly timekeeping_suspended;
@@ -113,6 +117,12 @@ static struct tk_fast tk_fast_raw ____cacheline_aligned = {
.base[1] = FAST_TK_INIT,
};
+#ifdef CONFIG_POSIX_AUX_CLOCKS
+static __init void tk_aux_setup(void);
+#else
+static inline void tk_aux_setup(void) { }
+#endif
+
unsigned long timekeeper_lock_irqsave(void)
{
unsigned long flags;
@@ -1589,7 +1599,6 @@ void ktime_get_raw_ts64(struct timespec64 *ts)
}
EXPORT_SYMBOL(ktime_get_raw_ts64);
-
/**
* timekeeping_valid_for_hres - Check if timekeeping is suitable for hres
*/
@@ -1701,6 +1710,7 @@ void __init timekeeping_init(void)
struct clocksource *clock;
tkd_basic_setup(&tk_core, TIMEKEEPER_CORE, true);
+ tk_aux_setup();
read_persistent_wall_and_boot_offset(&wall_time, &boot_offset);
if (timespec64_valid_settod(&wall_time) &&
@@ -2630,3 +2640,11 @@ void hardpps(const struct timespec64 *phase_ts, const struct timespec64 *raw_ts)
}
EXPORT_SYMBOL(hardpps);
#endif /* CONFIG_NTP_PPS */
+
+#ifdef CONFIG_POSIX_AUX_CLOCKS
+static __init void tk_aux_setup(void)
+{
+ for (int i = TIMEKEEPER_AUX_FIRST; i <= TIMEKEEPER_AUX_LAST; i++)
+ tkd_basic_setup(&timekeeper_data[i], i, false);
+}
+#endif /* CONFIG_POSIX_AUX_CLOCKS */
next prev 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 " 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: timers/ptp] " tip-bot2 for Thomas Gleixner
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-bot2 for Anna-Maria Behnsen [this message]
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=175086815823.406.4007639365671610452.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=anna-maria@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®