[lkml]   [2010]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH 0/5][GIT PULL][2.6.34] tracing: urgent fixes


Li Zefan and Lai Jiangshan told me they were finding various bugs
with running a stress test. I asked for this test, and Li sent it
to me. Running the test I was also able to trigger the same bugs that
they were seeing. Unfortunately, these bugs were very hard to figure
out and it took me most of the week to fix them.

These bugs would most likely not happen in normal use, since they
all require multiple users writing to the control files of ftrace.
This stress test does just that, it creates several processes that
each write to a different part of a ftrace control system. One resizes
the ring buffer, the other enables and disables various options,
another changes the ftrace plugins, another enables and disables
various events, another enables and disables the tracer, etc.

Normal use generally has a single user that would only do one of these
actions at a time. But that is no excuse for not fixing the issues
that this test uncovered, so I took this very seriously.

Even the fix "tracing: Disable buffer switching when starting or
stopping trace" may look like it could happen if wakeup tracer is running,
but since opening the trace file would cause the wakeup tracer to stop,
it actually required another task to change the current tracer to
the wakeup tracer while the trace file was being read.

In any event, I've been running Li's ftrace_stress_test for a few
hours now, and it seems pretty stable with these patches. I'll continue
to run it to see if it finds anything else.

All of these patches I consider urgent and have also Cc'd stable on them.

Please pull the latest tip/tracing/urgent tree, which can be found at:


Lai Jiangshan (1):
ring-buffer: Move disabled check into preempt disable section

Steven Rostedt (4):
function-graph: Init curr_ret_stack with ret_stack
tracing: Use same local variable when resetting the ring buffer
tracing: Disable buffer switching when starting or stopping trace
tracing: Do not record user stack trace from NMI context

kernel/trace/ftrace.c | 2 +-
kernel/trace/ring_buffer.c | 12 ++++++------
kernel/trace/trace.c | 24 ++++++++++++++++++++----
3 files changed, 27 insertions(+), 11 deletions(-)

 \ /
  Last update: 2010-03-13 04:01    [W:0.081 / U:8.920 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site