From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
David Sharp <dhsharp@google.com>
Subject: [PATCH 12/19] tracing: Reset ring buffer when changing trace_clocks
Date: Fri, 02 Nov 2012 14:13:43 -0400 [thread overview]
Message-ID: <20121102181431.934089002@goodmis.org> (raw)
In-Reply-To: 20121102181331.513782854@goodmis.org
[-- Attachment #1: Type: text/plain, Size: 1290 bytes --]
From: David Sharp <dhsharp@google.com>
Because the "tsc" clock isn't in nanoseconds, the ring buffer must be
reset when changing clocks so that incomparable timestamps don't end up
in the same trace.
Tested: Confirmed switching clocks resets the trace buffer.
Google-Bug-Id: 6980623
Link: http://lkml.kernel.org/r/1349998076-15495-3-git-send-email-dhsharp@google.com
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: David Sharp <dhsharp@google.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 88111b0..6ed6013 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -4073,6 +4073,14 @@ static ssize_t tracing_clock_write(struct file *filp, const char __user *ubuf,
if (max_tr.buffer)
ring_buffer_set_clock(max_tr.buffer, trace_clocks[i].func);
+ /*
+ * New clock may not be consistent with the previous clock.
+ * Reset the buffer so that it doesn't have incomparable timestamps.
+ */
+ tracing_reset_online_cpus(&global_trace);
+ if (max_tr.buffer)
+ tracing_reset_online_cpus(&max_tr);
+
mutex_unlock(&trace_types_lock);
*fpos += cnt;
--
1.7.10.4
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
next prev parent reply other threads:[~2012-11-02 18:15 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-02 18:13 [PATCH 00/19] [GIT PULL][3.8] tracing: updates (v2) Steven Rostedt
2012-11-02 18:13 ` [PATCH 01/19] tracing: Replace strict_strto* with kstrto* Steven Rostedt
2012-11-02 18:13 ` [PATCH 02/19] tracing: Allow tracers to start at core initcall Steven Rostedt
2012-11-02 18:13 ` [PATCH 03/19] tracing: Change tracers integer flags to bool Steven Rostedt
2012-11-02 18:13 ` [PATCH 04/19] ring-buffer: Add a dropped events counter Steven Rostedt
2012-11-02 18:13 ` [PATCH 05/19] tracing: Expand ring buffer when trace_printk() is used Steven Rostedt
2012-11-02 18:13 ` [PATCH 06/19] tracing: Enable comm recording if " Steven Rostedt
2012-11-02 18:13 ` [PATCH 07/19] tracing: Have tracing_sched_wakeup_trace() use standard unlock_commit Steven Rostedt
2012-11-02 18:13 ` [PATCH 08/19] tracing: Cache comms only after an event occurred Steven Rostedt
2012-11-02 18:13 ` [PATCH 09/19] tracing: Trivial cleanup Steven Rostedt
2012-11-02 18:13 ` [PATCH 10/19] tracing: Cleanup unnecessary function declarations Steven Rostedt
2012-11-02 18:13 ` [PATCH 11/19] linux/kernel.h: Remove duplicate trace_printk declaration Steven Rostedt
2012-11-02 18:13 ` Steven Rostedt [this message]
2012-11-02 18:13 ` [PATCH 13/19] ring-buffer: Change unsigned long type of ring_buffer_oldest_event_ts() to u64 Steven Rostedt
2012-11-02 18:13 ` [PATCH 14/19] tracing: Separate open function from set_event and available_events Steven Rostedt
2012-11-02 18:13 ` [PATCH 15/19] tracing: Remove unused function unregister_tracer() Steven Rostedt
2012-11-02 18:13 ` [PATCH 16/19] tracing: Make tracing_enabled be equal to tracing_on Steven Rostedt
2012-11-02 18:13 ` [PATCH 17/19] tracing: Remove deprecated tracing_enabled file Steven Rostedt
2012-11-02 18:13 ` [PATCH 18/19] tracing: Use irq_work for wake ups and remove *_nowake_*() functions Steven Rostedt
2012-11-02 18:13 ` [PATCH 19/19] tracing: Add trace_options kernel command line parameter Steven Rostedt
2012-11-09 12:16 ` [PATCH 00/19] [GIT PULL][3.8] tracing: updates (v2) Steven Rostedt
2012-11-14 6:18 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121102181431.934089002@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=dhsharp@google.com \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mingo@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.