All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Peter Zijlstra <peterz@infradead.org>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Avadh Patel <avadh4all@gmail.com>
Subject: [PATCH 5/5] tracing: add saved_cmdlines file to show cached task comms
Date: Wed, 15 Apr 2009 22:18:35 -0400	[thread overview]
Message-ID: <20090416021928.956953374@goodmis.org> (raw)
In-Reply-To: 20090416021830.556671772@goodmis.org

[-- Attachment #1: 0005-tracing-add-saved_cmdlines-file-to-show-cached-task.patch --]
[-- Type: text/plain, Size: 2260 bytes --]

From: Avadh Patel <avadh4all@gmail.com>

Export the cached task comms to userspace. This allows user apps to translate
the pids from a trace into their respective task command lines.

[ added error checking and use of buf pointer to index file_buf
    - Steven Rostedt ]

Signed-off-by: Avadh Patel <avadh4all@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 kernel/trace/trace.c |   53 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 53 insertions(+), 0 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 2d69b26..031c46f 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -2422,6 +2422,56 @@ static const struct file_operations tracing_readme_fops = {
 };
 
 static ssize_t
+tracing_saved_cmdlines_read(struct file *file, char __user *ubuf,
+				size_t cnt, loff_t *ppos)
+{
+	char *buf_comm;
+	char *file_buf;
+	char *buf;
+	int len = 0;
+	int pid;
+	int i;
+
+	file_buf = kmalloc(SAVED_CMDLINES*(16+TASK_COMM_LEN), GFP_KERNEL);
+	if (!file_buf)
+		return -ENOMEM;
+
+	buf_comm = kmalloc(TASK_COMM_LEN, GFP_KERNEL);
+	if (!buf_comm) {
+		kfree(file_buf);
+		return -ENOMEM;
+	}
+
+	buf = file_buf;
+
+	for (i = 0; i < SAVED_CMDLINES; i++) {
+		int r;
+
+		pid = map_cmdline_to_pid[i];
+		if (pid == -1 || pid == NO_CMDLINE_MAP)
+			continue;
+
+		trace_find_cmdline(pid, buf_comm);
+		r = sprintf(buf, "%d %s\n", pid, buf_comm);
+		buf += r;
+		len += r;
+	}
+
+	len = simple_read_from_buffer(ubuf, cnt, ppos,
+				      file_buf, len);
+
+	kfree(file_buf);
+	kfree(buf_comm);
+
+	return len;
+}
+
+static const struct file_operations tracing_saved_cmdlines_fops = {
+    .open       = tracing_open_generic,
+    .read       = tracing_saved_cmdlines_read,
+};
+
+static ssize_t
 tracing_ctrl_read(struct file *filp, char __user *ubuf,
 		  size_t cnt, loff_t *ppos)
 {
@@ -3973,6 +4023,9 @@ static __init int tracer_init_debugfs(void)
 	trace_create_file("trace_marker", 0220, d_tracer,
 			NULL, &tracing_mark_fops);
 
+	trace_create_file("saved_cmdlines", 0444, d_tracer,
+			NULL, &tracing_saved_cmdlines_fops);
+
 #ifdef CONFIG_DYNAMIC_FTRACE
 	trace_create_file("dyn_ftrace_total_info", 0444, d_tracer,
 			&ftrace_update_tot_cnt, &tracing_dyn_info_fops);
-- 
1.6.2.1

-- 

  parent reply	other threads:[~2009-04-16  2:20 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-16  2:18 [PATCH 0/5] [GIT PULL] updates for tip Steven Rostedt
2009-04-16  2:18 ` [PATCH 1/5] ftrace: use module notifier for function tracer Steven Rostedt
2009-04-16 15:36   ` Frederic Weisbecker
2009-04-16 15:53     ` Steven Rostedt
2009-04-17 11:44   ` Steven Rostedt
2009-04-19 11:25   ` Rusty Russell
2009-04-20 13:57     ` Steven Rostedt
2009-04-21  5:15       ` Rusty Russell
2009-04-21 13:13         ` Steven Rostedt
2009-04-21 13:58           ` Ingo Molnar
2009-04-21 17:51     ` Tim Abbott
2009-04-21 18:17       ` Steven Rostedt
2009-04-21 18:47         ` Tim Abbott
2009-04-22  9:16       ` Ingo Molnar
2009-04-22 22:20         ` Tim Abbott
2009-04-22 22:57           ` Masami Hiramatsu
2009-04-23 19:40             ` Anders Kaseorg
2009-04-23 19:57               ` Mathieu Desnoyers
2009-04-23 22:31                 ` Tim Abbott
2009-04-24  3:11                   ` Masami Hiramatsu
2009-04-23 20:06               ` Masami Hiramatsu
2009-04-16  2:18 ` [PATCH 2/5] tracing/events: add startup tests for events Steven Rostedt
2009-04-16  8:39   ` [PATCH] tracing: add #include <linux/delay.h> to fix build failure in test_work() Ingo Molnar
2009-04-16 14:08     ` Steven Rostedt
2009-04-17  0:30       ` Ingo Molnar
2009-04-16 15:41   ` [PATCH 2/5] tracing/events: add startup tests for events Frederic Weisbecker
2009-04-16 15:51     ` Steven Rostedt
2009-04-16 16:02   ` Frederic Weisbecker
2009-04-16  2:18 ` [PATCH 3/5] tracing/events: add rcu locking around trace event prints Steven Rostedt
2009-04-17 14:08   ` Steven Rostedt
2009-04-17 15:20     ` Jeremy Fitzhardinge
2009-04-17 15:42       ` Steven Rostedt
2009-04-17 23:53         ` Jeremy Fitzhardinge
2009-04-17 16:18     ` Theodore Tso
2009-04-17 16:32       ` Jeremy Fitzhardinge
2009-04-17 16:41         ` Steven Rostedt
2009-05-07  2:10   ` Steven Rostedt
2009-05-07 11:32     ` Ingo Molnar
2009-05-07 13:10       ` Steven Rostedt
2009-04-16  2:18 ` [PATCH 4/5] tracing/events/ring-buffer: expose format of ring buffer headers to users Steven Rostedt
2009-04-16  2:18 ` Steven Rostedt [this message]
2009-04-16 15:54   ` [PATCH 5/5] tracing: add saved_cmdlines file to show cached task comms Frederic Weisbecker
2009-04-16 15:58     ` Steven Rostedt
2009-04-16 16:05       ` Frederic Weisbecker
2009-04-16  9:51 ` [PATCH 0/5] [GIT PULL] updates for tip Ingo Molnar
2009-04-16  9:53   ` Ingo Molnar
2009-04-16 13:52   ` Steven Rostedt
2009-04-16 16:12     ` Ingo Molnar
2009-04-16 16:22       ` Steven Rostedt
2009-04-17  0:29         ` Ingo Molnar
2009-04-16 16:30       ` Ingo Molnar

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=20090416021928.956953374@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=avadh4all@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    /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.