Skip to content

Commit 90be8d6

Browse files
committed
timekeeping: Consolidate fast timekeeper
Provide a inline function which replaces the copy & pasta. Signed-off-by: Thomas Gleixner <[email protected]> Acked-by: Peter Zijlstra (Intel) <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent eff4849 commit 90be8d6

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

kernel/time/timekeeping.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,14 @@ static void update_fast_timekeeper(const struct tk_read_base *tkr,
429429
memcpy(base + 1, base, sizeof(*base));
430430
}
431431

432+
static __always_inline u64 fast_tk_get_delta_ns(struct tk_read_base *tkr)
433+
{
434+
u64 delta, cycles = tk_clock_read(tkr);
435+
436+
delta = clocksource_delta(cycles, tkr->cycle_last, tkr->mask);
437+
return timekeeping_delta_to_ns(tkr, delta);
438+
}
439+
432440
static __always_inline u64 __ktime_get_fast_ns(struct tk_fast *tkf)
433441
{
434442
struct tk_read_base *tkr;
@@ -439,12 +447,7 @@ static __always_inline u64 __ktime_get_fast_ns(struct tk_fast *tkf)
439447
seq = raw_read_seqcount_latch(&tkf->seq);
440448
tkr = tkf->base + (seq & 0x01);
441449
now = ktime_to_ns(tkr->base);
442-
443-
now += timekeeping_delta_to_ns(tkr,
444-
clocksource_delta(
445-
tk_clock_read(tkr),
446-
tkr->cycle_last,
447-
tkr->mask));
450+
now += fast_tk_get_delta_ns(tkr);
448451
} while (read_seqcount_latch_retry(&tkf->seq, seq));
449452

450453
return now;
@@ -560,10 +563,7 @@ static __always_inline u64 __ktime_get_real_fast(struct tk_fast *tkf, u64 *mono)
560563
tkr = tkf->base + (seq & 0x01);
561564
basem = ktime_to_ns(tkr->base);
562565
baser = ktime_to_ns(tkr->base_real);
563-
564-
delta = timekeeping_delta_to_ns(tkr,
565-
clocksource_delta(tk_clock_read(tkr),
566-
tkr->cycle_last, tkr->mask));
566+
delta = fast_tk_get_delta_ns(tkr);
567567
} while (read_seqcount_latch_retry(&tkf->seq, seq));
568568

569569
if (mono)

0 commit comments

Comments
 (0)