Commit e98ab3d4 authored by Adrian Hunter's avatar Adrian Hunter Committed by Thomas Gleixner

timekeeping: Move timekeeping helper functions

Move timekeeping helper functions to prepare for their reuse.
Suggested-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20240325064023.2997-10-adrian.hunter@intel.com
parent 7e90ffb7
...@@ -381,23 +381,31 @@ static inline u64 timekeeping_delta_to_ns(const struct tk_read_base *tkr, u64 de ...@@ -381,23 +381,31 @@ static inline u64 timekeeping_delta_to_ns(const struct tk_read_base *tkr, u64 de
return nsec; return nsec;
} }
static inline u64 timekeeping_get_ns(const struct tk_read_base *tkr) static inline u64 timekeeping_cycles_to_ns(const struct tk_read_base *tkr, u64 cycles)
{ {
u64 delta; u64 delta;
delta = timekeeping_get_delta(tkr); /* calculate the delta since the last update_wall_time */
delta = clocksource_delta(cycles, tkr->cycle_last, tkr->mask);
return timekeeping_delta_to_ns(tkr, delta); return timekeeping_delta_to_ns(tkr, delta);
} }
static inline u64 timekeeping_cycles_to_ns(const struct tk_read_base *tkr, u64 cycles) static __always_inline u64 fast_tk_get_delta_ns(struct tk_read_base *tkr)
{ {
u64 delta; u64 delta, cycles = tk_clock_read(tkr);
/* calculate the delta since the last update_wall_time */
delta = clocksource_delta(cycles, tkr->cycle_last, tkr->mask); delta = clocksource_delta(cycles, tkr->cycle_last, tkr->mask);
return timekeeping_delta_to_ns(tkr, delta); return timekeeping_delta_to_ns(tkr, delta);
} }
static inline u64 timekeeping_get_ns(const struct tk_read_base *tkr)
{
u64 delta;
delta = timekeeping_get_delta(tkr);
return timekeeping_delta_to_ns(tkr, delta);
}
/** /**
* update_fast_timekeeper - Update the fast and NMI safe monotonic timekeeper. * update_fast_timekeeper - Update the fast and NMI safe monotonic timekeeper.
* @tkr: Timekeeping readout base from which we take the update * @tkr: Timekeeping readout base from which we take the update
...@@ -431,14 +439,6 @@ static void update_fast_timekeeper(const struct tk_read_base *tkr, ...@@ -431,14 +439,6 @@ static void update_fast_timekeeper(const struct tk_read_base *tkr,
memcpy(base + 1, base, sizeof(*base)); memcpy(base + 1, base, sizeof(*base));
} }
static __always_inline u64 fast_tk_get_delta_ns(struct tk_read_base *tkr)
{
u64 delta, cycles = tk_clock_read(tkr);
delta = clocksource_delta(cycles, tkr->cycle_last, tkr->mask);
return timekeeping_delta_to_ns(tkr, delta);
}
static __always_inline u64 __ktime_get_fast_ns(struct tk_fast *tkf) static __always_inline u64 __ktime_get_fast_ns(struct tk_fast *tkf)
{ {
struct tk_read_base *tkr; struct tk_read_base *tkr;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment