All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tracing: add trace console
@ 2011-11-16 10:18 Johannes Berg
  2011-11-16 14:15 ` Steven Rostedt
  2011-11-16 15:10 ` [PATCH] " Christoph Hellwig
  0 siblings, 2 replies; 47+ messages in thread
From: Johannes Berg @ 2011-11-16 10:18 UTC (permalink / raw)
  To: LKML; +Cc: Steven Rostedt, Frederic Weisbecker, Ingo Molnar

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);



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

end of thread, other threads:[~2012-02-17 13:53 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-16 10:18 [PATCH] tracing: add trace console Johannes Berg
2011-11-16 14:15 ` 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

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.