Lai Jiangshan 
							
						 
					 
					
						
						
							
						
						79b4082108 
					 
					
						
						
							
							tracing/kprobe: Show sign of fields in trace_kprobe format files  
						
						... 
						
						
						
						The format files of trace_kprobe do not show the sign of the fields.
The other format files show the field signed type of the fields and
this patch makes the trace_kprobe formats consistent with the others.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com >
LKML-Reference: <4B273D27.5040009@cn.fujitsu.com >
Acked-by: Masami Hiramatsu <mhiramat@redhat.com >
Signed-off-by: Steven Rostedt <rostedt@goodmis.org > 
						
						
					 
					
						2009-12-30 10:27:03 -05:00 
						 
				 
			
				
					
						
							
							
								Li Zefan 
							
						 
					 
					
						
						
							
						
						07b139c8c8 
					 
					
						
						
							
							perf events: Remove CONFIG_EVENT_PROFILE  
						
						... 
						
						
						
						Quoted from Ingo:
| This reminds me - i think we should eliminate CONFIG_EVENT_PROFILE -
| it's an unnecessary Kconfig complication. If both PERF_EVENTS and
| EVENT_TRACING is enabled we should expose generic tracepoints.
|
| Nor is it limited to event 'profiling', so it has become a misnomer as
| well.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <4B2F1557.2050705@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-12-28 10:33:06 +01:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						6f3cf44047 
					 
					
						
						
							
							kprobe-tracer: Check new event/group name  
						
						... 
						
						
						
						Check new event/group name is same syntax as a C symbol. In other
words, checking the name is as like as other tracepoint events.
This can prevent user to create an event with useless name (e.g.
foo|bar, foo*bar).
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091216222408.14459.68790.stgit@dhcp-100-2-132.bos.redhat.com >
[ v2: minor cleanups ]
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-12-17 09:42:44 +01:00 
						 
				 
			
				
					
						
							
							
								Ingo Molnar 
							
						 
					 
					
						
						
							
						
						cc0104e877 
					 
					
						
						
							
							Merge branch 'linus' into tracing/urgent  
						
						... 
						
						
						
						Conflicts:
	kernel/trace/trace_kprobe.c
Merge reason: resolve the conflict.
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-12-14 09:16:49 +01:00 
						 
				 
			
				
					
						
							
							
								Li Zefan 
							
						 
					 
					
						
						
							
						
						e00bf2ec60 
					 
					
						
						
							
							tracing: Change event->profile_count to be int type  
						
						... 
						
						
						
						Like total_profile_count, struct ftrace_event_call::profile_count
is protected by event_mutex, so it doesn't need to be atomic_t.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Jason Baron <jbaron@redhat.com >
Cc: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
LKML-Reference: <4B1DC549.5010705@cn.fujitsu.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-12-13 18:37:28 +01:00 
						 
				 
			
				
					
						
							
							
								Li Zefan 
							
						 
					 
					
						
						
							
						
						614a71a26b 
					 
					
						
						
							
							tracing: Pull up calls to trace_define_common_fields()  
						
						... 
						
						
						
						Call trace_define_common_fields() in event_create_dir() only.
This avoids trace events to handle it from their define_fields
callbacks and shrinks the kernel code size:
   text    data     bss     dec     hex filename
5346802 1961864 7103260 14411926         dbe896 vmlinux.o.old
5345151 1961864 7103260 14410275         dbe223 vmlinux.o
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: Masami Hiramatsu <mhiramat@redhat.com >
LKML-Reference: <4B1DC49C.8000107@cn.fujitsu.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-12-13 18:34:23 +01:00 
						 
				 
			
				
					
						
							
							
								Frederic Weisbecker 
							
						 
					 
					
						
						
							
						
						822a696111 
					 
					
						
						
							
							tracing/kprobes: Fix field creation's bad error handling  
						
						... 
						
						
						
						When we define the common event fields in kprobe, we invert the error
handling and return immediately in case of success. Then we omit
to define specific kprobes fields (ip and nargs), and specific
kretprobes fields (func, ret_ip, nargs). And we only define them
when we fail to create common fields.
The most visible consequence is that we can't create filter for
k(ret)probes specific fields.
This patch re-invert the success/error handling to fix it.
Reported-by: Lai Jiangshan <laijs@cn.fujitsu.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Acked-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Li Zefan <lizf@cn.fujitsu.com >
LKML-Reference: <1260263815-5167-1-git-send-regression-fweisbec@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-12-09 10:32:21 +01:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						a7c312bed7 
					 
					
						
						
							
							trace-kprobe: Support delete probe syntax  
						
						... 
						
						
						
						Support delete probe syntax. The syntax is "-:[group/]event".
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
LKML-Reference: <20091208220316.10142.39192.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com > 
						
						
					 
					
						2009-12-09 07:26:53 +01:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						ba8665d7dd 
					 
					
						
						
							
							trace_kprobes: Fix a memory leak bug and check kstrdup() return value  
						
						... 
						
						
						
						Fix a memory leak case in create_trace_probe(). When an argument
is too long (> MAX_ARGSTR_LEN), it just jumps to error path. In
that case tp->args[i].name is not released.
This also fixes a bug to check kstrdup()'s return value.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: systemtap <systemtap@sources.redhat.com >
Cc: DLE <dle-develop@lists.sourceforge.net >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <20091201001919.10235.56455.stgit@harusame>
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-12-01 08:19:59 +01:00 
						 
				 
			
				
					
						
							
							
								Lai Jiangshan 
							
						 
					 
					
						
						
							
						
						52a11f3549 
					 
					
						
						
							
							trace_kprobes: Don't output zero offset  
						
						... 
						
						
						
						"symbol_name+0" is not so friendly.
It makes the output longer.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com >
Acked-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <4B0CEBCB.7080309@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-11-27 06:43:05 +01:00 
						 
				 
			
				
					
						
							
							
								Lai Jiangshan 
							
						 
					 
					
						
						
							
						
						3d9b2e1ddf 
					 
					
						
						
							
							trace_kprobes: Always show group name  
						
						... 
						
						
						
						Sometimes the group name is not "kprobes",
It'll be better if we can read it from tracing/kprobe_events.
 # echo 'r:laijs/vfs_read vfs_read %ax' > kprobe_events
 # cat kprobe_events
 r:laijs/vfs_read vfs_read %ax=%ax
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com >
Acked-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <4B0CEBAF.6000104@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-11-27 06:43:04 +01:00 
						 
				 
			
				
					
						
							
							
								Lai Jiangshan 
							
						 
					 
					
						
						
							
						
						abab9d37d2 
					 
					
						
						
							
							trace_kprobes: Fix memory leak  
						
						... 
						
						
						
						tp->nr_args is not set before we "goto error",
it causes memory leak for free_trace_probe() use tp->nr_args
to free memory of args.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com >
Acked-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
LKML-Reference: <4B0CEB95.2060107@cn.fujitsu.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-11-27 06:43:04 +01:00 
						 
				 
			
				
					
						
							
							
								Peter Zijlstra 
							
						 
					 
					
						
						
							
						
						4ed7c92d68 
					 
					
						
						
							
							perf_events: Undo some recursion damage  
						
						... 
						
						
						
						Make perf_swevent_get_recursion_context return a context number
and disable preemption.
This could be used to remove the IRQ disable from the trace bit
and index the per-cpu buffer with.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Paul Mackerras <paulus@samba.org >
LKML-Reference: <20091123103819.993226816@chello.nl >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-11-23 11:49:57 +01:00 
						 
				 
			
				
					
						
							
							
								Frederic Weisbecker 
							
						 
					 
					
						
						
							
						
						ce71b9df88 
					 
					
						
						
							
							tracing: Use the perf recursion protection from trace event  
						
						... 
						
						
						
						When we commit a trace to perf, we first check if we are
recursing in the same buffer so that we don't mess-up the buffer
with a recursing trace. But later on, we do the same check from
perf to avoid commit recursion. The recursion check is desired
early before we touch the buffer but we want to do this check
only once.
Then export the recursion protection from perf and use it from
the trace events before submitting a trace.
v2: Put appropriate Reported-by tag
Reported-by: Peter Zijlstra <peterz@infradead.org >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jason Baron <jbaron@redhat.com >
LKML-Reference: <1258864015-10579-1-git-send-email-fweisbec@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-11-22 09:03:42 +01:00 
						 
				 
			
				
					
						
							
							
								Frederic Weisbecker 
							
						 
					 
					
						
						
							
						
						444a2a3bcd 
					 
					
						
						
							
							tracing, perf_events: Protect the buffer from recursion in perf  
						
						... 
						
						
						
						While tracing using events with perf, if one enables the
lockdep:lock_acquire event, it will infect every other perf
trace events.
Basically, you can enable whatever set of trace events through
perf but if this event is part of the set, the only result we
can get is a long list of lock_acquire events of rcu read lock,
and only that.
This is because of a recursion inside perf.
1) When a trace event is triggered, it will fill a per cpu
   buffer and submit it to perf.
2) Perf will commit this event but will also protect some data
   using rcu_read_lock
3) A recursion appears: rcu_read_lock triggers a lock_acquire
   event that will fill the per cpu event and then submit the
   buffer to perf.
4) Perf detects a recursion and ignores it
5) Perf continues its work on the previous event, but its buffer
   has been overwritten by the lock_acquire event, it has then
   been turned into a lock_acquire event of rcu read lock
Such scenario also happens with lock_release with
rcu_read_unlock().
We could turn the rcu_read_lock() into __rcu_read_lock() to drop
the lock debugging from perf fast path, but that would make us
lose the rcu debugging and that doesn't prevent from other
possible kind of recursion from perf in the future.
This patch adds a recursion protection based on a counter on the
perf trace per cpu buffers to solve the problem.
-v2: Fixed lost whitespace, added reviewed-by tag
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com >
Reviewed-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Jason Baron <jbaron@redhat.com >
LKML-Reference: <1257477185-7838-1-git-send-email-fweisbec@gmail.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-11-08 10:31:42 +01:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						77b44d1b7c 
					 
					
						
						
							
							tracing/kprobes: Rename Kprobe-tracer to kprobe-event  
						
						... 
						
						
						
						Rename Kprobes-based event tracer to kprobes-based tracing event
(kprobe-event), since it is not a tracer but an extensible
tracing event interface.
This also changes CONFIG_KPROBE_TRACER to CONFIG_KPROBE_EVENT
and sets it y by default.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Acked-by: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
LKML-Reference: <20091104001247.3454.14131.stgit@harusame>
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-11-04 13:02:48 +01:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						dd004c475c 
					 
					
						
						
							
							kprobe-tracer: Compare both of event-name and event-group to find probe  
						
						... 
						
						
						
						Fix find_probe_event() to compare both of event-name and
event-group. Without this fix, kprobe-tracer overwrites existing
same event-name probe even if its group-name is different.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
LKML-Reference: <20091027204244.30545.27516.stgit@harusame>
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-10-29 08:47:47 +01:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						e63cc2397e 
					 
					
						
						
							
							tracing/kprobes: Add failure messages for debugging  
						
						... 
						
						
						
						Add verbose failure messages to kprobe-tracer for debugging.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
LKML-Reference: <20091017000728.16556.16713.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-10-17 09:53:58 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						f397af06e4 
					 
					
						
						
							
							tracing/kprobes: Update kprobe-tracer selftest against new syntax  
						
						... 
						
						
						
						Update kprobe-tracer selftest since command syntax has been
changed.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
LKML-Reference: <20091017000720.16556.26343.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu > 
						
						
					 
					
						2009-10-17 09:53:57 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						e93f4d8539 
					 
					
						
						
							
							tracing/kprobes: Robustify fixed field names against variable field names conflicts  
						
						... 
						
						
						
						Rename probe-common fixed field names to harder conflictable names,
because current 'ip', 'func', and other probe field names are easily in
conflict with user-specified variable names.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Frank Ch. Eigler <fche@redhat.com >
LKML-Reference: <20091007222814.1684.407.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-10-12 23:31:51 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						a703d946e8 
					 
					
						
						
							
							tracing/kprobes: Avoid field name confliction  
						
						... 
						
						
						
						Check whether the argument name is in conflict with other field names
while creating a kprobe through the debugfs interface.
Changes in v3:
 - Check strcmp() == 0 instead of !strcmp().
Changes in v2:
 - Add common_lock_depth to reserved name list.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Frank Ch. Eigler <fche@redhat.com >
LKML-Reference: <20091007222807.1684.26880.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-10-12 23:31:49 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						2e06ff6389 
					 
					
						
						
							
							tracing/kprobes: Make special variable names more self-explainable  
						
						... 
						
						
						
						Rename special variables to more self-explainable names as below:
- $rv to $retval
- $sa to $stack
- $aN to $argN
- $sN to $stackN
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Frank Ch. Eigler <fche@redhat.com >
LKML-Reference: <20091007222759.1684.3319.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-10-12 23:30:29 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						99329c44f2 
					 
					
						
						
							
							tracing/kprobes: Remove '$ra' special variable  
						
						... 
						
						
						
						Remove '$ra' (return address) because it is already shown at the head of
each entry.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Frank Ch. Eigler <fche@redhat.com >
LKML-Reference: <20091007222748.1684.12711.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-10-12 19:24:05 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						405b2651e4 
					 
					
						
						
							
							tracing/kprobes: Add $ prefix to special variables  
						
						... 
						
						
						
						Add $ prefix to the special variables(e.g. sa, rv) of kprobe-tracer.
This resolves consistency issues between kprobe_events and perf-kprobe.
The main goal is to avoid conflicts between local variable names of
probed functions, used by perf probe, and special variables used
in the kprobe event creation interface (stack values, etc...) and
also available from perf probe.
ie: we don't want rv (return value) to conflict with a local variable
named rv in a probed function.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Mike Galbraith <efault@gmx.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Frank Ch. Eigler <fche@redhat.com >
LKML-Reference: <20091007222740.1684.91170.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-10-12 19:21:35 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						a1a138d05f 
					 
					
						
						
							
							tracing/kprobes: Use global event perf buffers in kprobe tracer  
						
						... 
						
						
						
						Use new percpu global event buffer instead of stack in kprobe
tracer while tracing through perf.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Acked-by: Ingo Molnar <mingo@elte.hu >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090925182011.10157.60140.stgit@omoto>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-10-03 02:21:39 +02:00 
						 
				 
			
				
					
						
							
							
								Frederic Weisbecker 
							
						 
					 
					
						
						
							
						
						d7a4b414ee 
					 
					
						
						
							
							Merge commit 'linus/master' into tracing/kprobes  
						
						... 
						
						
						
						Conflicts:
	kernel/trace/Makefile
	kernel/trace/trace.h
	kernel/trace/trace_event_types.h
	kernel/trace/trace_export.c
Merge reason:
	Sync with latest significant tracing core changes. 
						
						
					 
					
						2009-09-23 23:08:43 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						5a0d9050db 
					 
					
						
						
							
							tracing/kprobes: Disable kprobe events by default after creation  
						
						... 
						
						
						
						Disable newly created kprobe events by default, not to disturb
another user using ftrace. "Disturb" means when someone is using
ftrace and another user tries to use perf-tools, (in near
future) if he defines new kprobe event via perf-tools, then new
events will mess up the frace buffer. Fix this to allow proper
and transparent kprobes events concurrent usage between ftrace
users and perf users.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090914204937.18779.59422.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-17 04:04:01 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						74ebb63e7c 
					 
					
						
						
							
							tracing/kprobes: Fix profiling alignment for perf_counter buffer  
						
						... 
						
						
						
						Fix *probe_profile_func() to align buffer size, since perf_counter
requires its buffer entries to be 8 bytes aligned.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090914204928.18779.60029.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-17 04:03:57 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						50d7805607 
					 
					
						
						
							
							tracing/kprobes: Add probe handler dispatcher to support perf and ftrace concurrent use  
						
						... 
						
						
						
						Add kprobe_dispatcher and kretprobe_dispatcher to dispatch event
in both profile and tracing handlers.
This allows simultaneous kprobe uses by ftrace and perf.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090914204920.18779.57555.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-17 04:03:54 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						2d5e067edc 
					 
					
						
						
							
							tracing/kprobes: Fix trace_probe registration order  
						
						... 
						
						
						
						Fix trace_probe registration order. ftrace_event_call and ftrace_event
must be registered before kprobe/kretprobe, because tracing/profiling
handlers dereference the event-id.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Acked-by: Steven Rostedt <rostedt@goodmis.org >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090914204856.18779.52961.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-17 04:03:40 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						f52487e9c0 
					 
					
						
						
							
							tracing/kprobes: Support custom subsystem for each kprobe event  
						
						... 
						
						
						
						Support specifying a custom subsystem(group) for each kprobe event.
This allows users to create new group to control several probes
at once, or add events to existing groups as additional tracepoints.
New synopsis:
 p[:[subsys/]event-name] KADDR|KSYM[+offs] [ARGS]
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090910235353.22412.15149.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-17 04:03:24 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						6e9f23d161 
					 
					
						
						
							
							tracing/kprobes: Show event name in trace output  
						
						... 
						
						
						
						Show event name in tracing/trace output. This also fixes kprobes events
format to comply with other tracepoint events formats.
Before patching:
<...>-1447  [001] 1038282.286875: do_sys_open+0x0/0xd6: ...
<...>-1447  [001] 1038282.286878: sys_openat+0xc/0xe <- do_sys_open: ...
After patching:
<...>-1447  [001] 1038282.286875: myprobe: (do_sys_open+0x0/0xd6) ...
<...>-1447  [001] 1038282.286878: myretprobe: (sys_openat+0xc/0xe <- do_sys_open) ...
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090910235345.22412.76527.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-11 06:09:47 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						eca0d916f6 
					 
					
						
						
							
							tracing/kprobes: Add argument name support  
						
						... 
						
						
						
						Add argument name assignment support and remove "alias" lines from format.
This allows user to assign unique name to each argument. For example,
$ echo p do_sys_open dfd=a0 filename=a1 flags=a2 mode=a3 > kprobe_events
This assigns dfd, filename, flags, and mode to 1st - 4th arguments
respectively. Trace buffer shows those names too.
	<...>-1439  [000] 1200885.933147: do_sys_open+0x0/0xdf: dfd=ffffff9c filename=bfa898ac flags=8000 mode=0
This helps users to know what each value means.
Users can filter each events by these names too. Note that you can not
filter by argN anymore.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090910235337.22412.77383.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-11 06:08:00 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						e08d1c657f 
					 
					
						
						
							
							tracing/kprobes: Add event profiling support  
						
						... 
						
						
						
						Add *probe_profile_enable/disable to support kprobes raw events
sampling from perf counters, like other ftrace events, when
CONFIG_PROFILE_EVENT=y.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090910235329.22412.94731.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-11 05:33:03 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						4a846b443b 
					 
					
						
						
							
							tracing/kprobes: Cleanup kprobe tracer code.  
						
						... 
						
						
						
						Simplify trace_probe to remove a union, and remove some redundant
wrappers.
And also, cleanup create_trace_probe() function.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090910235322.22412.52525.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-11 05:31:21 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						2fba0c8867 
					 
					
						
						
							
							tracing/kprobes: Fix probe offset to be unsigned  
						
						... 
						
						
						
						Prohibit user to specify negative offset from symbols.
Since kprobe.offset is unsigned int, the offset must be always positive
value.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
LKML-Reference: <20090910235314.22412.64631.stgit@dhcp-100-2-132.bos.redhat.com >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-09-11 04:18:58 +02:00 
						 
				 
			
				
					
						
							
							
								Frederic Weisbecker 
							
						 
					 
					
						
						
							
						
						8f8ffe2485 
					 
					
						
						
							
							Merge commit 'tracing/core' into tracing/kprobes  
						
						... 
						
						
						
						Conflicts:
	kernel/trace/trace_export.c
	kernel/trace/trace_kprobe.c
Merge reason: This topic branch lacks an important
build fix in tracing/core:
	0dd7b74787fweisbec@gmail.com > 
						
						
					 
					
						2009-09-11 01:09:23 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						30a7e073b5 
					 
					
						
						
							
							tracing/kprobes: Change trace_arg to probe_arg  
						
						... 
						
						
						
						Change trace_arg_string() and parse_trace_arg() to probe_arg_string()
and parse_probe_arg(), since those are kprobe-tracer local functions.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Avi Kivity <avi@redhat.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Przemysław Pawełczyk <przemyslaw@pawelczyk.it >
Cc: Roland McGrath <roland@redhat.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
Cc: Vegard Nossum <vegard.nossum@gmail.com >
LKML-Reference: <20090821194351.12478.15247.stgit@localhost.localdomain >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-08-27 02:32:59 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						38a47497d9 
					 
					
						
						
							
							tracing/kprobes: Fix format typo in trace_kprobes  
						
						... 
						
						
						
						Fix a format typo in kprobe-tracer.
Currently, it shows 'tsize' in format;
$ cat /debug/tracing/events/kprobes/event/format
...
        field: unsigned long ip;        offset:16;tsize:8;
        field: int nargs;       offset:24;tsize:4;
...
This should be '\tsize';
$ cat /debug/tracing/events/kprobes/event/format
...
        field: unsigned long ip;        offset:16;	size:8;
        field: int nargs;       offset:24;	size:4;
...
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Avi Kivity <avi@redhat.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Przemysław Pawełczyk <przemyslaw@pawelczyk.it >
Cc: Roland McGrath <roland@redhat.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
Cc: Vegard Nossum <vegard.nossum@gmail.com >
LKML-Reference: <20090821194343.12478.37618.stgit@localhost.localdomain >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-08-27 02:32:54 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						cd7e7bd5e4 
					 
					
						
						
							
							tracing: Add kprobes event profiling interface  
						
						... 
						
						
						
						Add profiling interfaces for each kprobes event. This interface provides
how many times each probe hit or missed.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Avi Kivity <avi@redhat.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Przemysław Pawełczyk <przemyslaw@pawelczyk.it >
Cc: Roland McGrath <roland@redhat.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
Cc: Vegard Nossum <vegard.nossum@gmail.com >
LKML-Reference: <20090813203541.31965.8452.stgit@localhost.localdomain >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-08-27 02:32:39 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						ff50d99136 
					 
					
						
						
							
							tracing: Kprobe tracer assigns new event ids for each event  
						
						... 
						
						
						
						Assign new event ids for each kprobes event. This doesn't clear
ring_buffer when unregistering each kprobe event. Thus, if you mind
'Unknown event' messages, clear the buffer manually after changing
kprobe events.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Avi Kivity <avi@redhat.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Przemysław Pawełczyk <przemyslaw@pawelczyk.it >
Cc: Roland McGrath <roland@redhat.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
Cc: Vegard Nossum <vegard.nossum@gmail.com >
LKML-Reference: <20090813203534.31965.49105.stgit@localhost.localdomain >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-08-27 02:32:33 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						4263565d49 
					 
					
						
						
							
							tracing: Generate names for each kprobe event automatically  
						
						... 
						
						
						
						Generate names for each kprobe event based on the probe point.
(SYMBOL+offs or MEMADDR).
Also remove generic k*probe event types because there is no user
of those types.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Avi Kivity <avi@redhat.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Przemysław Pawełczyk <przemyslaw@pawelczyk.it >
Cc: Roland McGrath <roland@redhat.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
Cc: Vegard Nossum <vegard.nossum@gmail.com >
LKML-Reference: <20090813203526.31965.56672.stgit@localhost.localdomain >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-08-27 02:32:28 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						a82378d880 
					 
					
						
						
							
							tracing: Kprobe-tracer supports more than 6 arguments  
						
						... 
						
						
						
						Support up to 128 arguments to fetch for each kprobes event.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com >
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com >
Cc: Avi Kivity <avi@redhat.com >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Frank Ch. Eigler <fche@redhat.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Jason Baron <jbaron@redhat.com >
Cc: Jim Keniston <jkenisto@us.ibm.com >
Cc: K.Prasad <prasad@linux.vnet.ibm.com >
Cc: Lai Jiangshan <laijs@cn.fujitsu.com >
Cc: Li Zefan <lizf@cn.fujitsu.com >
Cc: Przemysław Pawełczyk <przemyslaw@pawelczyk.it >
Cc: Roland McGrath <roland@redhat.com >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Tom Zanussi <tzanussi@gmail.com >
Cc: Vegard Nossum <vegard.nossum@gmail.com >
LKML-Reference: <20090813203518.31965.96979.stgit@localhost.localdomain >
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com > 
						
						
					 
					
						2009-08-27 02:32:23 +02:00 
						 
				 
			
				
					
						
							
							
								Masami Hiramatsu 
							
						 
					 
					
						
						
							
						
						413d37d1eb 
					 
					
						
						
							
							tracing: Add kprobe-based event tracer  
						
						... 
						
						
						
						Add kprobes-based event tracer on ftrace.
This tracer is similar to the events tracer which is based on Tracepoint
infrastructure. Instead of Tracepoint, this tracer is based on kprobes
(kprobe and kretprobe). It probes anywhere where kprobes can probe(this
 means, all functions body except for __kprobes functions).
Similar to the events tracer, this tracer doesn't need to be activated
via current_tracer, instead of that, just set probe points via
/sys/kernel/debug/tracing/kprobe_events. And you can set filters on each
probe events via /sys/kernel/debug/tracing/events/kprobes/<EVENT>/filter.
This tracer supports following probe arguments for each probe.
  %REG  : Fetch register REG
  sN    : Fetch Nth entry of stack (N >= 0)
  sa    : Fetch stack address.
  @ADDR : Fetch memory at ADDR (ADDR should be in kernel)
  @SYM[+|-offs] : Fetch memory at SYM +|- offs (SYM should be a data symbol)
  aN    : Fetch function argument. (N >= 0)
  rv    : Fetch return value.
  ra    : Fetch return address.
  +|-offs(FETCHARG) : fetch memory at FETCHARG +|- offs address.
See Documentation/trace/kprobetrace.txt in the next patch for details.
Changes from v13:
 - Support 'sa' for stack address.
 - Use call->data instead of container_of() macro.
[fweisbec@gmail.com: Fixed conflict against latest tracing/core]
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Acked-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Avi Kivity <avi@redhat.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Frank Ch. Eigler <fche@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jason Baron <jbaron@redhat.com>
Cc: Jim Keniston <jkenisto@us.ibm.com>
Cc: K.Prasad <prasad@linux.vnet.ibm.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Przemysław Pawełczyk <przemyslaw@pawelczyk.it>
Cc: Roland McGrath <roland@redhat.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Tom Zanussi <tzanussi@gmail.com>
Cc: Vegard Nossum <vegard.nossum@gmail.com>
LKML-Reference: <20090813203510.31965.29123.stgit@localhost.localdomain>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> 
						
						
					 
					
						2009-08-27 02:31:54 +02:00