• T
    perf tools: Add support for "report" for some spe events · 3feaeceb
    Tan Xiaojun 提交于
    hulk inclusion
    category: feature
    bugzilla: 18657
    CVE: NA
    
    -------------------------------------------
    
    After the commit ffd3d18c (perf tools: Add ARM Statistical
    Profiling Extensions (SPE) support) is merged, "perf record" and
    "perf report --dump-raw-trace" have been supported. However, the
    raw data that is dumped cannot be used without parsing.
    
    This patch is to improve the "perf report" support for spe, and
    further process the data. Currently, support for the three events
    of llc-miss, tlb-miss, branch-miss and remote-access is added.
    
    Example usage:
    
    $ ./perf record -c 1024 -e arm_spe_0/branch_filter=1,ts_enable=1,pct_enable=1,pa_enable=1,load_filter=1,jitter=1,store_filter=1,min_latency=0/ -o perf-armspe-dd.data dd if=/dev/zero of=/dev/null count=10000
    
    $ ./perf report -i perf-armspe-dd.data --stdio
    --------------------------------------------------------------------
    ...
    # Samples: 23  of event 'llc-miss'
    # Event count (approx.): 23
    ...
        33.33%    33.33%  dd       [kernel.kallsyms]  [k] perf_iterate_ctx.constprop.64
        12.12%    12.12%  dd       [kernel.kallsyms]  [k] perf_event_mmap
         6.06%     6.06%  dd       [kernel.kallsyms]  [k] copy_page
         6.06%     6.06%  dd       ld-2.28.so         [.] _dl_relocate_object
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] change_protection_range
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] filemap_map_pages
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] free_pages_and_swap_cache
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] generic_permission
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] kmem_cache_alloc
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] lookup_fast
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] perf_event_exec
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] radix_tree_next_chunk
         3.03%     3.03%  dd       [kernel.kallsyms]  [k] ring_buffer_record_is_on
         3.03%     3.03%  dd       ld-2.28.so         [.] _dl_lookup_symbol_x
         3.03%     3.03%  dd       ld-2.28.so         [.] _dl_start
         3.03%     3.03%  dd       ld-2.28.so         [.] dl_main
         3.03%     3.03%  dd       ld-2.28.so         [.] strcmp
         3.03%     3.03%  dd       libc-2.28.so       [.] _dl_addr
    ...
    # Samples: 3  of event 'tlb-miss'
    # Event count (approx.): 3
    ...
        33.33%    33.33%  dd       [kernel.kallsyms]  [k] filemap_map_pages
        33.33%    33.33%  dd       ld-2.28.so         [.] _dl_start
        33.33%    33.33%  dd       ld-2.28.so         [.] dl_main
    ...
    # Samples: 20  of event 'branch-miss'
    # Event count (approx.): 20
    ...
        15.38%    15.38%  dd       [kernel.kallsyms]  [k] __fput
         7.69%     7.69%  dd       [kernel.kallsyms]  [k] do_el0_ia_bp_hardening
         7.69%     7.69%  dd       [kernel.kallsyms]  [k] filemap_map_pages
         7.69%     7.69%  dd       [kernel.kallsyms]  [k] pagevec_lru_move_fn
         7.69%     7.69%  dd       [kernel.kallsyms]  [k] perf_event_mmap_output
         7.69%     7.69%  dd       [kernel.kallsyms]  [k] task_work_run
         7.69%     7.69%  dd       [kernel.kallsyms]  [k] unmap_single_vma
         7.69%     7.69%  dd       libc-2.28.so       [.] _IO_flush_all_lockp
         7.69%     7.69%  dd       libc-2.28.so       [.] __memcpy_generic
         7.69%     7.69%  dd       libc-2.28.so       [.] _dl_addr
         7.69%     7.69%  dd       libc-2.28.so       [.] msort_with_tmp.part.0
         7.69%     7.69%  dd       libc-2.28.so       [.] read_alias_file
    ...
    # Samples: 5  of event 'remote-access'
    # Event count (approx.): 5
    ...
        27.78%    27.78%  dd       [kernel.kallsyms]  [k] perf_iterate_ctx.constprop.64
        16.67%    16.67%  dd       [kernel.kallsyms]  [k] perf_event_mmap
         5.56%     5.56%  dd       [kernel.kallsyms]  [k] change_protection_range
         5.56%     5.56%  dd       [kernel.kallsyms]  [k] filemap_map_pages
         5.56%     5.56%  dd       [kernel.kallsyms]  [k] free_pages_and_swap_cache
         5.56%     5.56%  dd       [kernel.kallsyms]  [k] generic_permission
         5.56%     5.56%  dd       [kernel.kallsyms]  [k] lookup_fast
         5.56%     5.56%  dd       [kernel.kallsyms]  [k] perf_event_exec
         5.56%     5.56%  dd       [kernel.kallsyms]  [k] radix_tree_next_chunk
         5.56%     5.56%  dd       ld-2.28.so         [.] _dl_relocate_object
         5.56%     5.56%  dd       ld-2.28.so         [.] _dl_start
         5.56%     5.56%  dd       ld-2.28.so         [.] dl_main
    
    --------------------------------------------------------------------
    After that, more analysis and processing of the raw data of spe
    will be done.
    Signed-off-by: NTan Xiaojun <tanxiaojun@huawei.com>
    Signed-off-by: NWei Li <liwei391@huawei.com>
    Reviewed-by: NXuefeng Wang <wxf.wang@hisilicon.com>
    Reviewed-by: NTan Xiaojun <tanxiaojun@huawei.com>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    3feaeceb
Build 70 字节