Re: [PATCH 2/2] tracing/function-graph-tracer: improve duration output

From: Frederic Weisbecker
Date: Tue Dec 02 2008 - 20:34:47 EST


Frederic Weisbecker wrote:
> Impact: better output of duration for long calls
>
> The old duration output didn't exceeded 9999.999 us to fit the column
> and the nanosecs were always 3 numbers. As Ingo suggested, it's better
> to have the whole microseconds elapsed time and shift the nanosecs precision
> if needed to fit the maximum 7 numbers. And usec need more number, the case
> should be rare and important enough to break a bit the column alignment to
> show it.
>
> So, depending of the duration value, we now have these patterns:
>
> u.nnn
> uu.nnn
> uuu.nnn
> uuuu.nnn
> uuuuu.nn
> uuuuuu.n
> uuuuuuuu.....


An example of a trace after these two patches (with funcgraph-proc enabled):

0) cat-2796 | | put_prev_task_fair() {
0) cat-2796 | 0.609 us | update_curr();
0) cat-2796 | 1.842 us | }
0) cat-2796 | | pick_next_task_fair() {
0) cat-2796 | 0.526 us | wakeup_preempt_entity();
0) cat-2796 | 0.797 us | set_next_entity();
0) cat-2796 | 0.541 us | hrtick_start_fair();
0) cat-2796 | 4.195 us | }
0) cat-2796 | 1.263 us | _spin_trylock();
0) cat-2796 | 0.624 us | _spin_unlock();
0) cat-2796 | 0.789 us | _spin_trylock();
0) cat-2796 | 0.617 us | _spin_unlock();
0) cat-2796 | 0.579 us | native_load_sp0();
0) cat-2796 | 0.722 us | native_load_tls();

------------------------------------------
| 0) cat-2796 => events/-9
------------------------------------------

0) events/-9 | | finish_task_switch() {
0) events/-9 | 0.789 us | _spin_unlock_irq();
0) events/-9 | 2.309 us | }
0) events/-9 | ! 269848.5 us | }
0) events/-9 | 0.601 us | finish_wait();
0) events/-9 | 0.662 us | kthread_should_stop();
0) events/-9 | | run_workqueue() {
0) events/-9 | 1.136 us | _spin_lock_irq();
0) events/-9 | 0.918 us | _spin_unlock_irq();
0) events/-9 | | console_callback() {
0) events/-9 | | acquire_console_sem() {
0) events/-9 | | down() {
0) events/-9 | 1.534 us | _spin_lock_irqsave();
0) events/-9 | 0.812 us | _spin_unlock_irqrestore();
0) events/-9 | 4.369 us | }
0) events/-9 | 5.903 us | }
--
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/