Skip to content

Commit 8c782ac

Browse files
committed
timekeeping: Prepare timekeeping_update_from_shadow()
Don't invoke the VDSO and paravirt updates when utilized for auxiliary clocks. This is a temporary workaround until the VDSO and paravirt interfaces have been worked out. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250519083026.223876435@linutronix.de
1 parent 926ad47 commit 8c782ac

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

kernel/time/timekeeping.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -683,13 +683,15 @@ static void timekeeping_update_from_shadow(struct tk_data *tkd, unsigned int act
683683

684684
tk_update_leap_state(tk);
685685
tk_update_ktime_data(tk);
686+
tk->tkr_mono.base_real = tk->tkr_mono.base + tk->offs_real;
686687

687-
update_vsyscall(tk);
688-
update_pvclock_gtod(tk, action & TK_CLOCK_WAS_SET);
688+
if (tk->id == TIMEKEEPER_CORE) {
689+
update_vsyscall(tk);
690+
update_pvclock_gtod(tk, action & TK_CLOCK_WAS_SET);
689691

690-
tk->tkr_mono.base_real = tk->tkr_mono.base + tk->offs_real;
691-
update_fast_timekeeper(&tk->tkr_mono, &tk_fast_mono);
692-
update_fast_timekeeper(&tk->tkr_raw, &tk_fast_raw);
692+
update_fast_timekeeper(&tk->tkr_mono, &tk_fast_mono);
693+
update_fast_timekeeper(&tk->tkr_raw, &tk_fast_raw);
694+
}
693695

694696
if (action & TK_CLOCK_WAS_SET)
695697
tk->clock_was_set_seq++;

0 commit comments

Comments
 (0)