All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	lkml <linux-kernel@vger.kernel.org>, Avi Kivity <avi@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <andi@firstfloor.org>,
	Jim Keniston <jkenisto@us.ibm.com>,
	"K.Prasad" <prasad@linux.vnet.ibm.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	systemtap <systemtap@sources.redhat.com>,
	kvm <kvm@vger.kernel.org>
Subject: Re: [PATCH -tip v5 0/7] tracing: kprobe-based event tracer and x86 instruction decoder
Date: Sat, 9 May 2009 06:43:02 +0200	[thread overview]
Message-ID: <20090509044302.GH8007@elte.hu> (raw)
In-Reply-To: <20090509004829.5505.38720.stgit@localhost.localdomain>


* Masami Hiramatsu <mhiramat@redhat.com> wrote:

> Hi,
> 
> Here are the patches of kprobe-based event tracer for x86, version 
> 5, which allows you to probe various kernel events through ftrace 
> interface.
> 
> This version supports only x86(-32/-64) (but porting it on other 
> arch just needs kprobes/kretprobes and register and stack access 
> APIs).
> 
> This patchset also includes x86(-64) instruction decoder which 
> supports non-SSE/FP opcodes and includes x86 opcode map. I think 
> it will be possible to share this opcode map with KVM's decoder.
> 
> This series can be applied on the latest linux-2.6-tip tree.
> 
> This patchset includes following changes:
> - Add x86 instruction decoder [1/7]
> - Check insertion point safety in kprobe [2/7]
> - Cleanup fix_riprel() with insn decoder [3/7]
> - Add kprobe-tracer plugin [4/7]
> - Fix kernel_trap_sp() on x86 according to systemtap runtime. [5/7]
> - Add arch-dep register and stack fetching functions [6/7]
> - Support fetching various status (register/stack/memory/etc.) [7/7]
> 
> Future items:
> - .init function tracing support.
> - Support primitive types(long, ulong, int, uint, etc) for args.

Ok, this looks pretty complete already.

Two high-level comments:

 - There's no self-test - would it be possible to add one? See 
   trace_selftest* in kernel/trace/

 - No generic integration.

It would be nice if these ops:

> E.g.
>   echo p do_sys_open a0 a1 a2 a3 > /debug/tracing/kprobe_events
> 
>  This sets a kprobe on the top of do_sys_open() function with recording
> 1st to 4th arguments.
> 
>   echo r do_sys_open rv rp >> /debug/tracing/kprobe_events

were just generally available in just about any other tracer - a bit 
like the event tracer.

It would also be nice to use the 'function attributes' facilities of 
the function tracer, combined with a new special syntax of the 
function-filter regex parser, to enable the recovery of return 
values (or the call arguments), for selected set of functions.

For example, today we can already do things like:

  echo 'sys_read:traceon:4' > /debug/tracing/set_ftrace_filter

for 'trace triggers': the above will trigger tracing to be enabled 
on the entry of sys_read(), 4 times.

Likewise, something like:

  echo 'sys_read:args' > /debug/tracing/set_ftrace_filter
  echo 'sys_read:return' > /debug/tracing/set_ftrace_filter

Could activate kprobes based argument and return-value tracing.

	Ingo

WARNING: multiple messages have this Message-ID (diff)
From: Ingo Molnar <mingo@elte.hu>
To: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
		lkml <linux-kernel@vger.kernel.org>, Avi Kivity <avi@redhat.com>,
		"H. Peter Anvin" <hpa@zytor.com>,
		Frederic Weisbecker <fweisbec@gmail.com>,
		Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
		Andrew Morton <akpm@linux-foundation.org>,
		Andi Kleen <andi@firstfloor.org>,
		Jim Keniston <jkenisto@us.ibm.com>,
		"K.Prasad" <prasad@linux.vnet.ibm.com>,
		KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
		systemtap <systemtap@sources.redhat.com>,
	kvm <kvm@vger.kernel.org>
Subject: Re: [PATCH -tip v5 0/7] tracing: kprobe-based event tracer and x86 	instruction decoder
Date: Sat, 9 May 2009 06:43:02 +0200	[thread overview]
Message-ID: <20090509044302.GH8007@elte.hu> (raw)
In-Reply-To: <20090509004829.5505.38720.stgit@localhost.localdomain>


* Masami Hiramatsu <mhiramat@redhat.com> wrote:

> Hi,
> 
> Here are the patches of kprobe-based event tracer for x86, version 
> 5, which allows you to probe various kernel events through ftrace 
> interface.
> 
> This version supports only x86(-32/-64) (but porting it on other 
> arch just needs kprobes/kretprobes and register and stack access 
> APIs).
> 
> This patchset also includes x86(-64) instruction decoder which 
> supports non-SSE/FP opcodes and includes x86 opcode map. I think 
> it will be possible to share this opcode map with KVM's decoder.
> 
> This series can be applied on the latest linux-2.6-tip tree.
> 
> This patchset includes following changes:
> - Add x86 instruction decoder [1/7]
> - Check insertion point safety in kprobe [2/7]
> - Cleanup fix_riprel() with insn decoder [3/7]
> - Add kprobe-tracer plugin [4/7]
> - Fix kernel_trap_sp() on x86 according to systemtap runtime. [5/7]
> - Add arch-dep register and stack fetching functions [6/7]
> - Support fetching various status (register/stack/memory/etc.) [7/7]
> 
> Future items:
> - .init function tracing support.
> - Support primitive types(long, ulong, int, uint, etc) for args.

Ok, this looks pretty complete already.

Two high-level comments:

 - There's no self-test - would it be possible to add one? See 
   trace_selftest* in kernel/trace/

 - No generic integration.

It would be nice if these ops:

> E.g.
>   echo p do_sys_open a0 a1 a2 a3 > /debug/tracing/kprobe_events
> 
>  This sets a kprobe on the top of do_sys_open() function with recording
> 1st to 4th arguments.
> 
>   echo r do_sys_open rv rp >> /debug/tracing/kprobe_events

were just generally available in just about any other tracer - a bit 
like the event tracer.

It would also be nice to use the 'function attributes' facilities of 
the function tracer, combined with a new special syntax of the 
function-filter regex parser, to enable the recovery of return 
values (or the call arguments), for selected set of functions.

For example, today we can already do things like:

  echo 'sys_read:traceon:4' > /debug/tracing/set_ftrace_filter

for 'trace triggers': the above will trigger tracing to be enabled 
on the entry of sys_read(), 4 times.

Likewise, something like:

  echo 'sys_read:args' > /debug/tracing/set_ftrace_filter
  echo 'sys_read:return' > /debug/tracing/set_ftrace_filter

Could activate kprobes based argument and return-value tracing.

	Ingo

  parent reply	other threads:[~2009-05-09  4:44 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-09  0:48 [PATCH -tip v5 0/7] tracing: kprobe-based event tracer and x86 instruction decoder Masami Hiramatsu
2009-05-09  0:48 ` Masami Hiramatsu
2009-05-09  0:48 ` [PATCH -tip v5 1/7] x86: instruction decorder API Masami Hiramatsu
2009-05-11  9:27   ` Christoph Hellwig
2009-05-11  9:27     ` Christoph Hellwig
2009-05-11 14:36     ` Masami Hiramatsu
2009-05-11 14:36       ` Masami Hiramatsu
2009-05-13  8:23   ` Gleb Natapov
2009-05-13  8:23     ` Gleb Natapov
2009-05-13  9:35     ` Przemysław Pawełczyk
2009-05-13  9:43       ` Gleb Natapov
2009-05-13  9:43         ` Gleb Natapov
2009-05-13 14:35         ` Masami Hiramatsu
2009-05-13 14:35           ` Masami Hiramatsu
2009-05-13 15:20           ` Gleb Natapov
2009-05-09  0:48 ` [PATCH -tip v5 2/7] kprobes: checks probe address is instruction boudary on x86 Masami Hiramatsu
2009-05-09  0:48   ` Masami Hiramatsu
2009-05-11 14:20   ` Steven Rostedt
2009-05-11 15:01     ` Masami Hiramatsu
2009-05-11 15:01       ` Masami Hiramatsu
2009-05-11 15:14       ` Masami Hiramatsu
2009-05-11 15:14         ` Masami Hiramatsu
2009-05-11 15:22       ` Steven Rostedt
2009-05-11 18:21         ` Masami Hiramatsu
2009-05-11 18:21           ` Masami Hiramatsu
2009-05-09  0:48 ` [PATCH -tip v5 3/7] kprobes: cleanup fix_riprel() using insn decoder " Masami Hiramatsu
2009-05-09  0:48   ` Masami Hiramatsu
2009-05-09  0:48 ` [PATCH -tip v5 4/7] tracing: add kprobe-based event tracer Masami Hiramatsu
2009-05-09 16:36   ` Frédéric Weisbecker
2009-05-09 16:36     ` Frédéric Weisbecker
2009-05-09 17:33     ` Masami Hiramatsu
2009-05-11 21:26       ` Frederic Weisbecker
2009-05-11  9:32   ` Christoph Hellwig
2009-05-11 10:53     ` Ingo Molnar
2009-05-11 10:53       ` Ingo Molnar
2009-05-11 15:28     ` Frank Ch. Eigler
2009-05-11 15:28       ` Frank Ch. Eigler
2009-05-09  0:49 ` [PATCH -tip v5 5/7] x86: fix kernel_trap_sp() Masami Hiramatsu
2009-05-11  9:28   ` Christoph Hellwig
2009-05-11 13:48     ` Masami Hiramatsu
2009-05-11 13:48       ` Masami Hiramatsu
2009-05-09  0:49 ` [PATCH -tip v5 6/7] x86: add pt_regs register and stack access APIs Masami Hiramatsu
2009-05-09  0:49 ` [PATCH -tip v5 7/7] tracing: add arguments support on kprobe-based event tracer Masami Hiramatsu
2009-05-11 14:35   ` Steven Rostedt
2009-05-11 14:35     ` Steven Rostedt
2009-05-09  4:43 ` Ingo Molnar [this message]
2009-05-09  4:43   ` [PATCH -tip v5 0/7] tracing: kprobe-based event tracer and x86 instruction decoder Ingo Molnar
2009-05-11 14:40   ` Masami Hiramatsu
2009-05-11 14:56     ` Steven Rostedt
2009-05-11 20:05       ` Masami Hiramatsu
2009-05-11 20:05         ` Masami Hiramatsu
2009-05-11 21:47         ` Ingo Molnar
2009-05-11 21:47           ` Ingo Molnar
2009-05-12 22:03   ` Masami Hiramatsu
2009-05-12 22:03     ` Masami Hiramatsu
2009-05-13 13:21     ` Ingo Molnar
2009-05-13 13:21       ` 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=20090509044302.GH8007@elte.hu \
    --to=mingo@elte.hu \
    --cc=akpm@linux-foundation.org \
    --cc=ananth@in.ibm.com \
    --cc=andi@firstfloor.org \
    --cc=avi@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jkenisto@us.ibm.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhiramat@redhat.com \
    --cc=prasad@linux.vnet.ibm.com \
    --cc=rostedt@goodmis.org \
    --cc=systemtap@sources.redhat.com \
    /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.