Prev: How to write driver that needs to call another driver?
Next: Fwd: [scripts] python: change scripts to use system python instead of env
From: Steven Rostedt on 26 Jan 2010 17:20 Ingo, I found that reading the trace file and the raw_trace_pipe using splice, at the same time could cause a kernel oops. Not a major one, that is, the oops only crashes the user task that is performing the read of the trace file. But still urgent enough to go into 2.6.33. The issue is with the iterator that is stored to access multiple reads of the ring buffer without consuming the data. If a user process starts reading the contents of the ring buffer with the iterator, and in the mean time a consuming read is done, then the iterator can become stale and return a bogus entry. The first patch fixes the pid to cmdline mapping function to not crash when given a negative pid (which happened when we had a bogus entry). The next two patches fix the ring buffer to detect when a consuming read is done and to reset the iterator. Since I'm pushing these patches up, I've also incuded two documentation changes. One of the patches touches a Kconfig file but only the help portion of it. 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 Mike Frysinger (1): tracing/documentation: Cover new frame pointer semantics Steven Rostedt (3): tracing: Prevent kernel oops with corrupted buffer ring-buffer: Check if ring buffer iterator has stale data ring-buffer: Check for end of page in iterator Yang Hongyang (1): tracing/documentation: Fix a typo in ftrace.txt ---- Documentation/trace/ftrace-design.txt | 26 +++++++++++++++++++++++--- Documentation/trace/ftrace.txt | 2 +- kernel/trace/Kconfig | 4 +--- kernel/trace/ring_buffer.c | 24 +++++++++++++++++++++--- kernel/trace/trace.c | 5 +++++ 5 files changed, 51 insertions(+), 10 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/ |