• S
    tracing: Show the lost events in the trace_pipe output · bc21b478
    Steven Rostedt 提交于
    Now that the ring buffer can keep track of where events are lost.
    Use this information to the output of trace_pipe:
    
           hackbench-3588  [001]  1326.701660: lock_acquire: ffffffff816591e0 read rcu_read_lock
           hackbench-3588  [001]  1326.701661: lock_acquire: ffff88003f4091f0 &(&dentry->d_lock)->rlock
           hackbench-3588  [001]  1326.701664: lock_release: ffff88003f4091f0 &(&dentry->d_lock)->rlock
    CPU:1 [LOST 673 EVENTS]
           hackbench-3588  [001]  1326.702711: kmem_cache_free: call_site=ffffffff81102b85 ptr=ffff880026d96738
           hackbench-3588  [001]  1326.702712: lock_release: ffff88003e1480a8 &mm->mmap_sem
           hackbench-3588  [001]  1326.702713: lock_acquire: ffff88003e1480a8 &mm->mmap_sem
    
    Even works with the function graph tracer:
    
     2) ! 170.098 us  |                                            }
     2)   4.036 us    |                                            rcu_irq_exit();
     2)   3.657 us    |                                            idle_cpu();
     2) ! 190.301 us  |                                          }
    CPU:2 [LOST 2196 EVENTS]
     2)   0.853 us    |                            } /* cancel_dirty_page */
     2)               |                            remove_from_page_cache() {
     2)   1.578 us    |                              _raw_spin_lock_irq();
     2)               |                              __remove_from_page_cache() {
    
    Note, it does not work with the iterator "trace" file, since it requires
    the use of consuming the page from the ring buffer to determine how many
    events were lost, which the iterator does not do.
    Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
    bc21b478
ftrace_event.h 6.1 KB