Messages in this thread | | | From | Sonny Rao <> | Date | Wed, 11 Dec 2013 18:06:06 -0800 | Subject | Re: [RFC PATCH] drivers: char: Add a dynamic clock for the trace clock |
| |
On Wed, Dec 11, 2013 at 5:49 PM, Steven Rostedt <rostedt@goodmis.org> wrote: > On Wed, 11 Dec 2013 17:17:30 -0800 > Sonny Rao <sonnyrao@chromium.org> wrote: > >> On Wed, Dec 11, 2013 at 11:30 AM, Stephane Eranian <eranian@google.com> 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. >
That sounds like a good idea to me, regardless of what we end up doing.
>> >> 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 >
Ah ok sorry for the incorrect info there, thanks for clarifying. So, If I wanted to make sure everything is synced up between ftrace events and perf events I should say perf here instead of local.
> -- Steve
| |