From: Johannes Berg <johannes@sipsolutions.net>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Ingo Molnar <mingo@redhat.com>
Subject: [PATCH] tracing: add trace console
Date: Wed, 16 Nov 2011 11:18:48 +0100 [thread overview]
Message-ID: <1321438728.4773.16.camel@jlt3.sipsolutions.net> (raw)
From: Johannes Berg <johannes.berg@intel.com>
As described in the Kconfig entry, logging printk
output is useful to correlate (existing) printk
debugging with (existing) tracing. The easiest way
to achieve this is to register a console that just
calls trace_printk(), which this module does.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
kernel/trace/Kconfig | 13 ++++++++++
kernel/trace/Makefile | 2 +
kernel/trace/trace-console.c | 55 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 70 insertions(+)
--- a/kernel/trace/Kconfig 2011-11-16 11:11:27.000000000 +0100
+++ b/kernel/trace/Kconfig 2011-11-16 11:11:35.000000000 +0100
@@ -368,6 +368,19 @@ config BLK_DEV_IO_TRACE
If unsure, say N.
+config TRACE_CONSOLE
+ tristate "Support for a tracing console"
+ help
+ Say M (or Y if you must, but this is not recommended) to be able
+ to get a tracing console that puts every kernel message into the
+ tracing infrastructure using trace_printk(). This is useful to
+ correlate (existing) printk debugging with tracing. When using it
+ remember to set the console level, e.g. with "dmesg -n8".
+
+ The module is called trace-console.
+
+ Say N if unsure.
+
config KPROBE_EVENT
depends on KPROBES
depends on HAVE_REGS_AND_STACK_ACCESS_API
--- a/kernel/trace/Makefile 2011-11-16 11:11:27.000000000 +0100
+++ b/kernel/trace/Makefile 2011-11-16 11:11:35.000000000 +0100
@@ -62,4 +62,6 @@ ifeq ($(CONFIG_TRACING),y)
obj-$(CONFIG_KGDB_KDB) += trace_kdb.o
endif
+obj-$(CONFIG_TRACE_CONSOLE) += trace-console.o
+
libftrace-y := ftrace.o
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ b/kernel/trace/trace-console.c 2011-11-16 11:11:35.000000000 +0100
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2011 Intel Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * The full GNU General Public License is included in this distribution in
+ * the file called COPYING.
+ *
+ * Author: Johannes Berg <johannes.berg@intel.com>
+ */
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/console.h>
+
+MODULE_AUTHOR("Johannes Berg <johannes.berg@intel.com>");
+MODULE_DESCRIPTION("Console driver for tracing");
+MODULE_LICENSE("GPL");
+
+
+static void trace_msg(struct console *con, const char *msg, unsigned int len)
+{
+ trace_printk("%*s", len, msg);
+}
+
+static struct console traceconsole = {
+ .name = "tracecon",
+ .flags = CON_ENABLED,
+ .write = trace_msg,
+};
+
+static int __init init_traceconsole(void)
+{
+ register_console(&traceconsole);
+ return 0;
+}
+
+static void __exit exit_traceconsole(void)
+{
+ unregister_console(&traceconsole);
+}
+
+module_init(init_traceconsole);
+module_exit(exit_traceconsole);
next reply other threads:[~2011-11-16 10:18 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-16 10:18 Johannes Berg [this message]
2011-11-16 14:15 ` [PATCH] tracing: add trace console Steven Rostedt
2011-11-16 14:25 ` Peter Zijlstra
2011-11-16 14:30 ` Johannes Berg
2011-11-16 14:41 ` Peter Zijlstra
2011-11-16 14:48 ` Steven Rostedt
2011-11-16 14:50 ` Peter Zijlstra
2011-11-16 14:51 ` Johannes Berg
2011-11-16 15:17 ` Steven Rostedt
2011-11-16 14:32 ` Thomas Gleixner
2011-11-16 14:35 ` Frederic Weisbecker
2011-11-16 15:09 ` [PATCH v2] " Johannes Berg
2011-11-16 15:17 ` Peter Zijlstra
2011-11-16 15:19 ` Steven Rostedt
2011-11-16 15:10 ` [PATCH] " Christoph Hellwig
2011-11-16 15:17 ` Johannes Berg
2011-11-16 16:41 ` Steven Rostedt
2011-11-16 16:45 ` Johannes Berg
2011-11-16 17:00 ` Steven Rostedt
2011-11-16 17:05 ` Steven Rostedt
2011-11-16 18:33 ` Johannes Berg
2011-11-16 19:57 ` Steven Rostedt
2011-11-16 20:12 ` Johannes Berg
2011-11-16 21:25 ` [PATCH] printk: add console output tracing Johannes Berg
2011-11-17 1:01 ` Steven Rostedt
2011-11-17 14:55 ` Frederic Weisbecker
2011-11-17 14:57 ` Johannes Berg
2011-11-17 15:00 ` Frederic Weisbecker
2011-11-17 15:17 ` Steven Rostedt
2011-11-17 15:21 ` [PATCH v2] " Johannes Berg
2011-11-18 18:44 ` Frederic Weisbecker
2011-11-18 18:46 ` Johannes Berg
2011-11-18 18:54 ` Frederic Weisbecker
2011-11-18 18:59 ` Johannes Berg
2011-11-23 13:16 ` Frederic Weisbecker
2011-11-24 13:21 ` Johannes Berg
2011-11-24 15:45 ` Frederic Weisbecker
2011-11-24 19:00 ` Johannes Berg
2011-11-25 17:43 ` Frederic Weisbecker
2011-11-25 18:11 ` Johannes Berg
2011-11-24 19:03 ` [PATCH v3] " Johannes Berg
2011-11-25 17:41 ` Frederic Weisbecker
2011-12-02 18:05 ` Steven Rostedt
2012-02-13 17:30 ` Steven Rostedt
2012-02-13 17:33 ` Johannes Berg
2012-02-13 17:42 ` Steven Rostedt
2012-02-17 13:52 ` [tip:perf/core] printk/tracing: Add " tip-bot for Johannes Berg
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=1321438728.4773.16.camel@jlt3.sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.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.