• Adrian Hunter's avatar
    perf auxtrace: For reporting purposes, un-group AUX area event · 5c7bec0c
    Adrian Hunter authored
    An AUX area event must be the group leader when recording traces in
    sample mode, but that does not produce the expected results from
    'perf report' because it expects the leader to provide samples.
    
    Rather than teach 'perf report' about AUX area sampling, un-group the
    AUX area event during processing, making the 2nd event the leader.
    
    Example:
    
     $ perf record -e '{intel_pt//u,branch-misses:u}' -c 1 uname
     Linux
     [ perf record: Woken up 1 times to write data ]
     [ perf record: Captured and wrote 0.080 MB perf.data ]
    
     Before:
    
     $ perf report
    
     Samples: 800  of events 'anon group { intel_pt//u, branch-misses:u }', Event count (approx.): 800
            Children              Self  Command  Shared Object     Symbol
         0.00%  47.50%     0.00%  47.50%  uname    libc-2.28.so      [.] _dl_addr
         0.00%  16.38%     0.00%  16.38%  uname    ld-2.28.so        [.] __GI___tunables_init
         0.00%  54.75%     0.00%   4.75%  uname    ld-2.28.so        [.] dl_main
         0.00%   3.12%     0.00%   3.12%  uname    ld-2.28.so        [.] _dl_map_object_from_fd
         0.00%   2.38%     0.00%   2.38%  uname    ld-2.28.so        [.] strcmp
         0.00%   2.25%     0.00%   2.25%  uname    ld-2.28.so        [.] _dl_check_map_versions
         0.00%   2.00%     0.00%   2.00%  uname    ld-2.28.so        [.] _dl_important_hwcaps
         0.00%   2.00%     0.00%   2.00%  uname    ld-2.28.so        [.] _dl_map_object_deps
         0.00%  51.50%     0.00%   1.50%  uname    ld-2.28.so        [.] _dl_sysdep_start
         0.00%   1.25%     0.00%   1.25%  uname    ld-2.28.so        [.] _dl_load_cache_lookup
         0.00%  51.12%     0.00%   1.12%  uname    ld-2.28.so        [.] _dl_start
         0.00%  50.88%     0.00%   1.12%  uname    ld-2.28.so        [.] do_lookup_x
         0.00%  50.62%     0.00%   1.00%  uname    ld-2.28.so        [.] _dl_lookup_symbol_x
         0.00%   1.00%     0.00%   1.00%  uname    ld-2.28.so        [.] _dl_map_object
         0.00%   1.00%     0.00%   1.00%  uname    ld-2.28.so        [.] _dl_next_ld_env_entry
         0.00%   0.88%     0.00%   0.88%  uname    ld-2.28.so        [.] _dl_cache_libcmp
         0.00%   0.88%     0.00%   0.88%  uname    ld-2.28.so        [.] _dl_new_object
         0.00%  50.88%     0.00%   0.88%  uname    ld-2.28.so        [.] _dl_relocate_object
         0.00%   0.62%     0.00%   0.62%  uname    ld-2.28.so        [.] _dl_init_paths
         0.00%   0.62%     0.00%   0.62%  uname    ld-2.28.so        [.] _dl_name_match_p
         0.00%   0.50%     0.00%   0.50%  uname    ld-2.28.so        [.] get_common_indeces.constprop.1
         0.00%   0.50%     0.00%   0.50%  uname    ld-2.28.so        [.] memmove
         0.00%   0.50%     0.00%   0.50%  uname    ld-2.28.so        [.] memset
         0.00%   0.50%     0.00%   0.50%  uname    ld-2.28.so        [.] open_verify.constprop.11
         0.00%   0.38%     0.00%   0.38%  uname    ld-2.28.so        [.] _dl_check_all_versions
         0.00%   0.38%     0.00%   0.38%  uname    ld-2.28.so        [.] _dl_find_dso_for_object
         0.00%   0.38%     0.00%   0.38%  uname    ld-2.28.so        [.] init_tls
         0.00%   0.25%     0.00%   0.25%  uname    ld-2.28.so        [.] __tunable_get_val
         0.00%   0.25%     0.00%   0.25%  uname    ld-2.28.so        [.] _dl_add_to_namespace_list
         0.00%   0.25%     0.00%   0.25%  uname    ld-2.28.so        [.] _dl_determine_tlsoffset
         0.00%   0.25%     0.00%   0.25%  uname    ld-2.28.so        [.] _dl_discover_osversion
         0.00%   0.25%     0.00%   0.25%  uname    ld-2.28.so        [.] calloc@plt
         0.00%   0.25%     0.00%   0.25%  uname    ld-2.28.so        [.] malloc
         0.00%   0.25%     0.00%   0.25%  uname    ld-2.28.so        [.] malloc@plt
         0.00%   0.25%     0.00%   0.25%  uname    libc-2.28.so      [.] _nl_load_locale_from_archive
         0.00%   0.25%     0.00%   0.25%  uname    [unknown]         [k] 0xffffffffa3a00010
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] __libc_scratch_buffer_set_array_size
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] _dl_allocate_tls_storage
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] _dl_catch_exception
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] _dl_setup_hash
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] _dl_sort_maps
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] _dl_sysdep_read_whole_file
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] access
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] calloc
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] mmap64
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] openaux
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] rtld_lock_default_lock_recursive
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] rtld_lock_default_unlock_recursive
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] strchr
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] strlen
         0.00%   0.12%     0.00%   0.12%  uname    ld-2.28.so        [.] 0x0000000000001080
         0.00%   0.12%     0.00%   0.12%  uname    libc-2.28.so      [.] __strchrnul_avx2
         0.00%   0.12%     0.00%   0.12%  uname    libc-2.28.so      [.] _nl_normalize_codeset
         0.00%   0.12%     0.00%   0.12%  uname    libc-2.28.so      [.] malloc
         0.00%   0.12%     0.00%   0.12%  uname    [unknown]         [k] 0xffffffffa3a011f0
         0.00%  50.00%     0.00%   0.00%  uname    ld-2.28.so        [.] _dl_start_user
         0.00%  50.00%     0.00%   0.00%  uname    [unknown]         [.] 0000000000000000
    
     After:
    
     Samples: 800  of event 'branch-misses:u', Event count (approx.): 800
      Children      Self  Command  Shared Object     Symbol
        54.75%     4.75%  uname    ld-2.28.so        [.] dl_main
        51.50%     1.50%  uname    ld-2.28.so        [.] _dl_sysdep_start
        51.12%     1.12%  uname    ld-2.28.so        [.] _dl_start
        50.88%     0.88%  uname    ld-2.28.so        [.] _dl_relocate_object
        50.88%     1.12%  uname    ld-2.28.so        [.] do_lookup_x
        50.62%     1.00%  uname    ld-2.28.so        [.] _dl_lookup_symbol_x
        50.00%     0.00%  uname    ld-2.28.so        [.] _dl_start_user
        50.00%     0.00%  uname    [unknown]         [.] 0000000000000000
        47.50%    47.50%  uname    libc-2.28.so      [.] _dl_addr
        16.38%    16.38%  uname    ld-2.28.so        [.] __GI___tunables_init
         3.12%     3.12%  uname    ld-2.28.so        [.] _dl_map_object_from_fd
         2.38%     2.38%  uname    ld-2.28.so        [.] strcmp
         2.25%     2.25%  uname    ld-2.28.so        [.] _dl_check_map_versions
         2.00%     2.00%  uname    ld-2.28.so        [.] _dl_important_hwcaps
         2.00%     2.00%  uname    ld-2.28.so        [.] _dl_map_object_deps
         1.25%     1.25%  uname    ld-2.28.so        [.] _dl_load_cache_lookup
         1.00%     1.00%  uname    ld-2.28.so        [.] _dl_map_object
         1.00%     1.00%  uname    ld-2.28.so        [.] _dl_next_ld_env_entry
         0.88%     0.88%  uname    ld-2.28.so        [.] _dl_cache_libcmp
         0.88%     0.88%  uname    ld-2.28.so        [.] _dl_new_object
         0.62%     0.62%  uname    ld-2.28.so        [.] _dl_init_paths
         0.62%     0.62%  uname    ld-2.28.so        [.] _dl_name_match_p
         0.50%     0.50%  uname    ld-2.28.so        [.] get_common_indeces.constprop.1
         0.50%     0.50%  uname    ld-2.28.so        [.] memmove
         0.50%     0.50%  uname    ld-2.28.so        [.] memset
         0.50%     0.50%  uname    ld-2.28.so        [.] open_verify.constprop.11
         0.38%     0.38%  uname    ld-2.28.so        [.] _dl_check_all_versions
         0.38%     0.38%  uname    ld-2.28.so        [.] _dl_find_dso_for_object
         0.38%     0.38%  uname    ld-2.28.so        [.] init_tls
         0.25%     0.25%  uname    ld-2.28.so        [.] __tunable_get_val
         0.25%     0.25%  uname    ld-2.28.so        [.] _dl_add_to_namespace_list
         0.25%     0.25%  uname    ld-2.28.so        [.] _dl_determine_tlsoffset
         0.25%     0.25%  uname    ld-2.28.so        [.] _dl_discover_osversion
         0.25%     0.25%  uname    ld-2.28.so        [.] calloc@plt
         0.25%     0.25%  uname    ld-2.28.so        [.] malloc
         0.25%     0.25%  uname    ld-2.28.so        [.] malloc@plt
         0.25%     0.25%  uname    libc-2.28.so      [.] _nl_load_locale_from_archive
         0.25%     0.25%  uname    [unknown]         [k] 0xffffffffa3a00010
         0.12%     0.12%  uname    ld-2.28.so        [.] __libc_scratch_buffer_set_array_size
         0.12%     0.12%  uname    ld-2.28.so        [.] _dl_allocate_tls_storage
         0.12%     0.12%  uname    ld-2.28.so        [.] _dl_catch_exception
         0.12%     0.12%  uname    ld-2.28.so        [.] _dl_setup_hash
         0.12%     0.12%  uname    ld-2.28.so        [.] _dl_sort_maps
         0.12%     0.12%  uname    ld-2.28.so        [.] _dl_sysdep_read_whole_file
         0.12%     0.12%  uname    ld-2.28.so        [.] access
         0.12%     0.12%  uname    ld-2.28.so        [.] calloc
         0.12%     0.12%  uname    ld-2.28.so        [.] mmap64
         0.12%     0.12%  uname    ld-2.28.so        [.] openaux
         0.12%     0.12%  uname    ld-2.28.so        [.] rtld_lock_default_lock_recursive
         0.12%     0.12%  uname    ld-2.28.so        [.] rtld_lock_default_unlock_recursive
         0.12%     0.12%  uname    ld-2.28.so        [.] strchr
         0.12%     0.12%  uname    ld-2.28.so        [.] strlen
         0.12%     0.12%  uname    ld-2.28.so        [.] 0x0000000000001080
         0.12%     0.12%  uname    libc-2.28.so      [.] __strchrnul_avx2
         0.12%     0.12%  uname    libc-2.28.so      [.] _nl_normalize_codeset
         0.12%     0.12%  uname    libc-2.28.so      [.] malloc
         0.12%     0.12%  uname    [unknown]         [k] 0xffffffffa3a011f0
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lore.kernel.org/lkml/20200401101613.6201-8-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    5c7bec0c
auxtrace.c 57.8 KB