1. 06 Jun, 2009 4 commits
    • Ingo Molnar's avatar
      perf_counter tools: Fix cache-event printout · 8faf3b54
      Ingo Molnar authored
      Also standardize the cache printout (so that it can be pasted back
      into the command) and sort out the aliases.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8faf3b54
    • Thomas Gleixner's avatar
      perf_counter tools: Add 'perf list' to list available events · 86847b62
      Thomas Gleixner authored
      perf list: List all the available event types which can be used in
      -e (--event) options.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      86847b62
    • Ingo Molnar's avatar
      perf_counter: Implement generalized cache event types · 8326f44d
      Ingo Molnar authored
      Extend generic event enumeration with the PERF_TYPE_HW_CACHE
      method.
      
      This is a 3-dimensional space:
      
             { L1-D, L1-I, L2, ITLB, DTLB, BPU } x
             { load, store, prefetch } x
             { accesses, misses }
      
      User-space passes in the 3 coordinates and the kernel provides
      a counter. (if the hardware supports that type and if the
      combination makes sense.)
      
      Combinations that make no sense produce a -EINVAL.
      Combinations that are not supported by the hardware produce -ENOTSUP.
      
      Extend the tools to deal with this, and rewrite the event symbol
      parsing code with various popular aliases for the units and
      access methods above. So 'l1-cache-miss' and 'l1d-read-ops' are
      both valid aliases.
      
      ( x86 is supported for now, with the Nehalem event table filled in,
        and with Core2 and Atom having placeholder tables. )
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8326f44d
    • Ingo Molnar's avatar
      perf_counter: Separate out attr->type from attr->config · a21ca2ca
      Ingo Molnar authored
      Counter type is a frequently used value and we do a lot of
      bit juggling by encoding and decoding it from attr->config.
      
      Clean this up by creating a separate attr->type field.
      
      Also clean up the various similarly complex user-space bits
      all around counter attribute management.
      
      The net improvement is significant, and it will be easier
      to add a new major type (which is what triggered this cleanup).
      
      (This changes the ABI, all tools are adapted.)
      (PowerPC build-tested.)
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a21ca2ca
  2. 05 Jun, 2009 16 commits
  3. 04 Jun, 2009 20 commits
    • Frederic Weisbecker's avatar
      perf_counter tools: Fix warn_unused_result warnings · 76a0f40f
      Frederic Weisbecker authored
      Fix warnings for return values that we don't care about:
      
       util/quote.c:222: attention : ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
       util/quote.c:235: attention : ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
       util/quote.c: In function ‘write_name_quotedpfx’:
       util/quote.c:290: attention : ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.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: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1244146558-8635-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      76a0f40f
    • Arnaldo Carvalho de Melo's avatar
      perf report: Add -vvv to print the list of threads and its mmaps · 9ac99545
      Arnaldo Carvalho de Melo authored
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      9ac99545
    • Frederic Weisbecker's avatar
      perf_counter: Sleep before refresh using poll in perf top · 0f5486b5
      Frederic Weisbecker authored
      perf top is refreshed every delay_secs the thread runs in such
      loop:
      
      while (sleep(delay_secs)) {
      	print_sym_table();
      }
      
      At the end of print_sym_table(), poll is used without sleep delay
      to check if we have something from stdin.
      
      It means that this check is done only every delay_secs, which can
      be higher that 2 secs if the user defined a custom refresh rate.
      
      We can drop sleep() here and directly use poll to wait between
      refresh periods, so that the reaction after the user stops perf top
      after typing "Enter" is immediate and doesn't suffer from the
      delay_secs latency.
      
      Nb: poll doesn't add any overhead that can parasite perf top measures
      since it sleeps the entire timeout here.
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.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: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1244141284-7507-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      0f5486b5
    • Peter Zijlstra's avatar
      perf_counter tools: Use fork and remove munmap events · 62fc4453
      Peter Zijlstra authored
      Use fork events to clone comm and map data and remove everything
      munmap related
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      62fc4453
    • Peter Zijlstra's avatar
      perf_counter: Remove munmap stuff · d99e9446
      Peter Zijlstra authored
      In name of keeping it simple, only track mmap events. Userspace
      will have to remove old overlapping maps when it encounters them.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d99e9446
    • Peter Zijlstra's avatar
      perf_counter: Add fork event · 60313ebe
      Peter Zijlstra authored
      Create a fork event so that we can easily clone the comm and
      dso maps without having to generate all those events.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      60313ebe
    • Ingo Molnar's avatar
      perf stat: Update help text · 20c84e95
      Ingo Molnar authored
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      20c84e95
    • Ingo Molnar's avatar
      perf report: Bail out if there are unrecognized options/arguments · edc52dea
      Ingo Molnar authored
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      edc52dea
    • Ingo Molnar's avatar
      perf_counter tools: Dont output in color on !tty · 13d0ab5e
      Ingo Molnar authored
      Dont emit ASCII color characters if the terminal is not a tty,
      such as when perf report gets redirected into a file.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      13d0ab5e
    • Ingo Molnar's avatar
      perf_counter tools: Add color terminal output support · 8fc0321f
      Ingo Molnar authored
      Add Git's color printing library to util/color.[ch].
      
      Add it to perf report, with a trivial example to print high-overhead
      entries in red, low-overhead entries in green.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8fc0321f
    • Peter Zijlstra's avatar
      perf report: Add consistent spacing rules · 71dd8945
      Peter Zijlstra authored
      Make the sort header and the print function have the same column width.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      71dd8945
    • Ingo Molnar's avatar
      perf report: Print out the total number of events · 05ca061e
      Ingo Molnar authored
      So that the statistical quality of the profile can be estimated at a glance.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      05ca061e
    • Ingo Molnar's avatar
      perf_counter tools: Print out symbol parsing errors only if --verbose · bd74137e
      Ingo Molnar authored
      Also, add a suggestion to 'perf report', if the default sort order is
      used.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      bd74137e
    • Peter Zijlstra's avatar
      perf report: Simplify symbol output · 95ed6fd0
      Peter Zijlstra authored
      The DSO can be printed already - no need to repeat it in the
      symbol field.
      Signed-off-by: default avatarPeter 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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      95ed6fd0
    • Ingo Molnar's avatar
      perf_counter tools: Build with native optimization · af794b94
      Ingo Molnar authored
      Build the tools with -march=native by default.
      
      No measurable difference in speed though, compared to the
      default, on a Nehalem testbox.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      af794b94
    • Ingo Molnar's avatar
      perf record/report: Fix PID/COMM handling · df97992c
      Ingo Molnar authored
      Fix two bugs causing lost comm mappings:
      
       - initial PID is not 0 but getpid()
      
       - when we are unable to handle an mmap event, dont assume the event
         itself is broken - try to parse the stream. This way we wont lose
         comm events.
      
      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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      df97992c
    • Yong Wang's avatar
      perf_counter: Documentation update · 3aff27ca
      Yong Wang authored
      The 'nmi' bit is no longer there.
      Signed-off-by: default avatarYong Wang <yong.y.wang@intel.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: Arjan van de Ven <arjan@linux.intel.com>
      LKML-Reference: <20090603084225.GA6553@ywang-moblin2.bj.intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3aff27ca
    • Paul Mackerras's avatar
      perf_counter: powerpc: Use new identifier names in powerpc-specific code · 1b58c251
      Paul Mackerras authored
      Commit b23f3325 ("perf_counter: Rename various fields") fixed up
      most of the uses of the renamed fields, but missed one instance
      of "record_type" in powerpc-specific code which needs to be changed
      to "sample_type", and a "PERF_RECORD_ADDR" in the same statement that
      needs to be changed to "PERF_SAMPLE_ADDR", causing compilation
      errors on powerpc.  This fixes it.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <18983.3111.770392.800486@cargo.ozlabs.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1b58c251
    • Ingo Molnar's avatar
      perf top: Reduce default filter threshold · 6e53cdf1
      Ingo Molnar authored
      On idle systems 'perf top' comes up empty by default, because the event
      count filter is set to 100.
      
      Reduce it to 5 instead.
      
      Also add an option to limit the number of functions displayed.
      Reported-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Acked-by: default avatarPeter 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>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      6e53cdf1
    • Arnaldo Carvalho de Melo's avatar
      perf report: Fix rbtree bug · a4c43bea
      Arnaldo Carvalho de Melo authored
      Ingo Molnar reported:
      
      > FYI, i just got this crash (segfault) in perf report after
      > collecting a long profile from Xorg:
      >
      > Starting program: /home/mingo/tip/Documentation/perf_counter/perf report
      > [Thread debugging using libthread_db enabled]
      > Detaching after fork from child process 20008.
      > [New Thread 0x7f92fd62a6f0 (LWP 20005)]
      >
      > Program received signal SIGSEGV, Segmentation fault.
      > 0x000000000041031a in __rb_erase_color (node=0x142c0901, parent=0x0,
      > root=0x881918)
      >     at util/rbtree.c:143
      > 143			if (parent->rb_left == node)
      
      It was a problem introduced in this cset:
      
       perf report: Fix comm sorting - 8229289b
      
      This patch should fix it.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
      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: Stephane Eranian <eranian@googlemail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a4c43bea