This is the mail archive of the systemtap@sourceware.org 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

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.


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