lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 14 Mar 2011 15:42:08 -0700
From:	Slava Pestov <slavapestov@...gle.com>
To:	linux-kernel@...r.kernel.org
Cc:	mrubin@...gle.com, dhsharp@...gle.com, rostedt@...dmis.org,
	Slava Pestov <slavapestov@...gle.com>
Subject: [PATCH] ftrace: add 'version' special file for ring buffer format

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@...gle.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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ