* [tip: timers/core] time/jiffies: Register jiffies clocksource before usage
[not found] <87y0gn3fve.ffs@fw13>
@ 2026-06-13 13:28 ` tip-bot2 for Thomas Gleixner
2026-06-16 18:47 ` Marek Szyprowski
0 siblings, 1 reply; 5+ messages in thread
From: tip-bot2 for Thomas Gleixner @ 2026-06-13 13:28 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Teddy Astie, Thomas Gleixner, stable, x86, linux-kernel
The following commit has been merged into the timers/core branch of tip:
Commit-ID: f24df84cbe05e4471c04ac4b921fc0340bbc7752
Gitweb: https://git.kernel.org/tip/f24df84cbe05e4471c04ac4b921fc0340bbc7752
Author: Thomas Gleixner <tglx@kernel.org>
AuthorDate: Tue, 09 Jun 2026 17:14:45 +02:00
Committer: Thomas Gleixner <tglx@kernel.org>
CommitterDate: Sat, 13 Jun 2026 15:22:40 +02:00
time/jiffies: Register jiffies clocksource before usage
Teddy reported that a XEN HVM has a long boot delay, which was bisected to
the recent enhancements to the negative motion detection. It turned out
that the jiffies clocksource is used in early boot before it is registered,
which leaves the max_delta_raw field at zero. That causes the read out to
be clamped to the max delta of 0, which means time is not making progress.
Cure it by ensuring that it is initialized before its first usage in
timekeeping_init().
Fixes: 76031d9536a0 ("clocksource: Make negative motion detection more robust")
Reported-by: Teddy Astie <teddy.astie@vates.tech>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Tested-by: Teddy Astie <teddy.astie@vates.tech>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/87y0gn3fve.ffs@fw13
Closes: https://lore.kernel.org/all/1780914594.8631fc262581453bbf619ec5b2062170.19ea6c8227b000701b@vates.tech
---
kernel/time/jiffies.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
index 1c954f3..d514288 100644
--- a/kernel/time/jiffies.c
+++ b/kernel/time/jiffies.c
@@ -60,15 +60,14 @@ EXPORT_SYMBOL(get_jiffies_64);
EXPORT_SYMBOL(jiffies);
-static int __init init_jiffies_clocksource(void)
-{
- return __clocksource_register(&clocksource_jiffies);
-}
-
-core_initcall(init_jiffies_clocksource);
+static bool cs_jiffies_registered __initdata;
struct clocksource * __init __weak clocksource_default_clock(void)
{
+ if (!cs_jiffies_registered) {
+ __clocksource_register(&clocksource_jiffies);
+ cs_jiffies_registered = true;
+ }
return &clocksource_jiffies;
}
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [tip: timers/core] time/jiffies: Register jiffies clocksource before usage
2026-06-13 13:28 ` [tip: timers/core] time/jiffies: Register jiffies clocksource before usage tip-bot2 for Thomas Gleixner
@ 2026-06-16 18:47 ` Marek Szyprowski
2026-06-17 14:17 ` Conor Dooley
2026-06-17 15:04 ` Thomas Gleixner
0 siblings, 2 replies; 5+ messages in thread
From: Marek Szyprowski @ 2026-06-16 18:47 UTC (permalink / raw)
To: linux-kernel, linux-tip-commits; +Cc: Teddy Astie, Thomas Gleixner, stable, x86
Dear All,
On 13.06.2026 15:28, tip-bot2 for Thomas Gleixner wrote:
> The following commit has been merged into the timers/core branch of tip:
>
> Commit-ID: f24df84cbe05e4471c04ac4b921fc0340bbc7752
> Gitweb: https://git.kernel.org/tip/f24df84cbe05e4471c04ac4b921fc0340bbc7752
> Author: Thomas Gleixner <tglx@kernel.org>
> AuthorDate: Tue, 09 Jun 2026 17:14:45 +02:00
> Committer: Thomas Gleixner <tglx@kernel.org>
> CommitterDate: Sat, 13 Jun 2026 15:22:40 +02:00
>
> time/jiffies: Register jiffies clocksource before usage
>
> Teddy reported that a XEN HVM has a long boot delay, which was bisected to
> the recent enhancements to the negative motion detection. It turned out
> that the jiffies clocksource is used in early boot before it is registered,
> which leaves the max_delta_raw field at zero. That causes the read out to
> be clamped to the max delta of 0, which means time is not making progress.
>
> Cure it by ensuring that it is initialized before its first usage in
> timekeeping_init().
>
> Fixes: 76031d9536a0 ("clocksource: Make negative motion detection more robust")
> Reported-by: Teddy Astie <teddy.astie@vates.tech>
> Signed-off-by: Thomas Gleixner <tglx@kernel.org>
> Tested-by: Teddy Astie <teddy.astie@vates.tech>
> Cc: stable@vger.kernel.org
> Link: https://patch.msgid.link/87y0gn3fve.ffs@fw13
> Closes: https://lore.kernel.org/all/1780914594.8631fc262581453bbf619ec5b2062170.19ea6c8227b000701b@vates.tech
This patch landed recently in linux-next as commit f24df84cbe05 ("time/jiffies:
Register jiffies clocksource before usage"). In my tests I found that it triggers
the following warning on Qualcomm Robotics RB5 board
(arch/arm64/boot/dts/qcom/qrb5165-rb5.dts):
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
=============================
[ BUG: Invalid wait context ]
7.1.0-rc1+ #16790 Not tainted
-----------------------------
swapper/0/0 is trying to lock:
ffffb0d1364d1270 (clocksource_mutex){....}-{4:4}, at: __clocksource_register_scale+0x204/0x3e8
other info that might help us debug this:
context-{5:5}
1 lock held by swapper/0/0:
#0: ffffb0d1376855f0 (&tkd->lock){....}-{2:2}, at: timekeeping_init+0x13c/0x21c
stack backtrace:
CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 7.1.0-rc1+ #16790 PREEMPT
Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
Call trace:
show_stack+0x18/0x24 (C)
dump_stack_lvl+0x90/0xd0
dump_stack+0x18/0x24
__lock_acquire+0xa48/0x225c
lock_acquire+0x1c4/0x3f0
__mutex_lock+0xa8/0x8e4
mutex_lock_nested+0x24/0x30
__clocksource_register_scale+0x204/0x3e8
clocksource_default_clock+0x48/0x64
timekeeping_init+0x148/0x21c
start_kernel+0x4c8/0x8dc
__primary_switched+0x88/0x90
arch_timer: cp15 timer running at 19.20MHz (virt).
clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
Reverting $subject on top of linux-next fixes this issue.
> ---
> kernel/time/jiffies.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c
> index 1c954f3..d514288 100644
> --- a/kernel/time/jiffies.c
> +++ b/kernel/time/jiffies.c
> @@ -60,15 +60,14 @@ EXPORT_SYMBOL(get_jiffies_64);
>
> EXPORT_SYMBOL(jiffies);
>
> -static int __init init_jiffies_clocksource(void)
> -{
> - return __clocksource_register(&clocksource_jiffies);
> -}
> -
> -core_initcall(init_jiffies_clocksource);
> +static bool cs_jiffies_registered __initdata;
>
> struct clocksource * __init __weak clocksource_default_clock(void)
> {
> + if (!cs_jiffies_registered) {
> + __clocksource_register(&clocksource_jiffies);
> + cs_jiffies_registered = true;
> + }
> return &clocksource_jiffies;
> }
>
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [tip: timers/core] time/jiffies: Register jiffies clocksource before usage
2026-06-16 18:47 ` Marek Szyprowski
@ 2026-06-17 14:17 ` Conor Dooley
2026-06-17 15:04 ` Thomas Gleixner
2026-06-17 15:04 ` Thomas Gleixner
1 sibling, 1 reply; 5+ messages in thread
From: Conor Dooley @ 2026-06-17 14:17 UTC (permalink / raw)
To: Marek Szyprowski
Cc: linux-kernel, linux-tip-commits, Teddy Astie, Thomas Gleixner,
stable, x86
[-- Attachment #1: Type: text/plain, Size: 5226 bytes --]
On Tue, Jun 16, 2026 at 08:47:00PM +0200, Marek Szyprowski wrote:
> Dear All,
>
> On 13.06.2026 15:28, tip-bot2 for Thomas Gleixner wrote:
> > The following commit has been merged into the timers/core branch of tip:
> >
> > Commit-ID: f24df84cbe05e4471c04ac4b921fc0340bbc7752
> > Gitweb: https://git.kernel.org/tip/f24df84cbe05e4471c04ac4b921fc0340bbc7752
> > Author: Thomas Gleixner <tglx@kernel.org>
> > AuthorDate: Tue, 09 Jun 2026 17:14:45 +02:00
> > Committer: Thomas Gleixner <tglx@kernel.org>
> > CommitterDate: Sat, 13 Jun 2026 15:22:40 +02:00
> >
> > time/jiffies: Register jiffies clocksource before usage
> >
> > Teddy reported that a XEN HVM has a long boot delay, which was bisected to
> > the recent enhancements to the negative motion detection. It turned out
> > that the jiffies clocksource is used in early boot before it is registered,
> > which leaves the max_delta_raw field at zero. That causes the read out to
> > be clamped to the max delta of 0, which means time is not making progress.
> >
> > Cure it by ensuring that it is initialized before its first usage in
> > timekeeping_init().
> >
> > Fixes: 76031d9536a0 ("clocksource: Make negative motion detection more robust")
> > Reported-by: Teddy Astie <teddy.astie@vates.tech>
> > Signed-off-by: Thomas Gleixner <tglx@kernel.org>
> > Tested-by: Teddy Astie <teddy.astie@vates.tech>
> > Cc: stable@vger.kernel.org
> > Link: https://patch.msgid.link/87y0gn3fve.ffs@fw13
> > Closes: https://lore.kernel.org/all/1780914594.8631fc262581453bbf619ec5b2062170.19ea6c8227b000701b@vates.tech
> This patch landed recently in linux-next as commit f24df84cbe05 ("time/jiffies:
> Register jiffies clocksource before usage"). In my tests I found that it triggers
> the following warning on Qualcomm Robotics RB5 board
> (arch/arm64/boot/dts/qcom/qrb5165-rb5.dts):
>
> clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
>
> =============================
> [ BUG: Invalid wait context ]
> 7.1.0-rc1+ #16790 Not tainted
> -----------------------------
> swapper/0/0 is trying to lock:
> ffffb0d1364d1270 (clocksource_mutex){....}-{4:4}, at: __clocksource_register_scale+0x204/0x3e8
> other info that might help us debug this:
> context-{5:5}
> 1 lock held by swapper/0/0:
> #0: ffffb0d1376855f0 (&tkd->lock){....}-{2:2}, at: timekeeping_init+0x13c/0x21c
> stack backtrace:
> CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 7.1.0-rc1+ #16790 PREEMPT
> Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
> Call trace:
> show_stack+0x18/0x24 (C)
> dump_stack_lvl+0x90/0xd0
> dump_stack+0x18/0x24
> __lock_acquire+0xa48/0x225c
> lock_acquire+0x1c4/0x3f0
> __mutex_lock+0xa8/0x8e4
> mutex_lock_nested+0x24/0x30
> __clocksource_register_scale+0x204/0x3e8
> clocksource_default_clock+0x48/0x64
> timekeeping_init+0x148/0x21c
> start_kernel+0x4c8/0x8dc
> __primary_switched+0x88/0x90
> arch_timer: cp15 timer running at 19.20MHz (virt).
> clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
>
>
> Reverting $subject on top of linux-next fixes this issue.
Same here:
0.000000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.000000]
[ 0.000000] =============================
[ 0.000000] [ BUG: Invalid wait context ]
[ 0.000000] 7.1.0-06889-g4b99990cdf95 #1 Tainted: G W
[ 0.000000] -----------------------------
[ 0.000000] swapper/0/0 is trying to lock:
[ 0.000000] ffffffff820cd258 (clocksource_mutex){....}-{4:4}, at: __clocksource_register_scale+0x222/0x306
[ 0.000000] other info that might help us debug this:
[ 0.000000] context-{5:5}
[ 0.000000] 1 lock held by swapper/0/0:
[ 0.000000] #0: ffffffff82fdae70 (&tkd->lock){....}-{2:2}, at: timekeeping_init+0x1a4/0x25e
[ 0.000000] stack backtrace:
[ 0.000000] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G W 7.1.0-06889-g4b99990cdf95 #1 PREEMPT_RT
[ 0.000000] Tainted: [W]=WARN
[ 0.000000] Hardware name: Microchip PolarFire-SoC Icicle Kit (DT)
[ 0.000000] Call Trace:
[ 0.000000] [<ffffffff8001c0e0>] dump_backtrace+0x1c/0x24
[ 0.000000] [<ffffffff80002526>] show_stack+0x28/0x34
[ 0.000000] [<ffffffff800135a0>] dump_stack_lvl+0x60/0x88
[ 0.000000] [<ffffffff800135dc>] dump_stack+0x14/0x1c
[ 0.000000] [<ffffffff800bb096>] __lock_acquire+0x81c/0x234e
[ 0.000000] [<ffffffff800bd924>] lock_acquire+0x2e0/0x460
[ 0.000000] [<ffffffff80d61d46>] mutex_lock_nested+0x44/0x8a
[ 0.000000] [<ffffffff8012e704>] __clocksource_register_scale+0x222/0x306
[ 0.000000] [<ffffffff80e15572>] clocksource_default_clock+0x48/0x62
[ 0.000000] [<ffffffff80e15286>] timekeeping_init+0x1b6/0x25e
[ 0.000000] [<ffffffff80e00f9c>] start_kernel+0x67c/0xc66
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
In your case, do you also see an increase in logging verbosity, as if
you had enabled debug on your commandline?
Cheers,
Conor.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [tip: timers/core] time/jiffies: Register jiffies clocksource before usage
2026-06-16 18:47 ` Marek Szyprowski
2026-06-17 14:17 ` Conor Dooley
@ 2026-06-17 15:04 ` Thomas Gleixner
1 sibling, 0 replies; 5+ messages in thread
From: Thomas Gleixner @ 2026-06-17 15:04 UTC (permalink / raw)
To: Marek Szyprowski, linux-kernel, linux-tip-commits
Cc: Teddy Astie, stable, x86
On Tue, Jun 16 2026 at 20:47, Marek Szyprowski wrote:
> On 13.06.2026 15:28, tip-bot2 for Thomas Gleixner wrote:
>> The following commit has been merged into the timers/core branch of tip:
>>
>> Commit-ID: f24df84cbe05e4471c04ac4b921fc0340bbc7752
>> Gitweb: https://git.kernel.org/tip/f24df84cbe05e4471c04ac4b921fc0340bbc7752
>> Author: Thomas Gleixner <tglx@kernel.org>
>> AuthorDate: Tue, 09 Jun 2026 17:14:45 +02:00
>> Committer: Thomas Gleixner <tglx@kernel.org>
>> CommitterDate: Sat, 13 Jun 2026 15:22:40 +02:00
>>
>> time/jiffies: Register jiffies clocksource before usage
>>
>> Teddy reported that a XEN HVM has a long boot delay, which was bisected to
>> the recent enhancements to the negative motion detection. It turned out
>> that the jiffies clocksource is used in early boot before it is registered,
>> which leaves the max_delta_raw field at zero. That causes the read out to
>> be clamped to the max delta of 0, which means time is not making progress.
>>
>> Cure it by ensuring that it is initialized before its first usage in
>> timekeeping_init().
>>
>> Fixes: 76031d9536a0 ("clocksource: Make negative motion detection more robust")
>> Reported-by: Teddy Astie <teddy.astie@vates.tech>
>> Signed-off-by: Thomas Gleixner <tglx@kernel.org>
>> Tested-by: Teddy Astie <teddy.astie@vates.tech>
>> Cc: stable@vger.kernel.org
>> Link: https://patch.msgid.link/87y0gn3fve.ffs@fw13
>> Closes: https://lore.kernel.org/all/1780914594.8631fc262581453bbf619ec5b2062170.19ea6c8227b000701b@vates.tech
> This patch landed recently in linux-next as commit f24df84cbe05 ("time/jiffies:
> Register jiffies clocksource before usage"). In my tests I found that it triggers
> the following warning on Qualcomm Robotics RB5 board
> (arch/arm64/boot/dts/qcom/qrb5165-rb5.dts):
Fix is queued already.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [tip: timers/core] time/jiffies: Register jiffies clocksource before usage
2026-06-17 14:17 ` Conor Dooley
@ 2026-06-17 15:04 ` Thomas Gleixner
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Gleixner @ 2026-06-17 15:04 UTC (permalink / raw)
To: Conor Dooley, Marek Szyprowski
Cc: linux-kernel, linux-tip-commits, Teddy Astie, stable, x86
On Wed, Jun 17 2026 at 15:17, Conor Dooley wrote:
> On Tue, Jun 16, 2026 at 08:47:00PM +0200, Marek Szyprowski wrote:
> Same here:
Fix is queued
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-06-17 15:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <87y0gn3fve.ffs@fw13>
2026-06-13 13:28 ` [tip: timers/core] time/jiffies: Register jiffies clocksource before usage tip-bot2 for Thomas Gleixner
2026-06-16 18:47 ` Marek Szyprowski
2026-06-17 14:17 ` Conor Dooley
2026-06-17 15:04 ` Thomas Gleixner
2026-06-17 15:04 ` Thomas Gleixner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox