summaryrefslogtreecommitdiff
path: root/include/linux/timekeeper_internal.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-11-29 09:11:24 +0300
committerIngo Molnar <mingo@kernel.org>2017-11-29 09:11:24 +0300
commit4fc31ba13d052c2933bf91095c063cf9a39effd0 (patch)
treebeabb73c2fe245e6541126732895da62e55bc8ee /include/linux/timekeeper_internal.h
parent0e18dd12064e07519f7cbff4149ca7fff620cbed (diff)
parentb29c6ef7bb1257853c1e31616d84f55e561cf631 (diff)
downloadlinux-4fc31ba13d052c2933bf91095c063cf9a39effd0.tar.xz
Merge branch 'linus' into perf/urgent, to pick up dependent commits
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/timekeeper_internal.h')
-rw-r--r--include/linux/timekeeper_internal.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/timekeeper_internal.h b/include/linux/timekeeper_internal.h
index 97154c61e5d2..7e9011101cb0 100644
--- a/include/linux/timekeeper_internal.h
+++ b/include/linux/timekeeper_internal.h
@@ -14,19 +14,22 @@
/**
* struct tk_read_base - base structure for timekeeping readout
* @clock: Current clocksource used for timekeeping.
- * @read: Read function of @clock
* @mask: Bitmask for two's complement subtraction of non 64bit clocks
* @cycle_last: @clock cycle value at last update
* @mult: (NTP adjusted) multiplier for scaled math conversion
* @shift: Shift value for scaled math conversion
* @xtime_nsec: Shifted (fractional) nano seconds offset for readout
* @base: ktime_t (nanoseconds) base time for readout
+ * @base_real: Nanoseconds base value for clock REALTIME readout
*
* This struct has size 56 byte on 64 bit. Together with a seqcount it
* occupies a single 64byte cache line.
*
* The struct is separate from struct timekeeper as it is also used
* for a fast NMI safe accessors.
+ *
+ * @base_real is for the fast NMI safe accessor to allow reading clock
+ * realtime from any context.
*/
struct tk_read_base {
struct clocksource *clock;
@@ -36,6 +39,7 @@ struct tk_read_base {
u32 shift;
u64 xtime_nsec;
ktime_t base;
+ u64 base_real;
};
/**