| From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org> |
| Date: Thu, 14 Mar 2013 14:20:54 -0400 |
| Subject: tracing: Keep overwrite in sync between regular and snapshot buffers |
| |
| commit 80902822658aab18330569587cdb69ac1dfdcea8 upstream. |
| |
| Changing the overwrite mode for the ring buffer via the trace |
| option only sets the normal buffer. But the snapshot buffer could |
| swap with it, and then the snapshot would be in non overwrite mode |
| and the normal buffer would be in overwrite mode, even though the |
| option flag states otherwise. |
| |
| Keep the two buffers overwrite modes in sync. |
| |
| Signed-off-by: Steven Rostedt <rostedt@goodmis.org> |
| [bwh: Backported to 3.2: adjust context] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| kernel/trace/trace.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/kernel/trace/trace.c |
| +++ b/kernel/trace/trace.c |
| @@ -2650,8 +2650,12 @@ static void set_tracer_flags(unsigned in |
| if (mask == TRACE_ITER_RECORD_CMD) |
| trace_event_enable_cmd_record(enabled); |
| |
| - if (mask == TRACE_ITER_OVERWRITE) |
| + if (mask == TRACE_ITER_OVERWRITE) { |
| ring_buffer_change_overwrite(global_trace.buffer, enabled); |
| +#ifdef CONFIG_TRACER_MAX_TRACE |
| + ring_buffer_change_overwrite(max_tr.buffer, enabled); |
| +#endif |
| + } |
| } |
| |
| static ssize_t |