lkml.org 
[lkml]   [2016]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf script: Add data_src and weight column definitions
    Commit-ID:  94ddddfab521423d94d6066879b514b9431e5cae
    Gitweb: http://git.kernel.org/tip/94ddddfab521423d94d6066879b514b9431e5cae
    Author: Jiri Olsa <jolsa@kernel.org>
    AuthorDate: Mon, 15 Feb 2016 09:34:51 +0100
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Tue, 23 Feb 2016 12:20:02 -0300

    perf script: Add data_src and weight column definitions

    Adding data_src and weight column definitions, so it's displayed for
    related sample types.

    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/1455525293-8671-22-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-script.c | 20 ++++++++++++++++++++
    1 file changed, 20 insertions(+)

    diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
    index c691214..b7f1e8e 100644
    --- a/tools/perf/builtin-script.c
    +++ b/tools/perf/builtin-script.c
    @@ -58,6 +58,8 @@ enum perf_output_field {
    PERF_OUTPUT_IREGS = 1U << 14,
    PERF_OUTPUT_BRSTACK = 1U << 15,
    PERF_OUTPUT_BRSTACKSYM = 1U << 16,
    + PERF_OUTPUT_DATA_SRC = 1U << 17,
    + PERF_OUTPUT_WEIGHT = 1U << 18,
    };

    struct output_option {
    @@ -81,6 +83,8 @@ struct output_option {
    {.str = "iregs", .field = PERF_OUTPUT_IREGS},
    {.str = "brstack", .field = PERF_OUTPUT_BRSTACK},
    {.str = "brstacksym", .field = PERF_OUTPUT_BRSTACKSYM},
    + {.str = "data_src", .field = PERF_OUTPUT_DATA_SRC},
    + {.str = "weight", .field = PERF_OUTPUT_WEIGHT},
    };

    /* default set to maintain compatibility with current format */
    @@ -242,6 +246,16 @@ static int perf_evsel__check_attr(struct perf_evsel *evsel,
    PERF_OUTPUT_ADDR, allow_user_set))
    return -EINVAL;

    + if (PRINT_FIELD(DATA_SRC) &&
    + perf_evsel__check_stype(evsel, PERF_SAMPLE_DATA_SRC, "DATA_SRC",
    + PERF_OUTPUT_DATA_SRC))
    + return -EINVAL;
    +
    + if (PRINT_FIELD(WEIGHT) &&
    + perf_evsel__check_stype(evsel, PERF_SAMPLE_WEIGHT, "WEIGHT",
    + PERF_OUTPUT_WEIGHT))
    + return -EINVAL;
    +
    if (PRINT_FIELD(SYM) && !PRINT_FIELD(IP) && !PRINT_FIELD(ADDR)) {
    pr_err("Display of symbols requested but neither sample IP nor "
    "sample address\nis selected. Hence, no addresses to convert "
    @@ -673,6 +687,12 @@ static void process_event(struct perf_script *script, union perf_event *event,
    if (PRINT_FIELD(ADDR))
    print_sample_addr(event, sample, thread, attr);

    + if (PRINT_FIELD(DATA_SRC))
    + printf("%16" PRIx64, sample->data_src);
    +
    + if (PRINT_FIELD(WEIGHT))
    + printf("%16" PRIu64, sample->weight);
    +
    if (PRINT_FIELD(IP)) {
    if (!symbol_conf.use_callchain)
    printf(" ");
    \
     
     \ /
      Last update: 2016-02-25 08:21    [W:7.931 / U:0.816 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site