This is the mail archive of the mailing list for the systemtap project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug testsuite/11514] nd_syscall.exp takes more than 10 times longer than syscall.exp testcase

------- 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


testcase /home/mark/src/systemtap/testsuite/systemtap.syscall/nd_syscall.exp com
pleted in 102 seconds

commit bd6593518895fc613b973500c03a3b844bbe68c5
Author: Mark Wielaard <>
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

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]