Skip to content
  • Steven Rostedt's avatar
    tracing: report error in trace if we fail to swap latency buffer · e8165dbb
    Steven Rostedt authored
    
    
    The irqsoff tracer will fail to swap the cpu buffer with the max
    buffer if it preempts a commit. Instead of ignoring this, this patch
    makes the tracer report it if the last max latency failed due to preempting
    a current commit.
    
    The output of the latency tracer will look like this:
    
     # tracer: irqsoff
     #
     # irqsoff latency trace v1.1.5 on 2.6.31-rc5
     # --------------------------------------------------------------------
     # latency: 112 us, #1/1, CPU#1 | (M:preempt VP:0, KP:0, SP:0 HP:0 #P:4)
     #    -----------------
     #    | task: -4281 (uid:0 nice:0 policy:0 rt_prio:0)
     #    -----------------
     #  => started at: save_args
     #  => ended at:   __do_softirq
     #
     #
     #                  _------=> CPU#
     #                 / _-----=> irqs-off
     #                | / _----=> need-resched
     #                || / _---=> hardirq/softirq
     #                ||| / _--=> preempt-depth
     #                |||| /
     #                |||||     delay
     #  cmd     pid   ||||| time  |   caller
     #     \   /      |||||   \   |   /
        bash-4281    1d.s6  265us : update_max_tr_single: Failed to swap buffers due to commit in progress
    
    Note the latency time and the functions that disabled the irqs or preemption
    will still be listed.
    
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    e8165dbb