1. 27 5月, 2009 6 次提交
    • A
      perf report: Use hex2long instead of sscanf · d8d1656e
      Arnaldo Carvalho de Melo 提交于
      Before:
      
      [acme@emilia ~]$ perf record -o perf_report.perf perf stat perf report > /dev/null
      
       Performance counter stats for 'perf':
      
           245.414985  task clock ticks     (msecs)
                    6  context switches     (events)
                    6  CPU migrations       (events)
                 2108  pagefaults           (events)
             37493013  CPU cycles           (events)  (scaled from 67.04%)
             13576789  instructions         (events)  (scaled from 66.76%)
                57931  cache references     (events)  (scaled from 21.96%)
                12263  cache misses         (events)  (scaled from 21.98%)
      
       Wall-clock time elapsed:   246.575587 msecs
      
      [acme@emilia ~]$ perf report -i perf_report.perf | head
      12.15          perf [.] 0x000000000005432a /lib64/libc-2.5.so: _IO_vfscanf_internal
       9.38          perf [k] 0xffffffff8101b1d2 intel_pmu_enable_all
       8.53          perf [.] 0x00000000000056b8 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__insert_symbol
       6.61          perf [.] 0x00000000000057cb /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__find_symbol
       5.33          perf [k] 0xffffffff811ce082 number
       4.69          perf [.] 0x0000000000034829 /lib64/libc-2.5.so: ____strtoull_l_internal
       4.48          perf [.] 0x0000000000006505 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: thread__symbol_incnew
       3.41          perf [.] 0x000000000000fce6 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: rb_insert_color
       3.20          perf [k] 0xffffffff811cfc01 vsnprintf
       2.99          perf [k] 0xffffffff811ce5e8 format_decode
      
      After:
      
      [acme@emilia ~]$ perf record -o perf_report.perf perf stat perf report > /dev/null
      
       Performance counter stats for 'perf':
      
           218.186805  task clock ticks     (msecs)
                    4  context switches     (events)
                    7  CPU migrations       (events)
                 2133  pagefaults           (events)
             32735365  CPU cycles           (events)  (scaled from 67.04%)
             11952309  instructions         (events)  (scaled from 66.26%)
                50314  cache references     (events)  (scaled from 21.96%)
                13228  cache misses         (events)  (scaled from 21.98%)
      
       Wall-clock time elapsed:   218.810451 msecs
      
      [acme@emilia ~]$ perf report -i perf_report.perf | head
      10.68          perf [.] 0x000000000000578d /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__find_symbol
       9.62          perf [.] 0x00000000000065f7 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: thread__symbol_incnew
       9.40          perf [.] 0x00000000000056b4 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: dso__insert_symbol
       9.19          perf [k] 0xffffffff8101b1d2 intel_pmu_enable_all
       5.13          perf [.] 0x0000000000005ec7 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: hex2long
       4.49          perf [k] 0xffffffff81083808 kallsyms_expand_symbol
       3.85          perf [k] 0xffffffff811ce2c1 number
       3.63          perf [.] 0x0000000000005e81 /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: hex
       2.99          perf [.] 0x000000000000fd5b /home/acme/git/linux-2.6-tip/Documentation/perf_counter/perf: rb_insert_color
       2.99          perf [k] 0xffffffff811cf251 string
      [acme@emilia ~]$
      
      [ Impact: optimization ]
      Signed-off-by: NArnaldo 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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <20090526222057.GI4424@ghostprotocols.net>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d8d1656e
    • A
      perf report: Sort output by symbol usage · 3a4b8cc7
      Arnaldo Carvalho de Melo 提交于
      [acme@emilia ~]$ perf record find / > /dev/null 2>&1
      [acme@emilia ~]$ perf stat perf report | head -20
       4.95          find [k] 0xffffffff81393d65 _spin_lock
       3.89          find [.] 0x000000000000af89 /usr/bin/find: <unknown>
       2.19          find [k] 0xffffffffa00518e0 ext3fs_dirhash
       1.87          find [k] 0xffffffff810a6cea __rcu_read_lock
       1.86          find [k] 0xffffffff811c7312 _atomic_dec_and_lock
       1.86          find [.] 0x00000000000782ab /lib64/libc-2.5.so: __GI_strlen
       1.85          find [k] 0xffffffff810fedfb __kmalloc
       1.62          find [.] 0x00000000000430ff /lib64/libc-2.5.so: vfprintf
       1.59          find [k] 0xffffffff810a6d6d __rcu_read_unlock
       1.55          find [k] 0xffffffff81119395 __d_lookup
       1.39          find [.] 0x0000000000071b40 /lib64/libc-2.5.so: _int_malloc
       1.30          find [k] 0xffffffffa031c4fc nfs_do_filldir
       1.21          find [k] 0xffffffff811876a5 avc_has_perm_noaudit
       1.15          find [k] 0xffffffff810fef62 kmem_cache_alloc
       1.07          find [k] 0xffffffff811d03fb copy_user_generic_string
       1.03          find [k] 0xffffffffa0043882 ext3_htree_store_dirent
       0.99          find [k] 0xffffffff81393ebb _spin_lock_bh
       0.98          find [k] 0xffffffffa03319a2 nfs3_decode_dirent
       0.97          find [k] 0xffffffff8100bf20 system_call
       0.92          find [k] 0xffffffff8139437e _spin_unlock
      
       Performance counter stats for 'perf':
      
           244.278972  task clock ticks     (msecs)
                    8  context switches     (events)
                    9  CPU migrations       (events)
                 2104  pagefaults           (events)
             35329669  CPU cycles           (events)  (scaled from 75.40%)
             13740366  instructions         (events)  (scaled from 75.49%)
                59073  cache references     (events)  (scaled from 24.60%)
                  196  cache misses         (events)  (scaled from 24.51%)
      
       Wall-clock time elapsed:   246.060717 msecs
      
      [acme@emilia ~]$
      [acme@emilia ~]$ grep "model name" /proc/cpuinfo | head -1
      model name	: Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
      [acme@emilia ~]$ grep "model name" /proc/cpuinfo | wc -l
      8
      [acme@emilia ~]$
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <20090526191904.GH4424@ghostprotocols.net>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3a4b8cc7
    • P
      perf report: More robust error handling · 6142f9ec
      Peter Zijlstra 提交于
      Don't let funny events confuse us, stick to what we know and
      try to find sensible data again.
      
      If we find an unknown event, check we're still u64 aligned, and
      increment by one u64. This ensures we're bound to happen upon a
      valid event soon.
      Signed-off-by: NPeter 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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6142f9ec
    • I
      perf report: add more debugging · f49515b1
      Ingo Molnar 提交于
      Add the offset of the file we are analyzing, and the size of the record.
      
      In case of problems it's easier to see where the parser lost track.
      
      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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f49515b1
    • I
      perf report: add counter for unknown events · 3e706114
      Ingo Molnar 提交于
      Add a counter for unknown event records.
      
      [ Impact: improve debugging ]
      
      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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3e706114
    • I
      perf report: add --dump-raw-trace option · 97b07b69
      Ingo Molnar 提交于
      To help the inspection of various data files, implement an ASCII dump
      method that just dumps the records as they are read in - then we exit.
      
      [ Impact: new feature ]
      
      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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      97b07b69
  2. 26 5月, 2009 20 次提交
    • A
      perf: Don't assume /proc/kallsyms is ordered · abd54f68
      Arnaldo Carvalho de Melo 提交于
      perf: Don't assume /proc/kallsyms is ordered
      
      Since we _are_ ordering it by the symbol start, just traverse the
      freshly built rbtree setting the prev->end members to curr->start - 1.
      Signed-off-by: NArnaldo 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>
      LKML-Reference: <20090526152134.GF4424@ghostprotocols.net>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      abd54f68
    • A
      perf report: Fix kernel symbol resolution · 59d81029
      Arnaldo Carvalho de Melo 提交于
      kallsyms have just the symbol start, so we need to read two lines
      to get the len.
      
      [ Impact: fix incorrect kernel symbol display in perf report ]
      Signed-off-by: NArnaldo 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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      59d81029
    • P
      perf report: Fix ELF symbol parsing · f17e04af
      Peter Zijlstra 提交于
      [ Impact: fix DSO symbol output in perf report ]
      Signed-off-by: NPeter 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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f17e04af
    • M
      perf top: fix typo in -d option · db20c003
      Mike Galbraith 提交于
      Clean up copy/paste options parsing conversion error.
      
      [ Impact: reactivate -d option ]
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      db20c003
    • M
      perf top: Remove leftover NMI/IRQ bits · f91183fe
      Mike Galbraith 提交于
      79202b removed IRQ/NMI mode selection, so remove it from
      perf top as well.
      
      [ Impact: cleanup ]
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f91183fe
    • I
      perf report: Add help/manpage · 0bec253c
      Ingo Molnar 提交于
      Add a (minimal) manpage for perf report.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0bec253c
    • I
      perf record: Convert to Git option parsing · 53cb8bc2
      Ingo Molnar 提交于
      Remove getopt usage and use Git's much more advanced and more compact
      command option library.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      53cb8bc2
    • P
      perf report: Fix segfault on unknown symbols · f3e08c53
      Peter Zijlstra 提交于
      Ingo reported:
      
      > Program received signal SIGSEGV, Segmentation fault.
      > 0x0000003e25080f80 in strlen () from /lib64/libc.so.6
      > Missing separate debuginfos, use: debuginfo-install elfutils.x86_64
      > glibc.x86_64 zlib.x86_64
      > (gdb) bt
      > #0  0x0000003e25080f80 in strlen () from /lib64/libc.so.6
      > #1  0x0000003e2506954e in fputs () from /lib64/libc.so.6
      > #2  0x00000000004059e8 in cmd_report (argc=<value optimized out>,
      >     argv=<value optimized out>) at builtin-report.c:521
      > #3  0x0000000000402dad in handle_internal_command (argc=1, argv=0x7fffe1218e30)
      >     at perf.c:226
      > #4  0x0000000000402f6d in main (argc=1, argv=0x7fffe1218e30) at perf.c:324
      > (gdb)
      
      Signed-off-by Peter Zijlstra <a.p.zijlstra@chello.nl>
      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: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f3e08c53
    • A
      perf_counter: Use rb_tree for symhists and threads in report · ce7e4365
      Arnaldo Carvalho de Melo 提交于
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ce7e4365
    • A
      perf_counter: Add our private copy of list.h · 040e6034
      Arnaldo Carvalho de Melo 提交于
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      040e6034
    • A
      perf_counter: Use rb_trees in perf report · 35a50c8a
      Arnaldo Carvalho de Melo 提交于
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      35a50c8a
    • A
      perf_counter: Implement dso__load using libelf · 62eb9390
      Arnaldo Carvalho de Melo 提交于
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      62eb9390
    • I
      perf_counter tools: remove the standalone perf-report utility · fd4242bb
      Ingo Molnar 提交于
      With a built-in 'perf report' command now available, remove the
      standalone implementation for good.
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fd4242bb
    • A
      perf_counter: First part of 'perf report' conversion to C + elfutils · 8fa66bdc
      Arnaldo Carvalho de Melo 提交于
      Integrate perf-report into 'perf', as builtin-report.c.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Marcelo Tosatti <mtosatti@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8fa66bdc
    • I
      perf top: Convert to Git option parsing · b456bae0
      Ingo Molnar 提交于
      Remove getopt usage and use Git's much more advanced and more compact
      command option library.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b456bae0
    • I
      perf stat: Convert to Git option parsing · 5242519b
      Ingo Molnar 提交于
      Remove getopt usage and use Git's much more advanced and more compact
      command option library.
      
      Extend the event parser library with the extensions that were in
      perf-stat before.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5242519b
    • I
      perf_counter tools: Librarize event string parsing · 8ad8db37
      Ingo Molnar 提交于
      Extract the event string parser from builtin-record.c, and
      librarize it - to be reused in other commands.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8ad8db37
    • I
      perf record: Convert to Git option parsing · 0e9b20b8
      Ingo Molnar 提交于
      Remove getopt usage and use Git's much more advanced and more compact
      command option library.
      
      Git's library (util/parse-options.[ch]) constructs help texts and
      error messages automatically, and has a number of other convenience
      features as well.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0e9b20b8
    • I
      perf stat: Remove unused variable · 4e97ddf0
      Ingo Molnar 提交于
      [ Impact: cleanup ]
      
      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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4e97ddf0
    • I
      perf record: Straighten out argv types · 69aa48ab
      Ingo Molnar 提交于
      [ Impact: cleanup ]
      
      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: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      69aa48ab
  3. 25 5月, 2009 4 次提交
    • P
      perf_counter: Fix perf-$cmd invokation · 266dfb0b
      Peter Zijlstra 提交于
      Fix:
      
        $ perf-top
        fatal: cannot handle -top internally
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <20090525124559.995591577@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      266dfb0b
    • I
      perf stat: flip around ':k' and ':u' flags · d3f4b385
      Ingo Molnar 提交于
      This output:
      
       $ perf stat -e 0:1:k -e 0:1:u ./hello
        Performance counter stats for './hello':
                140131  instructions         (events)
               1906968  instructions         (events)
      
      Is quite confusing - as :k means "user instructions", :u means
      "kernel instructions".
      
      Flip them around - as the 'exclude' property is not intuitive in
      the flag naming.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d3f4b385
    • M
      perf top: Reduce display overhead · d94b9430
      Mike Galbraith 提交于
      Iterate over the symbol table once per display interval, and
      copy/sort/tally/decay only those symbols which are active.
      
      Before:
      
       top - 10:14:53 up  4:08, 17 users,  load average: 1.17, 1.53, 1.49
       Tasks: 273 total,   5 running, 268 sleeping,   0 stopped,   0 zombie
       Cpu(s):  6.9%us, 38.2%sy,  0.0%ni, 19.9%id,  0.0%wa,  0.0%hi, 35.0%si,  0.0%st
      
         PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  P COMMAND
       28504 root      20   0  1044  260  164 S   58  0.0   0:04.19 2 netserver
       28499 root      20   0  1040  412  316 R   51  0.0   0:04.15 0 netperf
       28500 root      20   0  1040  408  316 R   50  0.0   0:04.14 1 netperf
       28503 root      20   0  1044  260  164 S   50  0.0   0:04.01 1 netserver
       28501 root      20   0  1044  260  164 S   49  0.0   0:03.99 0 netserver
       28502 root      20   0  1040  412  316 S   43  0.0   0:03.96 2 netperf
       28468 root      20   0 1892m 325m  972 S   16 10.8   0:10.50 3 perf
       28467 root      20   0 1892m 325m  972 R    2 10.8   0:00.72 3 perf
      
      After:
      
       top - 10:16:30 up  4:10, 17 users,  load average: 2.27, 1.88, 1.62
       Tasks: 273 total,   6 running, 267 sleeping,   0 stopped,   0 zombie
       Cpu(s):  2.5%us, 39.7%sy,  0.0%ni, 24.6%id,  0.0%wa,  0.0%hi, 33.3%si,  0.0%st
      
         PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  P COMMAND
       28590 root      20   0  1040  412  316 S   54  0.0   0:07.85 2 netperf
       28589 root      20   0  1044  260  164 R   54  0.0   0:07.84 0 netserver
       28588 root      20   0  1040  412  316 R   50  0.0   0:07.89 1 netperf
       28591 root      20   0  1044  256  164 S   50  0.0   0:07.82 1 netserver
       28587 root      20   0  1040  408  316 R   47  0.0   0:07.61 0 netperf
       28592 root      20   0  1044  260  164 R   47  0.0   0:07.85 2 netserver
       28378 root      20   0  8732 1300  860 R    2  0.0   0:01.81 3 top
       28577 root      20   0 1892m 165m  972 R    2  5.5   0:00.48 3 perf
       28578 root      20   0 1892m 165m  972 S    2  5.5   0:00.04 3 perf
      
      [ Impact: optimization ]
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d94b9430
    • I
      perf_counter tools: increase limits, fix · 85a9f920
      Ingo Molnar 提交于
      NR_CPUS and NR_COUNTERS goes up quadratic ... 1024x4096 was far
      too ambitious upper limit - go for 256x256 which is still plenty.
      
      [ Impact: reduce perf tool memory consumption ]
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      85a9f920
  4. 24 5月, 2009 2 次提交
    • M
      perf top: fix segfault · c2990a2a
      Mike Galbraith 提交于
      c6eb13 increased stack usage such that perf-top now croaks on startup.
      
      Take event_array and mmap_array off the stack to prevent segfault on boxen
      with smallish ulimit -s setting.
      Signed-off-by: NMike Galbraith <efault@gmx.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c2990a2a
    • P
      perf_counter: Fix userspace build · 1a482f38
      Peter Zijlstra 提交于
      recent userspace (F11) seems to already include the
      linux/unistd.h bits which means we cannot include the version
      in the kernel sources due to the header guards being the same.
      
      Ensure we include the kernel version first.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      LKML-Reference: <20090523163012.739756497@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1a482f38
  5. 23 5月, 2009 1 次提交
    • I
      perf_counter tools: increase limits · c6eb1384
      Ingo Molnar 提交于
      I tried to run with 300 active counters and the tools bailed out
      because our limit was at 64. So increase the counter limit to 1024
      and the CPU limit to 4096.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      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: Thomas Gleixner <tglx@linutronix.de>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c6eb1384
  6. 15 5月, 2009 3 次提交
    • P
      perf top: update to use the new freq interface · f5456a6b
      Peter Zijlstra 提交于
      Provide perf top -F as alternative to -c.
      
      [ Impact: new 'perf top' feature ]
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <20090515132018.707922166@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f5456a6b
    • I
      perf stat: handle Ctrl-C · 58d7e993
      Ingo Molnar 提交于
      Before this change, if a long-running perf stat workload was Ctrl-C-ed,
      the utility exited without displaying statistics.
      
      After the change, the Ctrl-C gets propagated into the workload (and
      causes its early exit there), but perf stat itself will still continue
      to run and will display counter results.
      
      This is useful to run open-ended workloads, let them run for
      a while, then Ctrl-C them to get the stats.
      
      [ Impact: extend perf stat with new functionality ]
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      58d7e993
    • A
      perf record: Allow specifying a pid to record · 1a853e36
      Arnaldo Carvalho de Melo 提交于
      Allow specifying a pid instead of always fork+exec'ing a command.
      
      Because the PERF_EVENT_COMM and PERF_EVENT_MMAP events happened before
      we connected, we must synthesize them so that 'perf report' can get what
      it needs.
      
      [ Impact: add new command line option ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Clark Williams <williams@redhat.com>
      Cc: John Kacur <jkacur@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <20090515015046.GA13664@ghostprotocols.net>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1a853e36
  7. 10 5月, 2009 1 次提交
  8. 09 5月, 2009 1 次提交
  9. 06 5月, 2009 1 次提交
  10. 03 5月, 2009 1 次提交