All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: LKML <linux-kernel@vger.kernel.org>, 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>,
	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: Re: [RFC PATCH 10/11] mcount tracer show task comm and pid
Date: Thu, 03 Jan 2008 17:56:50 +0000	[thread overview]
Message-ID: <20080103175650.GE30582@Krystal> (raw)
In-Reply-To: <20080103072228.212967487@goodmis.org>

* Steven Rostedt (rostedt@goodmis.org) wrote:
> This adds the task comm and pid to the trace output. This gives the
> output like:
> 
> CPU 0: sshd:2605 [<ffffffff80251858>] remove_wait_queue+0xc/0x4a <-- [<ffffffff802ad7be>] free_poll_entry+0x1e/0x2a
> CPU 2: bash:2610 [<ffffffff8038c3aa>] tty_check_change+0x9/0xb6 <-- [<ffffffff8038d295>] tty_ioctl+0x59f/0xcdd
> CPU 0: sshd:2605 [<ffffffff80491ec6>] _spin_lock_irqsave+0xe/0x81 <-- [<ffffffff80251863>] remove_wait_queue+0x17/0x4a
> CPU 2: bash:2610 [<ffffffff8024e2f7>] find_vpid+0x9/0x24 <-- [<ffffffff8038d325>] tty_ioctl+0x62f/0xcdd
> CPU 0: sshd:2605 [<ffffffff804923ec>] _spin_unlock_irqrestore+0x9/0x3a <-- [<ffffffff80251891>] remove_wait_queue+0x45/0x4a
> CPU 0: sshd:2605 [<ffffffff802a18b3>] fput+0x9/0x1b <-- [<ffffffff802ad7c6>] free_poll_entry+0x26/0x2a
> 
> 
> Signed-off-by: Steven Rostedt <srostedt@redhat.com>
> ---
>  lib/mcount/tracer.c |    6 +++++-
>  lib/mcount/tracer.h |    3 +++
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> Index: linux-compile.git/lib/mcount/tracer.c
> =================================> --- linux-compile.git.orig/lib/mcount/tracer.c	2008-01-02 23:17:21.000000000 -0500
> +++ linux-compile.git/lib/mcount/tracer.c	2008-01-02 23:17:44.000000000 -0500
> @@ -34,6 +34,7 @@ mctracer_add_trace_entry(struct mctracer
>  {
>  	unsigned long idx, idx_next;
>  	struct mctracer_entry *entry;
> +	struct task_struct *tsk = current;

Aren't there situations, like in the middle of a context switch, where
current is not valid ? Is also poses a problem for early boot, and NMI
tracing.

>  
>  	idx = tr->trace_idx[cpu];
>  	idx_next = idx + 1;
> @@ -52,6 +53,8 @@ mctracer_add_trace_entry(struct mctracer
>  	entry->idx	 = atomic_inc_return(&tr->cnt);
>  	entry->ip	 = ip;
>  	entry->parent_ip = parent_ip;
> +	entry->pid	 = tsk->pid;
> +	memcpy(entry->comm, tsk->comm, TASK_COMM_LEN);
>  }
>  
>  static inline notrace void trace_function(const unsigned long ip,
> @@ -223,7 +226,8 @@ static int s_show(struct seq_file *m, vo
>  			return -1;
>  		}
>  
> -		seq_printf(m, "  CPU %d:  ", iter->cpu);
> +		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, " <-- ");
> Index: linux-compile.git/lib/mcount/tracer.h
> =================================> --- linux-compile.git.orig/lib/mcount/tracer.h	2008-01-02 23:16:15.000000000 -0500
> +++ linux-compile.git/lib/mcount/tracer.h	2008-01-02 23:17:44.000000000 -0500
> @@ -2,11 +2,14 @@
>  #define _LINUX_MCOUNT_TRACER_H
>  
>  #include <asm/atomic.h>
> +#include <linux/sched.h>
>  
>  struct mctracer_entry {
>  	unsigned long idx;
>  	unsigned long ip;
>  	unsigned long parent_ip;
> +	char comm[TASK_COMM_LEN];
> +	pid_t pid;
>  };
>  
>  struct mctracer_trace {
> 
> -- 

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

WARNING: multiple messages have this Message-ID (diff)
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: LKML <linux-kernel@vger.kernel.org>, 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>,
	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: Re: [RFC PATCH 10/11] mcount tracer show task comm and pid
Date: Thu, 3 Jan 2008 12:56:50 -0500	[thread overview]
Message-ID: <20080103175650.GE30582@Krystal> (raw)
In-Reply-To: <20080103072228.212967487@goodmis.org>

* Steven Rostedt (rostedt@goodmis.org) wrote:
> This adds the task comm and pid to the trace output. This gives the
> output like:
> 
> CPU 0: sshd:2605 [<ffffffff80251858>] remove_wait_queue+0xc/0x4a <-- [<ffffffff802ad7be>] free_poll_entry+0x1e/0x2a
> CPU 2: bash:2610 [<ffffffff8038c3aa>] tty_check_change+0x9/0xb6 <-- [<ffffffff8038d295>] tty_ioctl+0x59f/0xcdd
> CPU 0: sshd:2605 [<ffffffff80491ec6>] _spin_lock_irqsave+0xe/0x81 <-- [<ffffffff80251863>] remove_wait_queue+0x17/0x4a
> CPU 2: bash:2610 [<ffffffff8024e2f7>] find_vpid+0x9/0x24 <-- [<ffffffff8038d325>] tty_ioctl+0x62f/0xcdd
> CPU 0: sshd:2605 [<ffffffff804923ec>] _spin_unlock_irqrestore+0x9/0x3a <-- [<ffffffff80251891>] remove_wait_queue+0x45/0x4a
> CPU 0: sshd:2605 [<ffffffff802a18b3>] fput+0x9/0x1b <-- [<ffffffff802ad7c6>] free_poll_entry+0x26/0x2a
> 
> 
> Signed-off-by: Steven Rostedt <srostedt@redhat.com>
> ---
>  lib/mcount/tracer.c |    6 +++++-
>  lib/mcount/tracer.h |    3 +++
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> Index: linux-compile.git/lib/mcount/tracer.c
> ===================================================================
> --- linux-compile.git.orig/lib/mcount/tracer.c	2008-01-02 23:17:21.000000000 -0500
> +++ linux-compile.git/lib/mcount/tracer.c	2008-01-02 23:17:44.000000000 -0500
> @@ -34,6 +34,7 @@ mctracer_add_trace_entry(struct mctracer
>  {
>  	unsigned long idx, idx_next;
>  	struct mctracer_entry *entry;
> +	struct task_struct *tsk = current;

Aren't there situations, like in the middle of a context switch, where
current is not valid ? Is also poses a problem for early boot, and NMI
tracing.

>  
>  	idx = tr->trace_idx[cpu];
>  	idx_next = idx + 1;
> @@ -52,6 +53,8 @@ mctracer_add_trace_entry(struct mctracer
>  	entry->idx	 = atomic_inc_return(&tr->cnt);
>  	entry->ip	 = ip;
>  	entry->parent_ip = parent_ip;
> +	entry->pid	 = tsk->pid;
> +	memcpy(entry->comm, tsk->comm, TASK_COMM_LEN);
>  }
>  
>  static inline notrace void trace_function(const unsigned long ip,
> @@ -223,7 +226,8 @@ static int s_show(struct seq_file *m, vo
>  			return -1;
>  		}
>  
> -		seq_printf(m, "  CPU %d:  ", iter->cpu);
> +		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, " <-- ");
> Index: linux-compile.git/lib/mcount/tracer.h
> ===================================================================
> --- linux-compile.git.orig/lib/mcount/tracer.h	2008-01-02 23:16:15.000000000 -0500
> +++ linux-compile.git/lib/mcount/tracer.h	2008-01-02 23:17:44.000000000 -0500
> @@ -2,11 +2,14 @@
>  #define _LINUX_MCOUNT_TRACER_H
>  
>  #include <asm/atomic.h>
> +#include <linux/sched.h>
>  
>  struct mctracer_entry {
>  	unsigned long idx;
>  	unsigned long ip;
>  	unsigned long parent_ip;
> +	char comm[TASK_COMM_LEN];
> +	pid_t pid;
>  };
>  
>  struct mctracer_trace {
> 
> -- 

-- 
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

  reply	other threads:[~2008-01-03 17:56 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 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:17           ` Chris Wright
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:15         ` Steven Rostedt
2008-01-03 19:18         ` Jeremy Fitzhardinge
2008-01-03 19:18         ` Jeremy Fitzhardinge
2008-01-03 19:18           ` Jeremy Fitzhardinge
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 [this message]
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 ` [RFC PATCH 11/11] Add a symbol only trace output Steven Rostedt
2008-01-03  7:16   ` 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=20080103175650.GE30582@Krystal \
    --to=mathieu.desnoyers@polymtl.ca \
    --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=mingo@elte.hu \
    --cc=rostedt@goodmis.org \
    --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.