Skip to content
  • Frederic Weisbecker's avatar
    tracing/function-graph-tracer: adjustments of the trace informations · 1a056155
    Frederic Weisbecker authored
    
    
    Impact: increase the visual qualities of the call-graph-tracer output
    
    This patch applies various trace output formatting changes:
    
     - CPU is now a decimal number, followed by a parenthesis.
    
     - Overhead is now on the second column (gives a good visibility)
    
     - Cost is now on the third column, can't exceed 9999.99 us. It is
       followed by a virtual line based on a "|" character.
    
     - Functions calls are now the last column on the right. This way, we
       haven't dynamic column (which flow is harder to follow) on its right.
    
     - CPU and Overhead have their own option flag. They are default-on but you
       can disable them easily:
    
          echo nofuncgraph-cpu > trace_options
          echo nofuncgraph-overhead > trace_options
    
    TODO:
    
    _ Refactoring of the thread switch output.
    _ Give a default-off option to output the thread and its pid on each row.
    _ Provide headers
    _ ....
    
    Here is an example of the new trace style:
    
    0)           |             mutex_unlock() {
    0)      0.639 us |           __mutex_unlock_slowpath();
    0)      1.607 us |         }
    0)           |             remove_wait_queue() {
    0)      0.616 us |           _spin_lock_irqsave();
    0)      0.616 us |           _spin_unlock_irqrestore();
    0)      2.779 us |         }
    0)      0.495 us |         n_tty_set_room();
    0) ! 9999.999 us |       }
    0)           |           tty_ldisc_deref() {
    0)      0.615 us |         _spin_lock_irqsave();
    0)      0.616 us |         _spin_unlock_irqrestore();
    0)      2.793 us |       }
    0)           |           current_fs_time() {
    0)      0.488 us |         current_kernel_time();
    0)      0.495 us |         timespec_trunc();
    0)      2.486 us |       }
    0) ! 9999.999 us |     }
    0) ! 9999.999 us |   }
    0) ! 9999.999 us | }
    0)           |     sys_read() {
    0)      0.796 us |   fget_light();
    0)           |       vfs_read() {
    0)           |         rw_verify_area() {
    0)           |           security_file_permission() {
    0)      0.488 us |         cap_file_permission();
    0)      1.720 us |       }
    0)      3.  4 us |     }
    0)           |         tty_read() {
    0)      0.488 us |       tty_paranoia_check();
    0)           |           tty_ldisc_ref_wait() {
    0)           |             tty_ldisc_try() {
    0)      0.615 us |           _spin_lock_irqsave();
    0)      0.615 us |           _spin_unlock_irqrestore();
    0)      5.436 us |         }
    0)      6.427 us |       }
    
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    1a056155