• Ian Munsie's avatar
    perf record,report,annotate,diff: Process events in order · eac23d1c
    Ian Munsie authored
    This patch changes perf report to ask for the ID info on all events be
    default if recording from multiple CPUs.
    
    Perf report, annotate and diff will now process the events in order if
    the kernel is able to provide timestamps on all events. This ensures
    that events such as COMM and MMAP which are necessary to correctly
    interpret samples are processed prior to those samples so that they are
    attributed correctly.
    
    Before:
     # perf record ./cachetest
     # perf report
    
     # Events: 6K cycles
     #
     # Overhead  Command      Shared Object                           Symbol
     # ........  .......  .................  ...............................
     #
         74.11%    :3259  [unknown]          [k] 0x4a6c
          1.50%  cachetest  ld-2.11.2.so       [.] 0x1777c
          1.46%    :3259  [kernel.kallsyms]  [k] .perf_event_mmap_ctx
          1.25%    :3259  [kernel.kallsyms]  [k] restore
          0.74%    :3259  [kernel.kallsyms]  [k] ._raw_spin_lock
          0.71%    :3259  [kernel.kallsyms]  [k] .filemap_fault
          0.66%    :3259  [kernel.kallsyms]  [k] .memset
          0.54%  cachetest  [kernel.kallsyms]  [k] .sha_transform
          0.54%    :3259  [kernel.kallsyms]  [k] .copy_4K_page
          0.54%    :3259  [kernel.kallsyms]  [k] .find_get_page
          0.52%    :3259  [kernel.kallsyms]  [k] .trace_hardirqs_off
          0.50%    :3259  [kernel.kallsyms]  [k] .__do_fault
    <SNIP>
    
    After:
     # perf report
    
     # Events: 6K cycles
     #
     # Overhead  Command      Shared Object                           Symbol
     # ........  .......  .................  ...............................
     #
         44.28%  cachetest  cachetest          [.] sumArrayNaive
         22.53%  cachetest  cachetest          [.] sumArrayOptimal
          6.59%  cachetest  ld-2.11.2.so       [.] 0x1777c
          2.13%  cachetest  [unknown]          [k] 0x340
          1.46%  cachetest  [kernel.kallsyms]  [k] .perf_event_mmap_ctx
          1.25%  cachetest  [kernel.kallsyms]  [k] restore
          0.74%  cachetest  [kernel.kallsyms]  [k] ._raw_spin_lock
          0.71%  cachetest  [kernel.kallsyms]  [k] .filemap_fault
          0.66%  cachetest  [kernel.kallsyms]  [k] .memset
          0.54%  cachetest  [kernel.kallsyms]  [k] .copy_4K_page
          0.54%  cachetest  [kernel.kallsyms]  [k] .find_get_page
          0.54%  cachetest  [kernel.kallsyms]  [k] .sha_transform
          0.52%  cachetest  [kernel.kallsyms]  [k] .trace_hardirqs_off
          0.50%  cachetest  [kernel.kallsyms]  [k] .__do_fault
    <SNIP>
    
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    LKML-Reference: <1291872833-839-1-git-send-email-imunsie@au1.ibm.com>
    Signed-off-by: default avatarIan Munsie <imunsie@au1.ibm.com>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    eac23d1c
builtin-record.c 23.4 KB