• Arnaldo Carvalho de Melo's avatar
    perf report: Only load text symbols from kallsyms · 03f6316d
    Arnaldo Carvalho de Melo authored
    Just like we do for userspace when reading the symtab, reducing the
    number of entries we insert on the symbols rbtree.
    
    Before:
    
    [acme@emilia ~]$ rm -f perf_report.perf ; perf record -o perf_report.perf perf stat perf report > /dev/null
    
     Performance counter stats for 'perf':
    
         218.138382  task clock ticks     (msecs)
                  4  context switches     (events)
                  8  CPU migrations       (events)
               2136  pagefaults           (events)
           32746212  CPU cycles           (events)  (scaled from 67.04%)
           11961102  instructions         (events)  (scaled from 66.19%)
              49841  cache references     (events)  (scaled from 21.96%)
              13777  cache misses         (events)  (scaled from 21.98%)
    
     Wall-clock time elapsed:   218.702477 msecs
    
    [acme@emilia ~]$ perf report -i perf_report.perf | head
    11.06          perf [.] 0x00000000000057cb /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__find_symbol
     9.15          perf [.] 0x00000000000056a0 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__insert_symbol
     8.72          perf [k] 0xffffffff8101b1d2 intel_pmu_enable_all
     8.51          perf [.] 0x0000000000006672 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: thread__symbol_incnew
     3.83          perf [k] 0xffffffff811cfc5a vsnprintf
     3.40          perf [.] 0x0000000000005e33 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: hex
     3.40          perf [.] 0x0000000000005ec7 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: hex2long
     3.19          perf [k] 0xffffffff811ce1c1 number
     2.77          perf [.] 0x0000000000006869 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: threads__findnew
     2.77          perf [.] 0x000000000000fde3 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: rb_insert_color
    [acme@emilia ~]$
    
    After:
    
    acme@emilia ~]$ rm -f perf_report.perf ; perf record -o perf_report.perf perf stat perf report > /dev/null
    
     Performance counter stats for 'perf':
    
         190.228511  task clock ticks     (msecs)
                  4  context switches     (events)
                  7  CPU migrations       (events)
               1625  pagefaults           (events)
           29578745  CPU cycles           (events)  (scaled from 66.92%)
           10516914  instructions         (events)  (scaled from 66.47%)
              44015  cache references     (events)  (scaled from 22.04%)
               8248  cache misses         (events)  (scaled from 22.07%)
    
     Wall-clock time elapsed:   190.816096 msecs
    
    [acme@emilia ~]$ perf report -i perf_report.perf | head
    15.99          perf [.] 0x00000000000057a9 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__find_symbol
    10.87          perf [.] 0x000000000000674d /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: thread__symbol_incnew
     8.74          perf [k] 0xffffffff8101b1d2 intel_pmu_enable_all
     5.54          perf [.] 0x0000000000005e42 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: hex
     4.48          perf [.] 0x0000000000005ebe /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: hex2long
     4.48          perf [k] 0xffffffff811cfba0 vsnprintf
     3.84          perf [.] 0x00000000000056b4 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__insert_symbol
     3.62          perf [.] 0x00000000000068d0 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: threads__findnew
     3.20          perf [k] 0xffffffff811ce0b3 number
     2.56          perf [.] 0x0000000000006d78 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: __cmd_report
    [acme@emilia ~]$
    
    [ Impact: optimization ]
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: Marcelo Tosatti <mtosatti@redhat.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: John Kacur <jkacur@redhat.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    LKML-Reference: <20090526222155.GJ4424@ghostprotocols.net>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    03f6316d
builtin-report.c 19.7 KB