linux/kernel/trace
Steven Rostedt e8165dbb03 tracing: report error in trace if we fail to swap latency buffer
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: Steven Rostedt <rostedt@goodmis.org>
2009-09-04 19:22:41 -04:00
..
blktrace.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
ftrace.c ftrace: Simplify seqfile code 2009-08-17 11:25:10 +02:00
Kconfig tracing: remove legacy select of MARKERS by context switch tracing 2009-08-27 16:58:03 -04:00
kmemtrace.c tracing: remove users of tracing_reset 2009-09-04 12:12:39 -04:00
Makefile tracing/events: convert block trace points to TRACE_EVENT() 2009-06-09 12:34:23 -04:00
ring_buffer_benchmark.c ring-buffer: have benchmark test print to trace buffer 2009-06-17 17:01:09 -04:00
ring_buffer.c ring-buffer: disable all cpu buffers when one finds a problem 2009-09-04 11:46:25 -04:00
trace_boot.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
trace_branch.c Merge branch 'linus' into tracing/core 2009-05-07 11:17:34 +02:00
trace_clock.c tracing: fix four sparse warnings 2009-03-22 18:16:54 +01:00
trace_event_profile.c ftrace: Fix perf-tracepoint OOPS 2009-08-06 06:26:09 +02:00
trace_event_types.h trace_export: Repair missed fields 2009-06-26 20:48:40 +02:00
trace_events_filter.c tracing/filters: Defer pred allocation 2009-08-31 10:58:08 +02:00
trace_events.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
trace_export.c tracing/filters: Defer pred allocation 2009-08-31 10:58:08 +02:00
trace_functions_graph.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
trace_functions.c Merge branch 'linus' into tracing/core 2009-07-18 12:20:01 +02:00
trace_hw_branches.c Merge branch 'tracing/hw-branch-tracing' into tracing/core 2009-05-07 13:36:22 +02:00
trace_irqsoff.c tracing: use timestamp to determine start of latency traces 2009-09-04 18:44:22 -04:00
trace_mmiotrace.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
trace_nop.c tracing/ftrace: make nop-tracer use polling wait for events on pipe 2009-03-23 09:22:15 +01:00
trace_output.c tracing: Fix trace_print_seq() 2009-07-02 08:51:13 +02:00
trace_output.h tracing: add protection around module events unload 2009-06-09 17:29:07 -04:00
trace_power.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
trace_printk.c tracing: show proper address for trace-printk format 2009-07-23 10:07:17 -04:00
trace_sched_switch.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
trace_sched_wakeup.c tracing: use timestamp to determine start of latency traces 2009-09-04 18:44:22 -04:00
trace_selftest_dynamic.c ftrace: fix dynamic ftrace selftest 2008-05-23 21:13:23 +02:00
trace_selftest.c tracing/function-graph-tracer: Move graph event insertion helpers in the graph tracer file 2009-08-06 07:28:06 +02:00
trace_stack.c trace_stack: Simplify seqfile code 2009-08-17 11:25:09 +02:00
trace_stat.c trace_stat: Fix missing entry in stat file 2009-08-17 11:25:09 +02:00
trace_stat.h tracing/stat: Add stat_release() callback 2009-07-10 12:14:05 +02:00
trace_syscalls.c tracing: pass around ring buffer instead of tracer 2009-09-04 18:59:39 -04:00
trace_sysprof.c Merge branch 'timers-for-linus-migration' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-15 10:06:19 -07:00
trace_workqueue.c tracing/workqueues: Add refcnt to struct cpu_workqueue_stats 2009-07-10 12:14:07 +02:00
trace.c tracing: report error in trace if we fail to swap latency buffer 2009-09-04 19:22:41 -04:00
trace.h tracing: add trace_array_printk for internal tracers to use 2009-09-04 19:13:53 -04:00