Re: [PATCH][RFC 2/23]: SCST core

Vladislav Bolkhovitin
2008-12-23T19:12:34Z

Hi Frédéric,

Frédéric Weisbecker, on 12/20/2008 04:06 PM wrote:
> Hi Vladislav,
>
> 2008/12/18 Vladislav Bolkhovitin <vst@vlnb.net>:
>> Frédéric Weisbecker, on 12/14/2008 03:35 AM wrote:
>>> 2008/12/13 Vladislav Bolkhovitin <vst@vlnb.net>:
>>>> Also (maybe I simply miss something) looks like ftrace doesn't trace exit
>>>> from functions, only entrance to them. Is it true? Is it possibly to log
>>>> exit from functions as well?
>>> That's true with 2.6.28, the function tracer traces on function entries
>>> only.
>>> But there is an add-on on ftrace which let one to trace on entry and
>>> on return, the function
>>> graph tracer. This tracer uses this facility to output a graph of
>>> function calls and measure
>>> the time elapsed during each function call.
>>> You can also register two custom handlers to do some things you need
>>> on entry and on return.
>> Word "graph" is quite confusing. We don't need any graphs, we need a plain
>> execution path tracing as in the attached example (this is what's currently
>> done).
>
> The word graph is actually here to explain here that we not only trace
> each function call
> but we can actually retrieve all of the call path of a function and
> then draw it as if it was
> C code:
>
> 0) ! 108.528 us | }
> 0) | irq_exit() {
> 0) | do_softirq() {
> 0) | __do_softirq() {
> 0) 0.895 us | __local_bh_disable();
> 0) | run_timer_softirq() {
> 0) 0.827 us | hrtimer_run_pending();
> 0) 1.226 us | _spin_lock_irq();
> 0) | _spin_unlock_irq() {
> 0) 6.550 us | }
> 0) 0.924 us | _local_bh_enable();
> 0) + 12.129 us | }
> 0) + 13.911 us | }
> 0) 0.707 us | idle_cpu();
> 0) + 17.009 us | }
> 0) ! 137.419 us | }
> 0) <========== |
> 0) 1.045 us | }
> 0) ! 148.908 us | }
> 0) ! 151.022 us | }
> 0) ! 153.022 us | }
> 0) 0.963 us | journal_mark_dirty();
> 0) 0.925 us | __brelse();

Unfortunately, it lacks very useful "TASK-PID, CPU#, TIMESTAMP" header
fields..