lkml.org 
[lkml]   [2016]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v21 12/19] perf, tools: Support long descriptions with perf list
    Date
    Previously we were dropping the useful longer descriptions that some
    events have in the event list completely. This patch makes them appear with
    perf list.

    Old perf list:

    baclears:
    baclears.all
    [Counts the number of baclears]

    vs new:

    perf list -v:
    ...
    baclears:
    baclears.all
    [The BACLEARS event counts the number of times the front end is
    resteered, mainly when the Branch Prediction Unit cannot provide
    a correct prediction and this is corrected by the Branch Address
    Calculator at the front end. The BACLEARS.ANY event counts the
    number of baclears for any type of branch]

    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    ---

    Changelog[v15]
    - [Jir Olsa, Andi Kleen] Fix usage strings; update man page.

    Changelog[v14]
    - [Jiri Olsa] Break up independent parts of the patch into
    separate patches.

    Changelog[v18]:
    - Fix minor conflict in tools/perf/builtin-list.c; add long_desc_flag
    parameter to new print_pmu_events() call site.

    Changelog[v21]
    - Fix minor conflicts in tools/perf/builtin-list.c
    ---
    tools/perf/Documentation/perf-list.txt | 6 +++++-
    tools/perf/builtin-list.c | 16 +++++++++++-----
    2 files changed, 16 insertions(+), 6 deletions(-)

    diff --git a/tools/perf/Documentation/perf-list.txt b/tools/perf/Documentation/perf-list.txt
    index 72209bc..41857cc 100644
    --- a/tools/perf/Documentation/perf-list.txt
    +++ b/tools/perf/Documentation/perf-list.txt
    @@ -8,7 +8,7 @@ perf-list - List all symbolic event types
    SYNOPSIS
    --------
    [verse]
    -'perf list' [--no-desc] [hw|sw|cache|tracepoint|pmu|event_glob]
    +'perf list' [--no-desc] [--long-desc] [hw|sw|cache|tracepoint|pmu|event_glob]

    DESCRIPTION
    -----------
    @@ -20,6 +20,10 @@ OPTIONS
    --no-desc::
    Don't print descriptions.

    +-v::
    +--long-desc::
    +Print longer event descriptions.
    +

    [[EVENT_MODIFIERS]]
    EVENT MODIFIERS
    diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
    index b14cb16..ba9322f 100644
    --- a/tools/perf/builtin-list.c
    +++ b/tools/perf/builtin-list.c
    @@ -22,14 +22,17 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
    {
    int i;
    bool raw_dump = false;
    + bool long_desc_flag = false;
    struct option list_options[] = {
    OPT_BOOLEAN(0, "raw-dump", &raw_dump, "Dump raw events"),
    OPT_BOOLEAN('d', "desc", &desc_flag,
    "Print extra event descriptions. --no-desc to not print."),
    + OPT_BOOLEAN('v', "long-desc", &long_desc_flag,
    + "Print longer event descriptions."),
    OPT_END()
    };
    const char * const list_usage[] = {
    - "perf list [--no-desc] [hw|sw|cache|tracepoint|pmu|sdt|event_glob]",
    + "perf list [<options>] [hw|sw|cache|tracepoint|pmu|sdt|event_glob]",
    NULL
    };

    @@ -44,7 +47,7 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
    printf("\nList of pre-defined events (to be used in -e):\n\n");

    if (argc == 0) {
    - print_events(NULL, raw_dump, !desc_flag);
    + print_events(NULL, raw_dump, !desc_flag, long_desc_flag);
    return 0;
    }

    @@ -65,14 +68,16 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
    strcmp(argv[i], "hwcache") == 0)
    print_hwcache_events(NULL, raw_dump);
    else if (strcmp(argv[i], "pmu") == 0)
    - print_pmu_events(NULL, raw_dump, !desc_flag);
    + print_pmu_events(NULL, raw_dump, !desc_flag,
    + long_desc_flag);
    else if (strcmp(argv[i], "sdt") == 0)
    print_sdt_events(NULL, NULL, raw_dump);
    else if ((sep = strchr(argv[i], ':')) != NULL) {
    int sep_idx;

    if (sep == NULL) {
    - print_events(argv[i], raw_dump, !desc_flag);
    + print_events(argv[i], raw_dump, !desc_flag,
    + long_desc_flag);
    continue;
    }
    sep_idx = sep - argv[i];
    @@ -94,7 +99,8 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
    print_symbol_events(s, PERF_TYPE_SOFTWARE,
    event_symbols_sw, PERF_COUNT_SW_MAX, raw_dump);
    print_hwcache_events(s, raw_dump);
    - print_pmu_events(s, raw_dump, !desc_flag);
    + print_pmu_events(s, raw_dump, !desc_flag,
    + long_desc_flag);
    print_tracepoint_events(NULL, s, raw_dump);
    print_sdt_events(NULL, s, raw_dump);
    free(s);
    --
    1.8.3.1
    \
     
     \ /
      Last update: 2016-09-17 09:59    [W:4.293 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site