This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [Forw:] Re: Slowness module generating for testsuite/systemtap.stress/current.stp due to elfutils-0.131
- From: Roland McGrath <roland at redhat dot com>
- To: systemtap at sources dot redhat dot com
- Date: Fri, 8 Feb 2008 13:16:26 -0800 (PST)
- Subject: Re: [Forw:] Re: Slowness module generating for testsuite/systemtap.stress/current.stp due to elfutils-0.131
- References: <47AC570C.80602@redhat.com> <y0mzlub4jwt.fsf@ton.toronto.redhat.com>
Sorry, I'm far too backlogged to look into this directly any time soon.
I can give you a few suggestions off hand on how to investigate.
First thing is to verify that libdwfl alone has slowed down, ruling out
some bizarre interaction with systemtap's particular use. Compare
loc2c-test -K or some other elfutils test program between the two builds.
The -K option (or -K`uname -r`) translates to the same libdwfl reporting
functions that systemtap uses.
Next, I'd check for any big difference in system calls. If strace -c
output differs a great deal, then take traces to see if the new one is
opening a much larger number of files or something like that.
If all that is the same, the reporting pass is not the culprit.
The next thing that comes to mind is the new relocation behavior.
This is the feature added in 0.131 to facilitate the markers work
in .ko modules. If you call dwfl_module_getelf then it eagerly
applies relocs to all sections in case you are going to get their
contents via libelf calls. Perhaps we are getting too many relocs
eagerly applied and that is unexpectedly costly. Or perhaps there
is some bug causing the reloc work to be repeated many times or
something like that. In the debugger, look at the number of calls
to __libdwfl_relocate and __libdwfl_relocate_section.
Thanks,
Roland