This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug testsuite/11514] nd_syscall.exp takes more than 10 times longer than syscall.exp testcase
- From: "mjw at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 20 Apr 2010 20:18:36 -0000
- Subject: [Bug testsuite/11514] nd_syscall.exp takes more than 10 times longer than syscall.exp testcase
- References: <20100419113044.11514.mjw@redhat.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From mjw at redhat dot com 2010-04-20 20:18 -------
(In reply to comment #9)
> Except that most time seems to go into kallsyms_expand_symbol to uncompress the
> kernel symbol table. So flipping the comparison loop inside out to only do that
> once might still be a win.
Yep, seems like this is a pretty nice win:
testcase /home/mark/src/systemtap/testsuite/systemtap.syscall/syscall.exp
completed in 96 seconds
versus
testcase /home/mark/src/systemtap/testsuite/systemtap.syscall/nd_syscall.exp com
pleted in 102 seconds
commit bd6593518895fc613b973500c03a3b844bbe68c5
Author: Mark Wielaard <mjw@redhat.com>
Date: Tue Apr 20 22:06:15 2010 +0200
PR11514 Only expand kallsyms once for kprobe_derived_probe_group.
kprobe_register is really expensive when used for multiple symbol
based probes since it will call kallsyms_expand_symbol over and over
to uncompress the kernel symbol table. So flip the comparison loop
inside out by looping once over the kernel symbol table.
* tapsets.cxx (kprobe_derived_probe_group::emit_module_decls): Declare
kprobe_resolve helper function.
(kprobe_derived_probe_group::emit_module_init): Call kprobe_resolve
through kallsyms_on_each_symbol. Never register through symbol name,
just check that address has been filled in by kprobe_resolve.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
http://sourceware.org/bugzilla/show_bug.cgi?id=11514
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.