Re: Re: [PATCH v2 2/2] ftrace: Add timer-source of walltime for ftrace

Zhaolei
2009-09-16T06:37:49Z

Frederic Weisbecker wrote:
> On Wed, Sep 16, 2009 at 01:29:19PM +0800, Zhaolei wrote:
>> We can add a timer-source for ftrace to support wall-time display.
>> It is based on Steven Rostedt <rostedt@goodmis.org>'s suggestion in:
>> http://lkml.org/lkml/2009/7/24/103
>>
>> It need to applys on my patch of:
>> [PATCH v4 1/2] Add function to convert between calendar time and broken-down time for universal use
>>
Hello, Frederic

Thanks for your review.

>> We can get following output:
>> # cd /mnt/debugfs/tracing/
>> # cat trace_clock
>> [local] global walltime
>> # echo sched_switch > current_tracer
>> # cat trace
>> # tracer: sched_switch
>> #
>> # TASK-PID CPU# TIMESTAMP FUNCTION
>> # | | | | |
>> bash-3580 [000] 2916.188093: 3580:120:S + [000] 3580:120:S bash
>> bash-3580 [000] 2916.188205: 3580:120:S + [000] 3580:120:S bash
>> bash-3580 [000] 2916.188538: 3580:120:R + [000] 5:115:S events/0
>> bash-3580 [000] 2916.188599: 3580:120:R ==> [000] 5:115:R events/0
>> events/0-5 [000] 2916.188669: 5:115:S ==> [000] 3580:120:R bash
>> ...
>> # echo walltime > trace_clock
>> # cat trace
>> # tracer: sched_switch
>> #
>> # TASK-PID CPU# TIMESTAMP FUNCTION
>> # | | | | |
>
>
>
>
> The headers seem a bit broken. Is it a copy paste effect or?

No, it is a format bug of patch.
I'll fix it.

>
>
>
>> bash-3580 [000] 2009-08-24 18:03:16.500705: 3580:120:S + [000] 3580:120:S bash
>> bash-3580 [000] 2009-08-24 18:03:16.500815: 3580:120:S + [000] 3580:120:S bash
>> bash-3580 [000] 2009-08-24 18:03:16.500815: 3580:120:S + [000] 3580:120:S bash
>> bash-3580 [000] 2009-08-24 18:03:16.500815: 3580:120:S ==> [000] 5:115:R events/0
>> events/0-5 [000] 2009-08-24 18:03:16.500815: 5:115:R + [000] 3578:120:S sshd
>> ...
>
>
> But nice result :)
>
>
>> Changelog:
>> v1->v2: Rebase to top of tip tree.
>>
>> Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
>> ---
>> include/linux/trace_clock.h | 1 +
>> kernel/trace/trace.c | 24 ++++++++++++++++-----
>> kernel/trace/trace.h | 8 ++++++-
>> kernel/trace/trace_clock.c | 48 +++++++++++++++++++++++++++++++++++++++++++
>> kernel/trace/trace_output.c | 21 +++++++++++++++---
>> 5 files changed, 91 insertions(+), 11 deletions(-)
>>
>> diff --git a/include/linux/trace_clock.h b/include/linux/trace_clock.h
>> index 7a81303..322707e 100644
>> --- a/include/linux/trace_clock.h
>> +++ b/include/linux/trace_clock.h
>> @@ -15,5 +15,6 @@
>> extern u64 notrace trace_clock_local(void);
>> extern u64 notrace trace_clock(void);
>> extern u64 notrace trace_clock_global(void);
>> +extern u64 notrace trace_clock_walltime(void);
>>
>> #endif /* _LINUX_TRACE_CLOCK_H */
>> diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
>> index fd52a19..160b6a8 100644
>> --- a/kernel/trace/trace.c
>> +++ b/kernel/trace/trace.c
>> @@ -335,9 +335,10 @@ static struct {
>> } trace_clocks[] = {
>> { trace_clock_local, "local" },
>> { trace_clock_global, "global" },
>> + { trace_clock_walltime, "walltime" },
>> };
>>
>> -int trace_clock_id;
>> +enum TRACE_CLOCK_TYPE trace_clock_type = TRACE_CLOCK_LOCAL;
>
>
>
> Uppercase names are usually reserved for CPP macros.

I'll rename it.

Thanks
Zhaolei