tracing: Unify the "boot" and "mono" tracing clocks

Unify the "boot" and "mono" tracing clocks and document the new behaviour.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Kevin Easton <kevin@guarana.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/20180301165150.489635255@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Thomas Gleixner 2018-03-01 17:33:38 +01:00 committed by Ingo Molnar
parent 127bfa5f43
commit 92af4dcb4e
3 changed files with 4 additions and 18 deletions

View File

@ -449,17 +449,9 @@ of ftrace. Here is a list of some of the key files:
which is montonic but is not subject to any rate adjustments which is montonic but is not subject to any rate adjustments
and ticks at the same rate as the hardware clocksource. and ticks at the same rate as the hardware clocksource.
boot: This is the boot clock (CLOCK_BOOTTIME) and is based on the boot: Same as mono. Used to be a separate clock which accounted
fast monotonic clock, but also accounts for time spent in for the time spent in suspend while CLOCK_MONOTONIC did
suspend. Since the clock access is designed for use in not.
tracing in the suspend path, some side effects are possible
if clock is accessed after the suspend time is accounted before
the fast mono clock is updated. In this case, the clock update
appears to happen slightly sooner than it normally would have.
Also on 32-bit systems, it's possible that the 64-bit boot offset
sees a partial update. These effects are rare and post
processing should be able to handle them. See comments in the
ktime_get_boot_fast_ns() function for more information.
To set a clock, simply echo the clock name into this file. To set a clock, simply echo the clock name into this file.

View File

@ -113,12 +113,6 @@ extern u64 ktime_get_mono_fast_ns(void);
extern u64 ktime_get_raw_fast_ns(void); extern u64 ktime_get_raw_fast_ns(void);
extern u64 ktime_get_real_fast_ns(void); extern u64 ktime_get_real_fast_ns(void);
/* Clock BOOTTIME compatibility wrappers */
static inline u64 ktime_get_boot_fast_ns(void)
{
return ktime_get_mono_fast_ns();
}
/* /*
* timespec64 interfaces utilizing the ktime based ones * timespec64 interfaces utilizing the ktime based ones
*/ */

View File

@ -1164,7 +1164,7 @@ static struct {
{ trace_clock, "perf", 1 }, { trace_clock, "perf", 1 },
{ ktime_get_mono_fast_ns, "mono", 1 }, { ktime_get_mono_fast_ns, "mono", 1 },
{ ktime_get_raw_fast_ns, "mono_raw", 1 }, { ktime_get_raw_fast_ns, "mono_raw", 1 },
{ ktime_get_boot_fast_ns, "boot", 1 }, { ktime_get_mono_fast_ns, "boot", 1 },
ARCH_TRACE_CLOCKS ARCH_TRACE_CLOCKS
}; };