lkml.org 
[lkml]   [2015]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf tools: Introduce stat perf.data header feature
    Commit-ID:  ffa517adf625fa6a6c168285534e1ff7344fa2f1
    Gitweb: http://git.kernel.org/tip/ffa517adf625fa6a6c168285534e1ff7344fa2f1
    Author: Jiri Olsa <jolsa@kernel.org>
    AuthorDate: Sun, 25 Oct 2015 15:51:43 +0100
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Thu, 17 Dec 2015 15:15:14 -0300

    perf tools: Introduce stat perf.data header feature

    Introducing the 'stat' feature to mark a perf.data as created by the
    'perf stat record' command. It contains no data.

    It's needed so that the report tools (report/script) can differentiate
    sampling data from counting data, because they need to be treated in a
    different way.

    In the future it might be used to store the version of the stat storage
    system used.

    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Kan Liang <kan.liang@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1445784728-21732-28-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-record.c | 2 ++
    tools/perf/util/header.c | 14 ++++++++++++++
    tools/perf/util/header.h | 1 +
    3 files changed, 17 insertions(+)

    diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
    index 1435ef6..9c5cdc2c4 100644
    --- a/tools/perf/builtin-record.c
    +++ b/tools/perf/builtin-record.c
    @@ -452,6 +452,8 @@ static void record__init_features(struct record *rec)

    if (!rec->opts.full_auxtrace)
    perf_header__clear_feat(&session->header, HEADER_AUXTRACE);
    +
    + perf_header__clear_feat(&session->header, HEADER_STAT);
    }

    static volatile int workload_exec_errno;
    diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
    index 49676c1..f50b723 100644
    --- a/tools/perf/util/header.c
    +++ b/tools/perf/util/header.c
    @@ -868,6 +868,13 @@ static int write_auxtrace(int fd, struct perf_header *h,
    return err;
    }

    +static int write_stat(int fd __maybe_unused,
    + struct perf_header *h __maybe_unused,
    + struct perf_evlist *evlist __maybe_unused)
    +{
    + return 0;
    +}
    +
    static void print_hostname(struct perf_header *ph, int fd __maybe_unused,
    FILE *fp)
    {
    @@ -1159,6 +1166,12 @@ static void print_auxtrace(struct perf_header *ph __maybe_unused,
    fprintf(fp, "# contains AUX area data (e.g. instruction trace)\n");
    }

    +static void print_stat(struct perf_header *ph __maybe_unused,
    + int fd __maybe_unused, FILE *fp)
    +{
    + fprintf(fp, "# contains stat data\n");
    +}
    +
    static void print_pmu_mappings(struct perf_header *ph, int fd __maybe_unused,
    FILE *fp)
    {
    @@ -1948,6 +1961,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
    FEAT_OPP(HEADER_PMU_MAPPINGS, pmu_mappings),
    FEAT_OPP(HEADER_GROUP_DESC, group_desc),
    FEAT_OPP(HEADER_AUXTRACE, auxtrace),
    + FEAT_OPA(HEADER_STAT, stat),
    };

    struct header_print_data {
    diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h
    index 710deec..cff9892 100644
    --- a/tools/perf/util/header.h
    +++ b/tools/perf/util/header.h
    @@ -31,6 +31,7 @@ enum {
    HEADER_PMU_MAPPINGS,
    HEADER_GROUP_DESC,
    HEADER_AUXTRACE,
    + HEADER_STAT,
    HEADER_LAST_FEATURE,
    HEADER_FEAT_BITS = 256,
    };

    \
     
     \ /
      Last update: 2015-12-18 11:01    [W:6.803 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site