linux/Documentation
Arnaldo Carvalho de Melo 03f6316d32 perf report: Only load text symbols from kallsyms
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: Arnaldo 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: Ingo Molnar <mingo@elte.hu>
2009-05-27 09:10:36 +02:00
..
2008-10-30 11:38:45 -07:00
2009-04-07 08:12:38 +02:00
2009-04-13 15:04:33 -07:00
2007-07-19 10:04:47 -07:00
2008-02-14 00:16:13 -05:00
2008-10-16 11:21:30 -07:00
2008-04-25 13:27:03 +01:00
2009-05-15 07:56:25 -05:00
2009-04-07 08:31:09 -07:00
2009-05-02 15:36:09 -07:00
2008-02-03 15:54:28 +02:00
2009-03-30 21:46:43 +02:00
2009-03-30 15:21:59 +02:00
2009-01-06 17:21:00 +01:00
2009-04-27 05:37:39 -07:00
2009-04-19 11:12:12 +02:00
2008-01-11 18:22:30 -06:00
2007-05-09 08:57:56 +02:00
2008-10-30 11:38:45 -07:00
2008-10-16 11:21:29 -07:00
2009-04-03 09:23:11 -05:00
2008-04-29 02:49:47 -04:00
2009-04-09 07:28:10 +02:00
2006-11-30 04:58:40 +01:00
2009-03-24 16:20:36 -07:00
2008-10-30 11:38:45 -07:00
2008-12-03 16:09:53 -07:00
2008-07-25 10:53:30 -07:00
2008-11-12 17:17:18 -08:00
2007-10-19 11:53:34 -07:00
2008-11-14 10:39:26 +11:00
2009-03-17 12:56:47 +01:00
2009-03-26 15:45:43 -07:00
2006-11-30 04:58:40 +01:00
2008-03-24 19:22:19 -07:00
2007-10-18 14:37:32 -07:00
2008-02-06 10:41:09 -08:00
2008-10-20 15:43:10 +02:00
2009-04-27 12:00:27 -07:00
2009-04-27 12:00:27 -07:00
2008-08-12 16:07:30 -07:00
2009-03-31 15:18:37 +11:00
2008-11-12 17:17:17 -08:00
2007-02-11 10:51:35 -08:00
2008-02-06 10:41:14 -08:00
2007-10-17 08:43:06 -07:00