Re: [RFC PATCH] drivers: char: Add a dynamic clock for the traceclock

From: Steven Rostedt
Date: Wed Dec 11 2013 - 20:49:16 EST


On Wed, 11 Dec 2013 17:17:30 -0800
Sonny Rao <sonnyrao@xxxxxxxxxxxx> wrote:

> On Wed, Dec 11, 2013 at 11:30 AM, Stephane Eranian <eranian@xxxxxxxxxx> wrote:
> > Sonny,
> >
> > Your patch has a couple of problems for me:
> > - requires CONFIG_TRACING
> >
> > You should directly invoke getrawmonotonic()
> > and inline the code from trace_clock_getres().
> >
> > That's how I managed to compile your kernel module on my system.
>
> You need the changes in kernel/trace/trace.c which is why it's
> dependent on CONFIG_TRACING.
> If we put those functions elsewhere we could remove that dependency,
> but it sounds like people want to just fix the clock that perf uses so
> that it's exportable and not handle this with something like this
> patch, which is better.

I have no issue moving the trace_clock.c code into lib/ and we can add
a CONFIG_TRACE_CLOCK option that can be set by perf and ftrace.

>
> Also, we should ensure that perf and ftrace are guaranteed to use the
> same clock, I think it just happens to be the same right now.

ftrace has several clocks that it uses:

o local - basically sched_clock()
o global - something like hpet that is monotonic across CPUs but slower
o counter - a simple atomic counter (no time associated to it)
o uptime - jiffy counter
o perf - trace_clock, which is what perf uses
o x86_tsc - the raw tsc counter.

# cat /sys/kernel/debug/trace_clock
[local] global counter uptime perf x86-tsc

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/