This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH tracing/kprobes v3 4/7] tracing/kprobes: Avoid field name confliction
- From: Frederic Weisbecker <fweisbec at gmail dot com>
- To: Masami Hiramatsu <mhiramat at redhat dot com>
- Cc: Steven Rostedt <rostedt at goodmis dot org>, Ingo Molnar <mingo at elte dot hu>, lkml <linux-kernel at vger dot kernel dot org>, systemtap <systemtap at sources dot redhat dot com>, DLE <dle-develop at lists dot sourceforge dot net>, Thomas Gleixner <tglx at linutronix dot de>, Arnaldo Carvalho de Melo <acme at redhat dot com>, Mike Galbraith <efault at gmx dot de>, Paul Mackerras <paulus at samba dot org>, Peter Zijlstra <a dot p dot zijlstra at chello dot nl>, Christoph Hellwig <hch at infradead dot org>, Ananth N Mavinakayanahalli <ananth at in dot ibm dot com>, Jim Keniston <jkenisto at us dot ibm dot com>, "Frank Ch. Eigler" <fche at redhat dot com>
- Date: Mon, 12 Oct 2009 23:16:46 +0200
- Subject: Re: [PATCH tracing/kprobes v3 4/7] tracing/kprobes: Avoid field name confliction
- References: <20091007222733.1684.32035.stgit@dhcp-100-2-132.bos.redhat.com> <20091007222807.1684.26880.stgit@dhcp-100-2-132.bos.redhat.com> <20091012173752.GB5059@nowhere> <4AD37FEF.9050807@redhat.com> <20091012194852.GB4748@nowhere> <4AD39002.2080907@redhat.com>
On Mon, Oct 12, 2009 at 04:22:26PM -0400, Masami Hiramatsu wrote:
> Frederic Weisbecker wrote:
>> On Mon, Oct 12, 2009 at 03:13:51PM -0400, Masami Hiramatsu wrote:
>>> Frederic Weisbecker wrote:
>>>> The conflict issue might not be obvious for a user desperately trying to set
>>>> a kprobe. Even for other failcases, it might not be obvious (blacklisted
>>>> symbols, syntax errors...)
>>>>
>>>> May be should you improve the error granularity and print a KERN_DEBUG
>>>> message?
>>>
>>> Agreed, and kprobes error handling should be improved too (in the most cases,
>>> it just returns -EINVAL).
>>>
>>> Thank you.
>>>
>>
>>
>> And btw, I'm enable to create a probe, neither through ftrace nor perf:
>>
>> $ sudo ./perf probe -P 'p:sys_close sys_close $retval'
>> Adding new event: p:sys_close sys_close+0 $retval
>>
>> Error: Failed to create event: Invalid argument
>>
>>
>> # echo 'p:sys_open sys_open $retval'> /debug/tracing/kprobe_events
>> bash: echo: write error : Invalid argument
>>
>> I suspect I missed something very obvious with the syntax :)
>
> Ah, only kretprobe events can use $retval :-)
> So, you should specify 'r' instead of 'p'.
>
> -P 'r:sys_close sys_close $retval'
>
Hehe, I was sure I was doing something silly but couldn't figure
out what :-)
So that works, at least without libdwarf, I can't test with it for
now but this tool looks very promising.
I really think it would be great to be able to cut the
./perf probe
./perf record
./perf trace
batch into one step through a single
./perf probe -t -P "probe definition" [-a|cmdline]
That would do the probe creation, the record, and stop
once the given process finishes, or once we Ctrl+C (especially
useful in wide tracing with -a, but sometimes also with processes).
Not a lot of changes are required to do that.
I can already see printk() whining on the horizon...
Thanks!