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

From: Sonny Rao
Date: Wed Dec 11 2013 - 21:06:34 EST


On Wed, Dec 11, 2013 at 5:49 PM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> 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.
>

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
--
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/