1. 10 11月, 2009 4 次提交
  2. 09 11月, 2009 1 次提交
    • H
      perf bench: Fix bench/sched-pipe.c to wait for child process · 5ff0cfc6
      Hitoshi Mitake 提交于
      Ingo reported this small 'perf bench sched pipe' output problem:
      
       | $ ./perf bench sched pipe
       | (executing 1000000 pipe operations between two tasks)
       |
       |	Total time:4.898 sec
       | $		4.898586 usecs/op
       |		204140 ops/sec
       |
       | the shell prompt came back before the usecs/op and ops/sec line
       | was printed. Process teardown race, lack of wait() or so?
      
      This caused by lack of calling waitpid() by parent process,
      so I added it.
      Signed-off-by: NHitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Kosina <jkosina@suse.cz>
      LKML-Reference: <1257737465-7546-1-git-send-email-mitake@dcl.info.waseda.ac.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5ff0cfc6
  3. 08 11月, 2009 7 次提交
  4. 04 11月, 2009 3 次提交
  5. 03 11月, 2009 1 次提交
    • I
      perf tools: Fix missing symtabs printouts · 900b20d5
      Ingo Molnar 提交于
      Fix:
      
        util/map.c: In function ‘map__find_symbol’:
        util/map.c:97: error: field precision should have type ‘int’, but argument 3 has type ‘size_t’
      
      Also clean up some line wrap damage - we dont line-wrap printk
      messages.
      
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <1256927305-4628-3-git-send-email-acme@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      900b20d5
  6. 02 11月, 2009 3 次提交
  7. 29 10月, 2009 1 次提交
  8. 27 10月, 2009 5 次提交
    • M
      perf tools: Output 'perf list' to stdout not stderr · 689d3018
      Marti Raudsepp 提交于
      Writing to stdout is probably the expected behavior because the
      user explicitly asked for a list.
      Signed-off-by: NMarti Raudsepp <marti@juffo.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <4ebb59420ef057972167.1256603585@localhost>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      689d3018
    • M
      perf tools: Notify user when unrecognized event is specified · 85df6f68
      Marti Raudsepp 提交于
      Previously no indication was given about what went wrong.
      Signed-off-by: NMarti Raudsepp <marti@juffo.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <03ec9ee96f17cef05424.1256603584@localhost>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      85df6f68
    • A
      perf top: Support userspace symbols too · 5b2bb75a
      Arnaldo Carvalho de Melo 提交于
      Example:
      
      Compiling the kernel with 'make -k 22 allyesconfig'
      
      [root@emilia linux-2.6-tip]# perf top -r 90
      ------------------------------------------------------------------------------
         PerfTop:    3669 irqs/sec  kernel:59.9% [1000Hz cycles],  (all, 8 CPUs)
      ------------------------------------------------------------------------------
      
                   samples  pcnt function                                 DSO
                   _______ _____ ________________________________ ________________
      
                   3062.00  6.5% clear_page_c                     [kernel]
                   2233.00  4.8% _int_malloc                      /lib64/libc-2.5.so
                   2100.00  4.5% yylex                            /home/acme/git/build/allyesconfig/scripts/genksyms/genksyms
                   2029.00  4.3% memset                           /lib64/libc-2.5.so
                   1224.00  2.6% page_fault                       [kernel]
                   1075.00  2.3% __GI_strlen                      /lib64/libc-2.5.so
                    863.00  1.8% sub_preempt_count                [kernel]
                    822.00  1.8% __GI_memcpy                      /lib64/libc-2.5.so
                    810.00  1.7% __GI_vfprintf                    /lib64/libc-2.5.so
                    786.00  1.7% _int_free                        /lib64/libc-2.5.so
                    775.00  1.7% __GI_strcmp                      /lib64/libc-2.5.so
                    748.00  1.6% _spin_lock                       [kernel]
                    699.00  1.5% main                             /home/acme/git/build/allyesconfig/scripts/basic/fixdep
                    659.00  1.4% add_preempt_count                [kernel]
                    649.00  1.4% yyparse                          /home/acme/git/build/allyesconfig/scripts/genksyms/genksyms
                    645.00  1.4% preempt_trace                    [kernel]
                    635.00  1.4% __GI___libc_free                 /lib64/libc-2.5.so
                    597.00  1.3% trace_preempt_on                 [kernel]
                    551.00  1.2% __GI___libc_malloc               /lib64/libc-2.5.so
                    516.00  1.1% _spin_lock_irqsave               [kernel]
                    481.00  1.0% copy_user_generic_string         [kernel]
                    479.00  1.0% unmap_vmas                       [kernel]
                    429.00  0.9% _IO_file_xsputn_internal         /lib64/libc-2.5.so
                    425.00  0.9% __GI_strncpy                     /lib64/libc-2.5.so
                    416.00  0.9% get_page_from_freelist           [kernel]
                    414.00  0.9% malloc_consolidate               /lib64/libc-2.5.so
                    406.00  0.9% get_parent_ip                    [kernel]
                    362.00  0.8% __rmqueue                        [kernel]
                    347.00  0.7% in_lock_functions                [kernel]
                    316.00  0.7% __d_lookup                       [kernel]
      
      [root@emilia linux-2.6-tip]#
      
      More polishing is needed to print just DSO basename when not
      --verbose, etc.
      
      Supporting a 'comm' column requires some more reworking of 'perf
      top' internals as we will need to use something like the hist
      entries 'perf report' uses and will be done in another patch.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <1256592199-9608-3-git-send-email-acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5b2bb75a
    • A
      perf tools: Generalize event synthesizing routines · 234fbbf5
      Arnaldo Carvalho de Melo 提交于
      Because we will need it in 'perf top' to support userspace
      symbols for existing threads.
      
      Now we pass a callback that will receive the synthesized event
      and then write it to the output file in 'perf record' and in the
      upcoming patch for 'perf top' we will just immediatelly create
      the in memory representation of threads and maps.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <1256592199-9608-2-git-send-email-acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      234fbbf5
    • A
      perf record: Fix race where process can disappear while reading its /proc/pid/tasks · 7f3bedcc
      Arnaldo Carvalho de Melo 提交于
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <1256592199-9608-1-git-send-email-acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7f3bedcc
  9. 26 10月, 2009 3 次提交
    • M
      perf tools, Alpha: Add Alpha support to perf.h · fcd14b32
      Michael Cree 提交于
      For the perf tool the patch implements an Alpha specific section
      in the perf.h header file.
      Signed-off-by: NMichael Cree <mcree@orcon.net.nz>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1256545926-6972-1-git-send-email-mcree@orcon.net.nz>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fcd14b32
    • P
      perf tools: Remove -Wcast-align · ec29b8d2
      Paul Mundt 提交于
      The present use of -Wcast-align causes the build to blow up on
      SH due to generating a "cast increases required alignment of
      target type" error on each invocation of list_for_each_entry().
      
      It seems that this was previously reported and killed off in the
      ia64 support patch, but nothing seems to have happened with
      that. Presumably the same problem still remains there, too.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      LKML-Reference: <20091026054000.GA13517@linux-sh.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ec29b8d2
    • M
      perf tools: Fix compatibility with libelf 0.8 and autodetect · 84087126
      Marti Raudsepp 提交于
      The Makefile now automatically defines LIBELF_NO_MMAP when
      libelf 0.8.x is detected. libelf 0.8 is still maintained and
      some distributions such as Arch Linux use it instead of
      elfutils.
      Signed-off-by: NMarti Raudsepp <marti@juffo.org>
      Cc: Lucas De Marchi <lucas.de.marchi@gmail.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <1256400636.3007.16.camel@newn>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      84087126
  10. 23 10月, 2009 4 次提交
    • A
      perf tools: Unify debug messages mechanisms · 6beba7ad
      Arnaldo Carvalho de Melo 提交于
      We were using eprintf in some places, that looks at a global
      'verbose' level, and at other places passing a 'v' parameter to
      specify the verbosity level, unify it by introducing
      pr_{err,warning,debug,etc}, just like in the kernel.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <1256153646-10097-1-git-send-email-acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6beba7ad
    • F
      perf tools: Drop asm/types.h wrapper · 802da5f2
      Frederic Weisbecker 提交于
      Wrapping the kernel headers is dangerous when it comes to arch
      headers. Once we wrap asm/types.h, it will also replace the
      glibc asm/types.h, not only the kernel one.
      
      This results in build errors on some machines.
      
      Drop this wrapper and do its work from linux/types.h wrapper,
      also the glibc asm/types.h can already handle most of the type
      definition it was doing (typedef __u64, __u32, etc...).
      
      Todo: Check the others asm/*.h wrappers to prevent from other
      conflicts.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Anton Blanchard <anton@samba.org>
      LKML-Reference: <1256246604-17156-3-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      802da5f2
    • F
      perf tools: Bind callchains to the first sort dimension column · a4fb581b
      Frederic Weisbecker 提交于
      Currently, the callchains are displayed using a constant left
      margin. So depending on the current sort dimension
      configuration, callchains may appear to be well attached to the
      first sort dimension column field which is mostly the case,
      except when the first dimension of sorting is done by comm,
      because these are right aligned.
      
      This patch binds the callchain to the first letter in the first
      column, whatever type of column it is (dso, comm, symbol).
      Before:
      
           0.80%             perf  [k] __lock_acquire
                   __lock_acquire
                   lock_acquire
                   |
                   |--58.33%-- _spin_lock
                   |          |
                   |          |--28.57%-- inotify_should_send_event
                   |          |          fsnotify
                   |          |          __fsnotify_parent
      
      After:
      
           0.80%             perf  [k] __lock_acquire
                             __lock_acquire
                             lock_acquire
                             |
                             |--58.33%-- _spin_lock
                             |          |
                             |          |--28.57%-- inotify_should_send_event
                             |          |          fsnotify
                             |          |          __fsnotify_parent
      
      Also, for clarity, we don't put anymore the callchain as is but:
      
      - If we have a top level ancestor in the callchain, start it
        with a first ascii hook.
      
        Before:
      
           0.80%             perf  [kernel]                        [k] __lock_acquire
                             __lock_acquire
                               lock_acquire
                             |
                             |--58.33%-- _spin_lock
                             |          |
                             |          |--28.57%-- inotify_should_send_event
                             |          |          fsnotify
                            [..]       [..]
      
         After:
      
           0.80%             perf  [kernel]                         [k] __lock_acquire
                             |
                             --- __lock_acquire
                                 lock_acquire
                                |
                                |--58.33%-- _spin_lock
                                |          |
                                |          |--28.57%-- inotify_should_send_event
                                |          |          fsnotify
                               [..]       [..]
      
      - Otherwise, if we have several top level ancestors, then
        display these like we did before:
      
             1.69%           Xorg
                             |
                             |--21.21%-- vread_hpet
                             |          0x7fffd85b46fc
                             |          0x7fffd85b494d
                             |          0x7f4fafb4e54d
                             |
                             |--15.15%-- exaOffscreenAlloc
                             |
                             |--9.09%-- I830WaitLpRing
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Anton Blanchard <anton@samba.org>
      LKML-Reference: <1256246604-17156-2-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a4fb581b
    • F
      perf tools: Fix missing top level callchain · af0a6fa4
      Frederic Weisbecker 提交于
      While recursively printing the branches of each callchains, we
      forget to display the root. It is never printed.
      
      Say we have:
      
          symbol
          f1
          f2
           |
           -------- f3
           |        f4
           |
           ---------f5
                    f6
      
      Actually we never see that, instead it displays:
      
          symbol
          |
          --------- f3
          |         f4
          |
          --------- f5
                    f6
      
      However f1 is always the same than "symbol" and if we are
      sorting by symbols first then "symbol", f1 and f2 will be well
      aligned like in the above example, so displaying f1 looks
      redundant here.
      
      But if we are sorting by something else first (dso, comm,
      etc...), displaying f1 doesn't look redundant but rather
      necessary because the symbol is not well aligned anymore with
      its callchain:
      
           comm     dso        symbol
           f1
           f2
           |
           --------- [...]
      
      And we want the callchain to be obvious.
      So we fix the bug by printing the root branch, but we also
      filter its first entry if we are sorting by symbols first.
      Reported-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      LKML-Reference: <1256246604-17156-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      af0a6fa4
  11. 21 10月, 2009 5 次提交
  12. 20 10月, 2009 3 次提交
    • A
      perf tools: Add ->unmap_ip operation to struct map · ed52ce2e
      Arnaldo Carvalho de Melo 提交于
      We need this because we get section relative addresses when
      reading the symtabs, but when a tool like 'perf annotate' needs
      to match these address to what 'objdump -dS' produces we need
      the address + section back again.
      
      So in annotate now we look at the 'struct hist_entry' instances
      (that weren't really being used) so that we iterate only over
      the symbols that had some hit and get the map where that
      particular hit happened so that we can get the right address to
      match with annotate.
      
      Verified that at least:
      
       perf annotate mmap_read_counter # Uses the ~/bin/perf binary
       perf annotate --vmlinux /home/acme/git/build/perf/vmlinux intel_pmu_enable_all
      
      on a 'perf record perf top' session seems to work.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Mike Galbraith <efault@gmx.de>
      LKML-Reference: <1255979877-12533-1-git-send-email-acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ed52ce2e
    • A
      perf timechart: Add a process filter · bbe2987b
      Arjan van de Ven 提交于
      During the Kernel Summit demo of perf/ftrace/timechart, there
      was a feature request to have a process filter for timechart so
      that you can zoom into one or a few processes that you are
      really interested in.
      
      This patch adds basic support for this feature, the -p
      (--process) option now can select a PID or a process name to be
      shown. Multiple -p options are allowed, and the combined set
      will be included in the output.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      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>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <20091020070939.7d0fb8a7@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      bbe2987b
    • A
      perf timechart: Improve the visual appearance of scheduler delays · 2e600d01
      Arjan van de Ven 提交于
      [from KS feedback]
      
      Currently, scheduler delays are shown in a mostly transparent,
      light yellow color. This color is rather hard to see on several
      screens, especially projectors.
      
      This patch changes the color of the scheduler delays to be a
      much more "hard" yellow that survived the kernel summit
      projector.
      Reported-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: Arjan van de Ven <arjan@linux.intel.com
      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>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <20091020064731.20ae126a@infradead.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2e600d01