This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [RFC][Revised Patch 0/5] New Probe family : probe kprobe.function()
- From: Prerna Saxena <prerna at linux dot vnet dot ibm dot com>
- To: systemtap at sourceware dot org
- Date: Sun, 19 Apr 2009 23:09:45 +0530
- Subject: Re: [RFC][Revised Patch 0/5] New Probe family : probe kprobe.function()
Here's the revised set of patches.
Frank Ch. Eigler wrote:
Prerna Saxena <prerna@linux.vnet.ibm.com> writes:
Here's a prototype of a new language feature in systemtap : probe
kprobe [...]
Looks good. I suggest a few changes:
- removal of ".inline"-related logic/variables, since they are inherently
unavailable
Done.
- removal of registration/unregistration code that was added for symbolic
kprobes only to optimize the thousands-of-probes case, such as the
char*/char[] automagic selector
Changed code to implement "stap_dwarfless_probe->pp" &
"stap_dwarfless_probe->symbol_name" as a char[] only , instead of
allowing a choice between char* & char[] implementation.
- initialization of the new systemtap_session field
Thanks.....dunno how I'd missed this one :-)
- adding test cases, documentation, NEWS blurb
I've added one testcase in systemtap.base for probe kprobe.function().
To what extent does the kernel's symbolic kprobe logic allow probes to
be placed within modules?
As pointed by Ananth, a kprobe.function("") construct can be used to
probe module functions too, since it searches modules if the said symbol
wasnt found in the kernel. However, in the event the probed function
name is present in more than one modules, the probe point gets
registered for first instance of the function. ( which may or may not
be the desired probe point) .
Probing module functions can be accomplished using this separate construct :
probe kprobe.module("module_name").function("function_name")
Would it be worthwhile to allow numeric
probe addresses (as in kernel.statement(0xaddr).absolute)?
Thanks for the suggestion :-)
This is implemented as :
probe kprobe.statement(ADDRESS).absolute
This needs to be run in privileged mode , just like kernel.statement()
probes
- FChE
Regards,
--
Prerna Saxena
Linux Technology Centre,
IBM Systems and Technology Lab,
Bangalore, India
--
Prerna Saxena
Linux Technology Centre,
IBM Systems and Technology Lab,
Bangalore, India