Stap is translating to functions in __exit sections...and later module load fails

Stone, Joshua I joshua.i.stone@intel.com
Fri Oct 13 21:26:00 GMT 2006


On Friday, October 13, 2006 1:51 PM, Keshavamurthy, Anil S wrote:
> On Fri, Oct 13, 2006 at 02:02:39PM -0700, Stone, Joshua I wrote:
>> The translator blacklist tries to avoid such functions by checking
>> the section name -- anything within a section beginning with
>> '.exit.' (e.g., .exit.text) is blacklisted, and thus won't match a
>> function("*"). 
> Exactly, I expected that the translator blacklists' and does not
> elaborate such functions. But looks like this is not happening.
> 
> See here....
> #stap -p2 -e 'probe kernel.function("*") {}' | sort | uniq |grep
> exit_pfm_fs
> kernel.function("exit_pfm_fs@arch/ia64/kernel/perfmon.c:1507"), 

Yes, I believe you that the translator is producing a hit for
exit_pfm_fs.  The question is *why*.  Can you use objdump on your
vmlinux to find out what section that function is actually in?

$ objdump -t <...>/vmlinux | grep exit_pfm_fs

On x86 and x86_64, functions decorated with __exit end up in
'.exit.text'.  If this isn't the case for IA64, then we'll need a
different mechanism for detecting such functions from the translator.


Josh



More information about the Systemtap mailing list