mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] ftrace: add 'version' special file for ring buffer format
@ 2011-03-14 22:42 Slava Pestov
  2011-03-15  2:31 ` Steven Rostedt
  0 siblings, 1 reply; 4+ messages in thread
From: Slava Pestov @ 2011-03-14 22:42 UTC (permalink / raw)
  To: linux-kernel; +Cc: mrubin, dhsharp, rostedt, Slava Pestov

The intention here is that if the ftrace ring buffer format changes
in the future like it did in the past with ktrace, we can increment
the version number and update clients appropriately.

Tested: Verified that special file contains correct content

This patch is against 2.6.38-rc8 but should apply to any version
from at least 2.6.34 onwards.

Signed-Off-By: Slava Pestov <slavapestov@google.com>
---
 kernel/trace/trace.c |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index dc53ecb..e56868a 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -44,6 +44,12 @@
 #define TRACE_BUFFER_FLAGS	(RB_FL_OVERWRITE)
 
 /*
+ * The version number should be incremented if the ring buffer
+ * format changes in an incompatible way.
+ */
+static const char ftrace_version[] = "1.0.0\n";
+
+/*
  * On boot up, the ring buffer is set to the minimum size, so that
  * we do not waste memory on systems that are not using tracing.
  */
@@ -2624,6 +2630,20 @@ static const struct file_operations tracing_readme_fops = {
 };
 
 static ssize_t
+tracing_version_read(struct file *filp, char __user *ubuf,
+		     size_t cnt, loff_t *ppos)
+{
+	return simple_read_from_buffer(ubuf, cnt, ppos,
+				       ftrace_version, strlen(ftrace_version));
+}
+
+static const struct file_operations tracing_version_fops = {
+	.open		= tracing_open_generic,
+	.read		= tracing_version_read,
+	.llseek		= generic_file_llseek,
+};
+
+static ssize_t
 tracing_saved_cmdlines_read(struct file *file, char __user *ubuf,
 				size_t cnt, loff_t *ppos)
 {
@@ -4336,6 +4356,9 @@ static __init int tracer_init_debugfs(void)
 	trace_create_file("README", 0444, d_tracer,
 			NULL, &tracing_readme_fops);
 
+	trace_create_file("version", 0444, d_tracer,
+			NULL, &tracing_version_fops);
+
 	trace_create_file("trace_pipe", 0444, d_tracer,
 			(void *) TRACE_PIPE_ALL_CPU, &tracing_pipe_fops);
 
-- 
1.7.3.1


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-03-16  0:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-14 22:42 [PATCH] ftrace: add 'version' special file for ring buffer format Slava Pestov
2011-03-15  2:31 ` Steven Rostedt
2011-03-16  0:33   ` David Sharp
2011-03-16  0:56     ` Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®