Prev: [PATCH 4/5] tracing: Disable buffer switching when starting or stopping trace
Next: [PATCH 5/5] tracing: Do not record user stack trace from NMI context
From: Steven Rostedt on 12 Mar 2010 22:00 Ingo, 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: git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git tip/tracing/urgent 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(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |