1. 22 Nov, 2009 1 commit
    • Hitoshi Mitake's avatar
      perf bench: Make the mem/memcpy tests more user-friendly · 12eac0bf
      Hitoshi Mitake authored
      mem-memcpy.c uses perf event system calls to obtain CPU clocks.
      And it suddenly dies with BUG_ON() when it running on Linux
      doesn't support perf event.
      
      Also fail at calloc() can occur easily when too large
      length is passed. Fail of calloc() causes sudden death
      with assert().
      
      These behaviours are not friendly. So I fixed the treating of
      errors.
      Signed-off-by: default avatarHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1258688237-3797-1-git-send-email-mitake@dcl.info.waseda.ac.jp>
      [ v2: improved a few small details ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      12eac0bf
  2. 19 Nov, 2009 8 commits
  3. 17 Nov, 2009 12 commits
  4. 16 Nov, 2009 7 commits
    • Arnaldo Carvalho de Melo's avatar
      perf buildid-list: New plumbing command · c34984b2
      Arnaldo Carvalho de Melo authored
      With this we can list the buildids in a perf.data file so that
      we can pipe them to other, distro specific tools that from the
      buildids can figure out separate packages (foo-debuginfo) where
      we can find the matching symtabs so that perf report can do its
      job.
      
      E.g:
      
      [acme@doppio linux-2.6-tip]$ perf buildid-list | head -5
      8e08b117e5458ad3f85da16d42d0fc5cd21c5869
      520c2387a587cc5acfcf881e27dba1caaeab4b1f
      ec8dd400904ddfcac8b1c343263a790f977159dc
      7caedbca5a6d8ab39a7fe44bd28c07d3e14a3f3f
      379bb828fd08859dbea73279f04abefabc95a6a3
      [acme@doppio linux-2.6-tip]$ perf buildid-list -v | head -5
      8e08b117e5458ad3f85da16d42d0fc5cd21c5869 /sbin/init
      520c2387a587cc5acfcf881e27dba1caaeab4b1f /lib64/ld-2.10.1.so
      ec8dd400904ddfcac8b1c343263a790f977159dc /lib64/libc-2.10.1.so
      7caedbca5a6d8ab39a7fe44bd28c07d3e14a3f3f /sbin/udevd
      379bb828fd08859dbea73279f04abefabc95a6a3 /lib64/libdl-2.10.1.so
      [acme@doppio linux-2.6-tip]$
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1258396365-29217-5-git-send-email-acme@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c34984b2
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Introduce dsos__fprintf_buildid · 9e03eb2d
      Arnaldo Carvalho de Melo authored
      To print the buildids in the list of dsos. Will be used by 'perf
      buildid-list'
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1258396365-29217-4-git-send-email-acme@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      9e03eb2d
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Generalize perf_header__adds_read() · 37562eac
      Arnaldo Carvalho de Melo authored
      Renaming it to perf_header__process_sections() and passing a
      callback to handle each feature.
      
      The next changesets will introduce 'perf buildid-list' that will
      handle just the HEADER_BUILD_ID table, ignoring all the other
      features.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Acked-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1258396365-29217-3-git-send-email-acme@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      37562eac
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Debug.h needs to include event.h for event_t · 8f41146a
      Arnaldo Carvalho de Melo authored
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1258396365-29217-2-git-send-email-acme@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8f41146a
    • Arnaldo Carvalho de Melo's avatar
      perf symbols: Pass the offset to perf_header__read_build_ids() · 84fe8488
      Arnaldo Carvalho de Melo authored
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1258396365-29217-1-git-send-email-acme@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      84fe8488
    • Arnaldo Carvalho de Melo's avatar
      perf symbols: Call the symbol filter in dso__synthesize_plt_symbols() · 82164161
      Arnaldo Carvalho de Melo authored
      We need to pass the symbol to the filter so that, for instance,
      'perf top' can do filtering and also set the private area it
      manages, setting the ->map pointer, etc.
      
      I found this while running 'perf top' on a machine where hits
      happened on PLT symbols, where ->map wasn't being set up and
      segfaults thus happened.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      LKML-Reference: <1258386491-20278-1-git-send-email-acme@infradead.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      82164161
    • Peter Zijlstra's avatar
      perf_event: Optimize perf_output_lock() · 559fdc3c
      Peter Zijlstra authored
      The purpose of perf_output_{un,}lock() is to:
      
       1) avoid publishing incomplete data
          [ possible when publishing a head that is ahead of an entry
            that is still being written ]
      
       2) guarantee fwd progress
          [ a simple refcount on pending writers doesn't need to drop to
            0, making it so would end up implementing something like forced
            quiecent states of RCU ]
      
      To satisfy the above without undue complexity it serializes
      between CPUs, this means that a pending writer can only be the
      same cpu in a nested context, and since (under normal operation)
      a cpu always makes progress we're good -- if the head is only
      published when the bottom  most writer completes.
      
      Now we don't need to disable IRQs in order to serialize between
      CPUs, disabling preemption ought to be sufficient, esp since we
      already deal with nesting due to NMIs.
      
      This avoids potentially expensive (and needless) local IRQ
      disable/enable ops.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1258373161.26714.254.camel@laptop>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      559fdc3c
  5. 15 Nov, 2009 4 commits
    • Lucas De Marchi's avatar
      perf stat: Do not print ratio when task-clock event is not counted · 7255fe2a
      Lucas De Marchi authored
      The ratio between the number of events and the time elapsed makes
      sense only if task-clock event is counted. Otherwise it will be
      simply a (confusing)
      
      	#      0.000 M/sec
      
      This patch outputs the ratio only if task-clock event is counted.
      Some test examples of before and after:
      
      Before:
      
       [lucas@skywalker linux.trees.git]$ sudo perf stat -e branch-misses -a -- sleep 1
      
      	 Performance counter stats for 'sleep 1':
      
      		1367818  branch-misses            #      0.000 M/sec
      
      	    1.001494325  seconds time elapsed
      
      After (without task-clock):
      
       [lucas@skywalker perf]$ sudo ./perf stat -e branch-misses -a -- sleep 1
      
      	 Performance counter stats for 'sleep 1':
      
      		1135044  branch-misses
      
      	    1.001370775  seconds time elapsed
      
      After (with task-clock):
      
       [lucas@skywalker perf]$ sudo ./perf stat -e branch-misses -e task-clock -a -- sleep 1
      
      	 Performance counter stats for 'sleep 1':
      
      		1070111  branch-misses            #      0.534 M/sec
      	    2002.730893  task-clock-msecs         #      1.999 CPUs
      
      	    1.001640292  seconds time elapsed
      Signed-off-by: default avatarLucas De Marchi <lucas.de.marchi@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      LKML-Reference: <20091115140507.GB21561@skywalker.lan>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      7255fe2a
    • Hitoshi Mitake's avatar
      perf tools: Add new perf_atoll() function to parse string representing size in bytes · d2fb8b41
      Hitoshi Mitake authored
      This patch modifies util/string.[ch] to add new function:
      perf_atoll() to parse string representing size in bytes.
      
      This function parses (\d+)(b|B|kb|KB|mb|MB|gb|GB) (e.g. "256MB")
      and returns its numeric value. (e.g. 268435456)
      Signed-off-by: default avatarHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1258285013-4759-1-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d2fb8b41
    • Ingo Molnar's avatar
      Merge branches 'perf/powerpc' and 'perf/bench' into perf/core · 0ffa798d
      Ingo Molnar authored
      Merge reason: Both 'perf bench' and the pending PowerPC changes
                    are now ready for the next merge window.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      0ffa798d
    • Ingo Molnar's avatar
      Merge commit 'v2.6.32-rc7' into perf/core · 39dc78b6
      Ingo Molnar authored
      Merge reason: pick up perf fixlets
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      39dc78b6
  6. 14 Nov, 2009 1 commit
  7. 13 Nov, 2009 2 commits
  8. 12 Nov, 2009 5 commits