This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Stap is translating to functions in __exit sections...and later module load fails
- From: Keshavamurthy Anil S <anil dot s dot keshavamurthy at intel dot com>
- To: "Stone, Joshua I" <joshua dot i dot stone at intel dot com>
- Cc: "Keshavamurthy, Anil S" <anil dot s dot keshavamurthy at intel dot com>, Systemtap <systemtap at sources dot redhat dot com>
- Date: Fri, 13 Oct 2006 14:37:33 -0700
- Subject: Re: Stap is translating to functions in __exit sections...and later module load fails
- References: <C56DB814FAA30B418C75310AC4BB279DC4C78D@scsmsx413.amr.corp.intel.com>
- Reply-to: Keshavamurthy Anil S <anil dot s dot keshavamurthy at intel dot com>
On Fri, Oct 13, 2006 at 02:26:44PM -0700, Stone, Joshua I wrote:
> 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.
Looks like this is in .exit.text section
[root@csdor-tiger1 linux-2.6.19-rc1]# objdump -t arch/ia64/kernel/perfmon.o |grep exit_pfm_fs
0000000000000000 l F .exit.text 0000000000000070 exit_pfm_fs
However "objdump -t vmlinux| grep exit_pfm_fs" did not show any thing.
-thanks,
Anil Keshavamurthy
>
>
> Josh