• A
    perf top: Reuse the 'report' hist_entry/hists classes · ab81f3fd
    Arnaldo Carvalho de Melo 提交于
    This actually fixes several problems we had in the old 'perf top':
    
    1. Unresolved symbols not show, limitation that came from the old
       "KernelTop" codebase, to solve it we would need to do changes
       that would make sym_entry have most of the hist_entry fields.
    2. It was using the number of samples, not the sum of sample->period.
    
    And brings the --sort code that allows us to have all the views in
    'perf report', for instance:
    
    [root@emilia ~]# perf top --sort dso
    PerfTop: 5903 irqs/sec kernel:77.5% exact: 0.0% [1000Hz cycles], (all, 8 CPUs)
    ------------------------------------------------------------------------------
    
        31.59%  libcrypto.so.1.0.0
        21.55%  [kernel]
        18.57%  libpython2.6.so.1.0
         7.04%  libc-2.12.so
         6.99%  _backend_agg.so
         4.72%  sshd
         1.48%  multiarray.so
         1.39%  libfreetype.so.6.3.22
         1.37%  perf
         0.71%  libgobject-2.0.so.0.2200.5
         0.53%  [tg3]
         0.48%  libglib-2.0.so.0.2200.5
         0.44%  libstdc++.so.6.0.13
         0.40%  libcairo.so.2.10800.8
         0.38%  libm-2.12.so
         0.34%  umath.so
         0.30%  libgdk-x11-2.0.so.0.1800.9
         0.22%  libpthread-2.12.so
         0.20%  libgtk-x11-2.0.so.0.1800.9
         0.20%  librt-2.12.so
         0.15%  _path.so
         0.13%  libpango-1.0.so.0.2800.1
         0.11%  libatlas.so.3.0
         0.09%  ft2font.so
         0.09%  libpangoft2-1.0.so.0.2800.1
         0.08%  libX11.so.6.3.0
         0.07%  [vdso]
         0.06%  cyclictest
    ^C
    
    All the filter lists can be used as well: --dsos, --comms, --symbols,
    etc.
    
    The 'perf report' TUI is also reused, being possible to apply all the
    zoom operations, do annotation, etc.
    
    This change will allow multiple simplifications in the symbol system as
    well, that will be detailed in upcoming changesets.
    
    Cc: David Ahern <dsahern@gmail.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>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/n/tip-xzaaldxq7zhqrrxdxjifk1mh@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    ab81f3fd
builtin-top.c 26.6 KB