This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [Bug testsuite/11514] nd_syscall.exp takes more than 10 times longer than syscall.exp testcase
- From: Ananth N Mavinakayanahalli <ananth at in dot ibm dot com>
- To: "jistone at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- Cc: systemtap at sources dot redhat dot com
- Date: Thu, 22 Apr 2010 09:15:51 +0530
- Subject: Re: [Bug testsuite/11514] nd_syscall.exp takes more than 10 times longer than syscall.exp testcase
- References: <20100419113044.11514.mjw@redhat.com> <20100421190539.3432.qmail@sourceware.org>
- Reply-to: ananth at in dot ibm dot com
On Wed, Apr 21, 2010 at 07:05:39PM -0000, jistone at redhat dot com wrote:
>
> But on PPC64, it's a little more complicated to deal with function descriptors.
> In some cases the returned address is actually a pointer to the real address,
> and in other cases it tries to search again with a '.' added to the name. We
> need to deal with this too if we're bypassing kprobe_lookup_name().
Right, on PPC64, the symbol table address entry foo, for a function foo()
is a data address while .foo is the actual text address. In the past,
the System.map would contain both foo and .foo; RHEL5 on, the .foo
entries have been omitted from there.
If possible, I'd suggest that you don't bypass kprobe_lookup_name() for
debuginfoless probes, since it handles more cases like symbol clashes
between modules and such; let the kernel resolve the addresses for us.