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

From: Vladislav Bolkhovitin
Date: Tue Dec 23 2008 - 14:12:36 EST


Hi Frédéric,

Frédéric Weisbecker, on 12/20/2008 04:06 PM wrote:
Hi Vladislav,

2008/12/18 Vladislav Bolkhovitin <vst@xxxxxxxx>:
Frédéric Weisbecker, on 12/14/2008 03:35 AM wrote:
2008/12/13 Vladislav Bolkhovitin <vst@xxxxxxxx>:
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..

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