• Namhyung Kim's avatar
    perf hists browser: Support flat callchains · 4b3a3212
    Namhyung Kim authored
    The flat callchain mode is to print all chains in a single, simple
    hierarchy so make it easy to see.
    
    Currently perf report --tui doesn't show flat callchains properly.  With
    flat callchains, only leaf nodes are added to the final rbtree so it
    should show entries in parent nodes.  To do that, add parent_val list to
    struct callchain_node and show them along with the (normal) val list.
    
    For example, consider following callchains with '-g graph'.
    
      $ perf report -g graph
      - 39.93%  swapper  [kernel.vmlinux]  [k] intel_idle
           intel_idle
           cpuidle_enter_state
           cpuidle_enter
           call_cpuidle
         - cpu_startup_entry
              28.63% start_secondary
            - 11.30% rest_init
                 start_kernel
                 x86_64_start_reservations
                 x86_64_start_kernel
    
    Before:
      $ perf report -g flat
      - 39.93%  swapper  [kernel.vmlinux]  [k] intel_idle
           28.63% start_secondary
         - 11.30% rest_init
              start_kernel
              x86_64_start_reservations
              x86_64_start_kernel
    
    After:
      $ perf report -g flat
      - 39.93%  swapper  [kernel.vmlinux]  [k] intel_idle
         - 28.63% intel_idle
              cpuidle_enter_state
              cpuidle_enter
              call_cpuidle
              cpu_startup_entry
              start_secondary
         - 11.30% intel_idle
              cpuidle_enter_state
              cpuidle_enter
              call_cpuidle
              cpu_startup_entry
              start_kernel
              x86_64_start_reservations
              x86_64_start_kernel
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: default avatarBrendan Gregg <brendan.d.gregg@gmail.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1447047946-1691-8-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    4b3a3212
callchain.c 21.9 KB