lkml.org 
[lkml]   [2016]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 12/14] perf report: Add --hierarchy option
    Date
    The --hierarchy option is to show output in hierarchy mode.  It extends
    folding/unfolding in the TUI and GTK browsers to support sort items as
    well as callchains. Users can toggle the items to see the performance
    result at wanted level.

    $ perf report --hierarchy --tui
    Overhead Command / Shared Object / Symbol
    + 32.96% gnome-shell
    - 15.11% swapper
    - 14.97% [kernel.vmlinux]
    6.82% [k] intel_idle
    0.66% [k] menu_select
    0.43% [k] __hrtimer_start_range_ns
    ...

    Acked-by: Pekka Enberg <penberg@kernel.org>
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    ---
    tools/perf/Documentation/perf-report.txt | 3 +++
    tools/perf/Documentation/tips.txt | 1 +
    tools/perf/builtin-report.c | 17 +++++++++++++++++
    3 files changed, 21 insertions(+)

    diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
    index 8a301f6afb37..d2b4d6e15622 100644
    --- a/tools/perf/Documentation/perf-report.txt
    +++ b/tools/perf/Documentation/perf-report.txt
    @@ -398,6 +398,9 @@ include::itrace.txt[]
    --raw-trace::
    When displaying traceevent output, do not use print fmt or plugins.

    +--hierarchy::
    + Enable hierarchical output.
    +
    include::callchain-overhead-calculation.txt[]

    SEE ALSO
    diff --git a/tools/perf/Documentation/tips.txt b/tools/perf/Documentation/tips.txt
    index e0ce9573b79b..5950b5a24efd 100644
    --- a/tools/perf/Documentation/tips.txt
    +++ b/tools/perf/Documentation/tips.txt
    @@ -27,3 +27,4 @@ Skip collecing build-id when recording: perf record -B
    To change sampling frequency to 100 Hz: perf record -F 100
    See assembly instructions with percentage: perf annotate <symbol>
    If you prefer Intel style assembly, try: perf annotate -M intel
    +For hierarchical output, try: perf report --hierarchy
    diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
    index 7fabcf28a392..7f973cd73b6e 100644
    --- a/tools/perf/builtin-report.c
    +++ b/tools/perf/builtin-report.c
    @@ -811,6 +811,8 @@ int cmd_report(int argc, const char **argv, const char *prefix __maybe_unused)
    "only show processor socket that match with this filter"),
    OPT_BOOLEAN(0, "raw-trace", &symbol_conf.raw_trace,
    "Show raw trace event output (do not use print fmt or plugins)"),
    + OPT_BOOLEAN(0, "hierarchy", &symbol_conf.report_hierarchy,
    + "Show entries in a hierarchy"),
    OPT_END()
    };
    struct perf_data_file file = {
    @@ -920,6 +922,21 @@ repeat:
    symbol_conf.cumulate_callchain = false;
    }

    + if (symbol_conf.report_hierarchy) {
    + /* disable incompatible options */
    + symbol_conf.event_group = false;
    + symbol_conf.cumulate_callchain = false;
    +
    + if (field_order) {
    + pr_err("Error: --hierarchy and --fields options cannot be used together\n");
    + parse_options_usage(report_usage, options, "F", 1);
    + parse_options_usage(NULL, options, "hierarchy", 0);
    + goto error;
    + }
    +
    + sort__need_collapse = true;
    + }
    +
    if (setup_sorting(session->evlist) < 0) {
    if (sort_order)
    parse_options_usage(report_usage, options, "s", 1);
    --
    2.6.4
    \
     
     \ /
      Last update: 2016-01-25 18:01    [W:3.767 / U:0.420 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site