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

Zhaolei
2009-09-17T07:08:11Z

Steven Rostedt wrote:
> On Wed, 2009-09-16 at 14:40 +0800, Zhaolei wrote:
>> 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.
>
> After the fixes that Frederic suggested, and the required timekeeping
> ACKS, I'll queue up your next version for v2.6.33. Looking forward to
> your new patches.

I'll send new patch after we finish xtime tracepoint's discussion.

Thanks
Zhaolei