Messages in this thread | | | Date | Fri, 8 May 2015 10:41:20 -0400 | From | Steven Rostedt <> | Subject | Re: [PATCHv3] ftrace: Provide trace clock monotonic raw |
| |
On Fri, 8 May 2015 07:30:39 -0700 Drew Richardson <drew.richardson@arm.com> wrote:
> Expose the NMI safe accessor to the monotonic raw clock to the > tracer. The mono clock was added with commit > 1b3e5c0936046e7e023149ddc8946d21c2ea20eb. The advantage of the > monotonic raw clock is that it will advance more constantly than the > monotonic clock. > > Imagine someone is trying to optimize a particular program to reduce > instructions executed for a given workload while minimizing the effect > on runtime. Also suppose that NTP is running and potentially making > larger adjustments to the monotonic clock. If NTP is adjusting the > monotonic clock to advance more rapidly, the program will appear to > use fewer instructions per second but run longer than if the monotonic > raw clock had been used. The total number of instructions observed > would be the same regardless of the clock source used, but how it's > attributed to time would be affected. > > Conversely if NTP is adjusting the monotonic clock to advance more > slowly, the program will appear to use more instructions per second > but run more quickly. Of course there are many sources that can cause > jitter in performance measurements on modern processors, but let's > remove NTP from the list. > > The monotonic raw clock can also be useful for tracing early boot, > e.g. when debugging issues with NTP. >
Peter, Thomas, John, you OK with this?
-- Steve
> Signed-off-by: Drew Richardson <drew.richardson@arm.com> > Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> > --- > kernel/trace/trace.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > index 05330494a0df..458031c31a37 100644 > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -876,6 +876,7 @@ static struct { > { trace_clock_jiffies, "uptime", 0 }, > { trace_clock, "perf", 1 }, > { ktime_get_mono_fast_ns, "mono", 1 }, > + { ktime_get_raw_fast_ns, "mono_raw", 1 }, > ARCH_TRACE_CLOCKS > }; >
| |