All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Christoph Hellwig <hch@infradead.org>,
	Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	Gregory Haskins <ghaskins@novell.com>,
	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	"William L. Irwin" <sparclinux@vger.kernel.org>,
	Steven Rostedt <srostedt@redhat.com>
Subject: [RFC PATCH 11/11] Add a symbol only trace output
Date: Thu, 03 Jan 2008 07:16:20 +0000	[thread overview]
Message-ID: <20080103072228.372074690@goodmis.org> (raw)
In-Reply-To: 20080103071609.478486470@goodmis.org

The trace output is very verbose with outputing both the
IP address (Instruction Pointer not Internet Protocol!)
and the kallsyms symbol. So if kallsyms is configured into
the kernel, another file is created in the debugfs system.
This is the trace_symonly file that leaves out the IP address.

Here's an example:

CPU 1: swapper:0 smp_apic_timer_interrupt+0xc/0x58 <-- apic_timer_interrupt+0x66/0x70
CPU 1: swapper:0 exit_idle+0x9/0x22 <-- smp_apic_timer_interrupt+0x35/0x58
CPU 0: sshd:2611 _spin_unlock+0x9/0x38 <-- __qdisc_run+0xb2/0x1a1
CPU 1: swapper:0 __exit_idle+0x9/0x2e <-- exit_idle+0x20/0x22
CPU 0: sshd:2611 _spin_lock+0xe/0x7a <-- __qdisc_run+0xba/0x1a1
CPU 1: swapper:0 atomic_notifier_call_chain+0x9/0x16 <-- __exit_idle+0x2c/0x2e
CPU 1: swapper:0 __atomic_notifier_call_chain+0xe/0x56 <-- atomic_notifier_call_chain+0x14/0x16


Signed-off-by: Steven Rostedt <srostedt@redhat.com>
---
 lib/mcount/tracer.c |  161 ++++++++++++++++++++++++++++++++++------------------
 1 file changed, 106 insertions(+), 55 deletions(-)

Index: linux-compile.git/lib/mcount/tracer.c
=================================--- linux-compile.git.orig/lib/mcount/tracer.c	2008-01-03 00:29:31.000000000 -0500
+++ linux-compile.git/lib/mcount/tracer.c	2008-01-03 00:37:40.000000000 -0500
@@ -85,6 +85,7 @@ struct mctracer_iterator {
 	unsigned long next_idx[NR_CPUS];
 	int cpu;
 	int idx;
+	int sym_only;
 };
 
 static struct mctracer_entry *mctracer_entry_idx(struct mctracer_trace *tr,
@@ -156,7 +157,7 @@ static void *s_next(struct seq_file *m, 
 	return ent;
 }
 
-static void *s_start(struct seq_file *m, loff_t *pos)
+static void *__s_start(struct seq_file *m, loff_t *pos, int sym_only)
 {
 	struct mctracer_iterator *iter = m->private;
 	void *p = NULL;
@@ -166,6 +167,8 @@ static void *s_start(struct seq_file *m,
 	iter->ent = NULL;
 	iter->cpu = 0;
 	iter->idx = -1;
+	iter->sym_only = sym_only;
+
 	for (i = 0; i < NR_CPUS; i++)
 		iter->next_idx[i] = 0;
 
@@ -179,6 +182,11 @@ static void *s_start(struct seq_file *m,
 	return p;
 }
 
+static void *s_start(struct seq_file *m, loff_t *pos)
+{
+	return __s_start(m, pos, 0);
+}
+
 static void s_stop(struct seq_file *m, void *p)
 {
 	struct mctracer_iterator *iter = m->private;
@@ -186,58 +194,7 @@ static void s_stop(struct seq_file *m, v
 		register_mcount_function(trace_function);
 }
 
-#ifdef CONFIG_KALLSYMS
-static void seq_print_symbol(struct seq_file *m,
-			     const char *fmt, unsigned long address)
-{
-	char buffer[KSYM_SYMBOL_LEN];
-
-	sprint_symbol(buffer, address);
-	seq_printf(m, fmt, buffer);
-}
-#else
-# define seq_print_symbol(m, fmt, address) do { } while (0)
-#endif
-
-#ifndef CONFIG_64BIT
-#define seq_print_ip_sym(m, ip)			\
-do {						\
-	seq_printf(m, "[<%08lx>]", ip);		\
-	seq_print_symbol(m, " %s", ip);	\
-} while (0)
-#else
-#define seq_print_ip_sym(m, ip)			\
-do {						\
-	seq_printf(m, "[<%016lx>]", ip);	\
-	seq_print_symbol(m, " %s", ip);	\
-} while (0)
-#endif
-
-static int s_show(struct seq_file *m, void *v)
-{
-	int i = (long)(v);
-	struct mctracer_iterator *iter = v;
-
-	if (i = 1) {
-		seq_printf(m, "mctracer:\n");
-	} else {
-		if (!iter->ent) {
-			seq_printf(m, " ERROR!!!! ent is NULL!\n");
-			return -1;
-		}
-
-		seq_printf(m, "CPU %d: ", iter->cpu);
-		seq_printf(m, "%s:%d ", iter->ent->comm, iter->ent->pid);
-		seq_print_ip_sym(m, iter->ent->ip);
-		if (iter->ent->parent_ip) {
-			seq_printf(m, " <-- ");
-			seq_print_ip_sym(m, iter->ent->parent_ip);
-		}
-		seq_printf(m, "\n");
-	}
-
-	return 0;
-}
+static int s_show(struct seq_file *m, void *v);
 
 static struct seq_operations mctrace_seq_ops = {
 	.start = s_start,
@@ -246,7 +203,8 @@ static struct seq_operations mctrace_seq
 	.show = s_show,
 };
 
-static int mctrace_open (struct inode *inode, struct file *file)
+static int __mctrace_open(struct inode *inode, struct file *file,
+			  struct seq_operations *seq_ops)
 {
 	struct mctracer_iterator *iter;
 	int ret;
@@ -258,7 +216,7 @@ static int mctrace_open (struct inode *i
 	iter->tr = &mctracer_trace;
 
 	/* TODO stop tracer */
-	ret = seq_open(file, &mctrace_seq_ops);
+	ret = seq_open(file, seq_ops);
 	if (!ret) {
 		struct seq_file *m = file->private_data;
 		m->private = iter;
@@ -268,6 +226,11 @@ static int mctrace_open (struct inode *i
 	return ret;
 }
 
+static int mctrace_open(struct inode *inode, struct file *file)
+{
+	return __mctrace_open(inode, file, &mctrace_seq_ops);
+}
+
 int mctrace_release(struct inode *inode, struct file *file)
 {
 	struct seq_file *m = (struct seq_file *)file->private_data;
@@ -278,6 +241,87 @@ int mctrace_release(struct inode *inode,
 	return 0;
 }
 
+#ifndef CONFIG_64BIT
+#define seq_print_ip_sym(m, ip, sym_only)		\
+do {							\
+	if (!sym_only)					\
+		seq_printf(m, "[<%08lx>] ", ip);	\
+	seq_print_symbol(m, "%s", ip);			\
+} while (0)
+#else
+#define seq_print_ip_sym(m, ip, sym_only)		\
+do {							\
+	if (!sym_only)					\
+		seq_printf(m, "[<%016lx>] ", ip);	\
+	seq_print_symbol(m, "%s", ip);			\
+} while (0)
+#endif
+
+#ifdef CONFIG_KALLSYMS
+static void seq_print_symbol(struct seq_file *m,
+			     const char *fmt, unsigned long address)
+{
+	char buffer[KSYM_SYMBOL_LEN];
+
+	sprint_symbol(buffer, address);
+	seq_printf(m, fmt, buffer);
+}
+
+static void *s_start_sym_only(struct seq_file *m, loff_t *pos)
+{
+	return __s_start(m, pos, 1);
+}
+
+static struct seq_operations mctrace_sym_only_seq_ops = {
+	.start = s_start_sym_only,
+	.next = s_next,
+	.stop = s_stop,
+	.show = s_show,
+};
+
+static int mctrace_open_sym_only(struct inode *inode, struct file *file)
+{
+	return __mctrace_open(inode, file, &mctrace_sym_only_seq_ops);
+}
+
+static struct file_operations mctrace_sym_only_fops = {
+	.open = mctrace_open_sym_only,
+	.read = seq_read,
+	.llseek = seq_lseek,
+	.release = mctrace_release,
+};
+
+#else
+# define seq_print_symbol(m, fmt, address) do { } while (0)
+#endif
+
+static int s_show(struct seq_file *m, void *v)
+{
+	int i = (long)(v);
+	struct mctracer_iterator *iter = v;
+
+	if (i = 1) {
+		seq_printf(m, "mctracer:\n");
+	} else {
+		if (!iter->ent) {
+			seq_printf(m, " ERROR!!!! ent is NULL!\n");
+			return -1;
+		}
+
+		seq_printf(m, "CPU %d: ", iter->cpu);
+		seq_printf(m, "%s:%d ", iter->ent->comm, iter->ent->pid);
+		seq_print_ip_sym(m, iter->ent->ip, iter->sym_only);
+		if (iter->ent->parent_ip) {
+			seq_printf(m, " <-- ");
+			seq_print_ip_sym(m, iter->ent->parent_ip,
+					 iter->sym_only);
+		}
+		seq_printf(m, "\n");
+	}
+
+	return 0;
+}
+
 static struct file_operations mctrace_fops = {
 	.open = mctrace_open,
 	.read = seq_read,
@@ -361,6 +405,13 @@ static void mctrace_init_debugfs(void)
 				    &mctracer_trace, &mctrace_fops);
 	if (!entry)
 		pr_warning("Could not create debugfs 'trace' entry\n");
+
+#ifdef CONFIG_KALLSYMS
+	entry = debugfs_create_file("trace_symonly", 0444, d_mctracer,
+				    &mctracer_trace, &mctrace_sym_only_fops);
+	if (!entry)
+		pr_warning("Could not create debugfs 'trace_symonly' entry\n");
+#endif
 }
 #else /* CONFIG_DEBUG_FS */
 static void mctrace_init_debugfs(void)

-- 

WARNING: multiple messages have this Message-ID (diff)
From: Steven Rostedt <rostedt@goodmis.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Christoph Hellwig <hch@infradead.org>,
	Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	Gregory Haskins <ghaskins@novell.com>,
	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	"William L. Irwin" <sparclinux@vger.kernel.org>,
	Steven Rostedt <srostedt@redhat.com>
Subject: [RFC PATCH 11/11] Add a symbol only trace output
Date: Thu, 03 Jan 2008 02:16:20 -0500	[thread overview]
Message-ID: <20080103072228.372074690@goodmis.org> (raw)
In-Reply-To: 20080103071609.478486470@goodmis.org

[-- Attachment #1: mcount-tracer-symbol-only.patch --]
[-- Type: text/plain, Size: 7096 bytes --]

The trace output is very verbose with outputing both the
IP address (Instruction Pointer not Internet Protocol!)
and the kallsyms symbol. So if kallsyms is configured into
the kernel, another file is created in the debugfs system.
This is the trace_symonly file that leaves out the IP address.

Here's an example:

CPU 1: swapper:0 smp_apic_timer_interrupt+0xc/0x58 <-- apic_timer_interrupt+0x66/0x70
CPU 1: swapper:0 exit_idle+0x9/0x22 <-- smp_apic_timer_interrupt+0x35/0x58
CPU 0: sshd:2611 _spin_unlock+0x9/0x38 <-- __qdisc_run+0xb2/0x1a1
CPU 1: swapper:0 __exit_idle+0x9/0x2e <-- exit_idle+0x20/0x22
CPU 0: sshd:2611 _spin_lock+0xe/0x7a <-- __qdisc_run+0xba/0x1a1
CPU 1: swapper:0 atomic_notifier_call_chain+0x9/0x16 <-- __exit_idle+0x2c/0x2e
CPU 1: swapper:0 __atomic_notifier_call_chain+0xe/0x56 <-- atomic_notifier_call_chain+0x14/0x16


Signed-off-by: Steven Rostedt <srostedt@redhat.com>
---
 lib/mcount/tracer.c |  161 ++++++++++++++++++++++++++++++++++------------------
 1 file changed, 106 insertions(+), 55 deletions(-)

Index: linux-compile.git/lib/mcount/tracer.c
===================================================================
--- linux-compile.git.orig/lib/mcount/tracer.c	2008-01-03 00:29:31.000000000 -0500
+++ linux-compile.git/lib/mcount/tracer.c	2008-01-03 00:37:40.000000000 -0500
@@ -85,6 +85,7 @@ struct mctracer_iterator {
 	unsigned long next_idx[NR_CPUS];
 	int cpu;
 	int idx;
+	int sym_only;
 };
 
 static struct mctracer_entry *mctracer_entry_idx(struct mctracer_trace *tr,
@@ -156,7 +157,7 @@ static void *s_next(struct seq_file *m, 
 	return ent;
 }
 
-static void *s_start(struct seq_file *m, loff_t *pos)
+static void *__s_start(struct seq_file *m, loff_t *pos, int sym_only)
 {
 	struct mctracer_iterator *iter = m->private;
 	void *p = NULL;
@@ -166,6 +167,8 @@ static void *s_start(struct seq_file *m,
 	iter->ent = NULL;
 	iter->cpu = 0;
 	iter->idx = -1;
+	iter->sym_only = sym_only;
+
 	for (i = 0; i < NR_CPUS; i++)
 		iter->next_idx[i] = 0;
 
@@ -179,6 +182,11 @@ static void *s_start(struct seq_file *m,
 	return p;
 }
 
+static void *s_start(struct seq_file *m, loff_t *pos)
+{
+	return __s_start(m, pos, 0);
+}
+
 static void s_stop(struct seq_file *m, void *p)
 {
 	struct mctracer_iterator *iter = m->private;
@@ -186,58 +194,7 @@ static void s_stop(struct seq_file *m, v
 		register_mcount_function(trace_function);
 }
 
-#ifdef CONFIG_KALLSYMS
-static void seq_print_symbol(struct seq_file *m,
-			     const char *fmt, unsigned long address)
-{
-	char buffer[KSYM_SYMBOL_LEN];
-
-	sprint_symbol(buffer, address);
-	seq_printf(m, fmt, buffer);
-}
-#else
-# define seq_print_symbol(m, fmt, address) do { } while (0)
-#endif
-
-#ifndef CONFIG_64BIT
-#define seq_print_ip_sym(m, ip)			\
-do {						\
-	seq_printf(m, "[<%08lx>]", ip);		\
-	seq_print_symbol(m, " %s", ip);	\
-} while (0)
-#else
-#define seq_print_ip_sym(m, ip)			\
-do {						\
-	seq_printf(m, "[<%016lx>]", ip);	\
-	seq_print_symbol(m, " %s", ip);	\
-} while (0)
-#endif
-
-static int s_show(struct seq_file *m, void *v)
-{
-	int i = (long)(v);
-	struct mctracer_iterator *iter = v;
-
-	if (i == 1) {
-		seq_printf(m, "mctracer:\n");
-	} else {
-		if (!iter->ent) {
-			seq_printf(m, " ERROR!!!! ent is NULL!\n");
-			return -1;
-		}
-
-		seq_printf(m, "CPU %d: ", iter->cpu);
-		seq_printf(m, "%s:%d ", iter->ent->comm, iter->ent->pid);
-		seq_print_ip_sym(m, iter->ent->ip);
-		if (iter->ent->parent_ip) {
-			seq_printf(m, " <-- ");
-			seq_print_ip_sym(m, iter->ent->parent_ip);
-		}
-		seq_printf(m, "\n");
-	}
-
-	return 0;
-}
+static int s_show(struct seq_file *m, void *v);
 
 static struct seq_operations mctrace_seq_ops = {
 	.start = s_start,
@@ -246,7 +203,8 @@ static struct seq_operations mctrace_seq
 	.show = s_show,
 };
 
-static int mctrace_open (struct inode *inode, struct file *file)
+static int __mctrace_open(struct inode *inode, struct file *file,
+			  struct seq_operations *seq_ops)
 {
 	struct mctracer_iterator *iter;
 	int ret;
@@ -258,7 +216,7 @@ static int mctrace_open (struct inode *i
 	iter->tr = &mctracer_trace;
 
 	/* TODO stop tracer */
-	ret = seq_open(file, &mctrace_seq_ops);
+	ret = seq_open(file, seq_ops);
 	if (!ret) {
 		struct seq_file *m = file->private_data;
 		m->private = iter;
@@ -268,6 +226,11 @@ static int mctrace_open (struct inode *i
 	return ret;
 }
 
+static int mctrace_open(struct inode *inode, struct file *file)
+{
+	return __mctrace_open(inode, file, &mctrace_seq_ops);
+}
+
 int mctrace_release(struct inode *inode, struct file *file)
 {
 	struct seq_file *m = (struct seq_file *)file->private_data;
@@ -278,6 +241,87 @@ int mctrace_release(struct inode *inode,
 	return 0;
 }
 
+#ifndef CONFIG_64BIT
+#define seq_print_ip_sym(m, ip, sym_only)		\
+do {							\
+	if (!sym_only)					\
+		seq_printf(m, "[<%08lx>] ", ip);	\
+	seq_print_symbol(m, "%s", ip);			\
+} while (0)
+#else
+#define seq_print_ip_sym(m, ip, sym_only)		\
+do {							\
+	if (!sym_only)					\
+		seq_printf(m, "[<%016lx>] ", ip);	\
+	seq_print_symbol(m, "%s", ip);			\
+} while (0)
+#endif
+
+#ifdef CONFIG_KALLSYMS
+static void seq_print_symbol(struct seq_file *m,
+			     const char *fmt, unsigned long address)
+{
+	char buffer[KSYM_SYMBOL_LEN];
+
+	sprint_symbol(buffer, address);
+	seq_printf(m, fmt, buffer);
+}
+
+static void *s_start_sym_only(struct seq_file *m, loff_t *pos)
+{
+	return __s_start(m, pos, 1);
+}
+
+static struct seq_operations mctrace_sym_only_seq_ops = {
+	.start = s_start_sym_only,
+	.next = s_next,
+	.stop = s_stop,
+	.show = s_show,
+};
+
+static int mctrace_open_sym_only(struct inode *inode, struct file *file)
+{
+	return __mctrace_open(inode, file, &mctrace_sym_only_seq_ops);
+}
+
+static struct file_operations mctrace_sym_only_fops = {
+	.open = mctrace_open_sym_only,
+	.read = seq_read,
+	.llseek = seq_lseek,
+	.release = mctrace_release,
+};
+
+#else
+# define seq_print_symbol(m, fmt, address) do { } while (0)
+#endif
+
+static int s_show(struct seq_file *m, void *v)
+{
+	int i = (long)(v);
+	struct mctracer_iterator *iter = v;
+
+	if (i == 1) {
+		seq_printf(m, "mctracer:\n");
+	} else {
+		if (!iter->ent) {
+			seq_printf(m, " ERROR!!!! ent is NULL!\n");
+			return -1;
+		}
+
+		seq_printf(m, "CPU %d: ", iter->cpu);
+		seq_printf(m, "%s:%d ", iter->ent->comm, iter->ent->pid);
+		seq_print_ip_sym(m, iter->ent->ip, iter->sym_only);
+		if (iter->ent->parent_ip) {
+			seq_printf(m, " <-- ");
+			seq_print_ip_sym(m, iter->ent->parent_ip,
+					 iter->sym_only);
+		}
+		seq_printf(m, "\n");
+	}
+
+	return 0;
+}
+
 static struct file_operations mctrace_fops = {
 	.open = mctrace_open,
 	.read = seq_read,
@@ -361,6 +405,13 @@ static void mctrace_init_debugfs(void)
 				    &mctracer_trace, &mctrace_fops);
 	if (!entry)
 		pr_warning("Could not create debugfs 'trace' entry\n");
+
+#ifdef CONFIG_KALLSYMS
+	entry = debugfs_create_file("trace_symonly", 0444, d_mctracer,
+				    &mctracer_trace, &mctrace_sym_only_fops);
+	if (!entry)
+		pr_warning("Could not create debugfs 'trace_symonly' entry\n");
+#endif
 }
 #else /* CONFIG_DEBUG_FS */
 static void mctrace_init_debugfs(void)

-- 

  parent reply	other threads:[~2008-01-03  7:16 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-03  7:16 [RFC PATCH 00/11] mcount tracing utility Steven Rostedt
2008-01-03  7:16 ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 01/11] Add basic support for gcc profiler instrumentation Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03  8:31   ` Sam Ravnborg
2008-01-03  8:31     ` Sam Ravnborg
2008-01-03 14:03     ` Steven Rostedt
2008-01-03 14:03       ` Steven Rostedt
2008-01-03  9:21   ` [RFC PATCH 01/11] Add basic support for gcc profiler Ingo Molnar
2008-01-03  9:21     ` [RFC PATCH 01/11] Add basic support for gcc profiler instrumentation Ingo Molnar
2008-01-03 13:58     ` Steven Rostedt
2008-01-03 13:58       ` Steven Rostedt
2008-01-03 18:16       ` [RFC PATCH 01/11] Add basic support for gcc profiler Chris Wright
2008-01-03 18:16         ` [RFC PATCH 01/11] Add basic support for gcc profiler instrumentation Chris Wright
2008-01-03 18:16         ` Chris Wright
2008-01-03 19:15         ` Steven Rostedt
2008-01-03 19:15         ` Steven Rostedt
2008-01-03 19:15           ` Steven Rostedt
2008-01-03 19:17           ` [RFC PATCH 01/11] Add basic support for gcc profiler Chris Wright
2008-01-03 19:17             ` [RFC PATCH 01/11] Add basic support for gcc profiler instrumentation Chris Wright
2008-01-03 19:17           ` Chris Wright
2008-01-03 19:18         ` Jeremy Fitzhardinge
2008-01-03 19:18           ` Jeremy Fitzhardinge
2008-01-03 19:18         ` Jeremy Fitzhardinge
2008-01-03 13:58     ` Steven Rostedt
2008-01-03 16:01   ` [RFC PATCH 01/11] Add basic support for gcc profiler Daniel Walker
2008-01-03 16:01     ` [RFC PATCH 01/11] Add basic support for gcc profiler instrumentation Daniel Walker
2008-01-03 17:35   ` [RFC PATCH 01/11] Add basic support for gcc profiler Mathieu Desnoyers
2008-01-03 17:35     ` [RFC PATCH 01/11] Add basic support for gcc profiler instrumentation Mathieu Desnoyers
2008-01-03 17:55     ` Steven Rostedt
2008-01-03 17:55       ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 02/11] Add fastcall to do_IRQ for i386 Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03 17:36   ` Mathieu Desnoyers
2008-01-03 17:36     ` Mathieu Desnoyers
2008-01-03 17:47     ` Steven Rostedt
2008-01-03 17:47       ` Steven Rostedt
2008-01-07  4:50       ` H. Peter Anvin
2008-01-07  4:50         ` H. Peter Anvin
2008-01-07 12:42         ` Steven Rostedt
2008-01-07 12:42           ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 03/11] Annotate core code that should not be traced Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03 17:42   ` Mathieu Desnoyers
2008-01-03 17:42     ` Mathieu Desnoyers
2008-01-03 18:07     ` Steven Rostedt
2008-01-03 18:07       ` Steven Rostedt
2008-01-03 18:34       ` Mathieu Desnoyers
2008-01-03 18:34         ` Mathieu Desnoyers
2008-01-03  7:16 ` [RFC PATCH 04/11] i386: notrace annotations Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03 17:52   ` Mathieu Desnoyers
2008-01-03 17:52     ` Mathieu Desnoyers
2008-01-03  7:16 ` [RFC PATCH 05/11] x86_64: " Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 06/11] add notrace annotations to vsyscall Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 07/11] mcount based trace in the form of a header file library Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 08/11] tracer add debugfs interface Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 09/11] mcount tracer output file Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03  7:16 ` [RFC PATCH 10/11] mcount tracer show task comm and pid Steven Rostedt
2008-01-03  7:16   ` Steven Rostedt
2008-01-03 17:56   ` Mathieu Desnoyers
2008-01-03 17:56     ` Mathieu Desnoyers
2008-01-06 15:37     ` Ingo Molnar
2008-01-06 15:37       ` Ingo Molnar
2008-01-07  4:45       ` Mathieu Desnoyers
2008-01-07  4:45         ` Mathieu Desnoyers
2008-01-09 16:45         ` Ingo Molnar
2008-01-09 16:45           ` Ingo Molnar
2008-01-03  7:16 ` Steven Rostedt [this message]
2008-01-03  7:16   ` [RFC PATCH 11/11] Add a symbol only trace output Steven Rostedt
2008-01-03 17:22 ` [RFC PATCH 00/11] mcount tracing utility Mathieu Desnoyers
2008-01-03 17:22   ` Mathieu Desnoyers
2008-01-03 17:42   ` Steven Rostedt
2008-01-03 17:42     ` Steven Rostedt
2008-01-03 18:05 ` Andi Kleen
2008-01-03 18:05   ` Andi Kleen
2008-01-04  6:42 ` Frank Ch. Eigler
2008-01-04  6:42   ` Frank Ch. Eigler
2008-01-08 20:35 ` Tim Bird
2008-01-08 20:35   ` Tim Bird

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=20080103072228.372074690@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@ghostprotocols.net \
    --cc=akpm@linux-foundation.org \
    --cc=ghaskins@novell.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=mingo@elte.hu \
    --cc=sparclinux@vger.kernel.org \
    --cc=srostedt@redhat.com \
    --cc=torvalds@linux-foundation.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.