lkml.org 
[lkml]   [2016]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf report: Show message for percent limit on stdio
    Commit-ID:  bd4abd39db92225dde8335c37d6f4efb319f9cf2
    Gitweb: http://git.kernel.org/tip/bd4abd39db92225dde8335c37d6f4efb319f9cf2
    Author: Namhyung Kim <namhyung@kernel.org>
    AuthorDate: Fri, 26 Feb 2016 21:13:17 +0900
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Fri, 26 Feb 2016 11:20:36 -0300

    perf report: Show message for percent limit on stdio

    When the hierarchy mode is used, some entries might be omiited due to a
    percent limit or filter. In this case the output hierarchy is different
    than other entries. Add an informative message to users about this.

    For example, when 4% of percent limit is applied:

    Before:
    # Overhead Command / Shared Object / Symbol
    # .............. ..........................................
    #
    49.09% swapper
    48.67% [kernel.vmlinux]
    34.42% [k] intel_idle
    11.51% firefox
    8.87% libpthread-2.22.so
    6.60% [.] __GI___libc_recvmsg
    10.49% gnome-shell
    4.74% libc-2.22.so
    10.08% Xorg
    6.11% libc-2.22.so
    5.27% [.] __memcpy_sse2_unaligned
    6.15% perf

    Note that, gnome-shell/libc has no symbols and perf has no dso/symbols.
    With that patch the output will look like below:

    After:

    # Overhead Command / Shared Object / Symbol
    # .............. ..........................................
    #
    49.09% swapper
    48.67% [kernel.vmlinux]
    34.42% [k] intel_idle
    11.51% firefox
    8.87% libpthread-2.22.so
    6.60% [.] __GI___libc_recvmsg
    10.49% gnome-shell
    4.74% libc-2.22.so
    no entry >= 4.00%
    10.08% Xorg
    6.11% libc-2.22.so
    5.27% [.] __memcpy_sse2_unaligned
    6.15% perf
    no entry >= 4.00%

    Suggested-and-Tested-by: Arnaldo Carvalho de Melo <acme@kernel.org>
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/1456488800-28124-2-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/ui/stdio/hist.c | 17 +++++++++++++++++
    1 file changed, 17 insertions(+)

    diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c
    index 435eaaa..b3bdfcb 100644
    --- a/tools/perf/ui/stdio/hist.c
    +++ b/tools/perf/ui/stdio/hist.c
    @@ -628,6 +628,7 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows,
    bool first = true;
    size_t linesz;
    char *line = NULL;
    + unsigned indent;

    init_rem_hits();

    @@ -704,6 +705,8 @@ print_entries:
    goto out;
    }

    + indent = hists__overhead_width(hists) + 4;
    +
    for (nd = rb_first(&hists->entries); nd; nd = __rb_hierarchy_next(nd, HMD_FORCE_CHILD)) {
    struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
    float percent;
    @@ -720,6 +723,20 @@ print_entries:
    if (max_rows && ++nr_rows >= max_rows)
    break;

    + /*
    + * If all children are filtered out or percent-limited,
    + * display "no entry >= x.xx%" message.
    + */
    + if (!h->leaf && !hist_entry__has_hierarchy_children(h, min_pcnt)) {
    + int nr_sort = hists->hpp_list->nr_sort_keys;
    +
    + print_hierarchy_indent(sep, nr_sort + h->depth + 1, spaces, fp);
    + fprintf(fp, "%*sno entry >= %.2f%%\n", indent, "", min_pcnt);
    +
    + if (max_rows && ++nr_rows >= max_rows)
    + break;
    + }
    +
    if (h->ms.map == NULL && verbose > 1) {
    __map_groups__fprintf_maps(h->thread->mg,
    MAP__FUNCTION, fp);
    \
     
     \ /
      Last update: 2016-02-27 11:21    [W:7.822 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site