diff options
author | Jiri Olsa <jolsa@kernel.org> | 2015-10-25 10:51:43 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-12-17 13:15:14 -0500 |
commit | ffa517adf625fa6a6c168285534e1ff7344fa2f1 (patch) | |
tree | b5e744e3b47bda70e63f1f10533cbce99bd4cff2 /tools/perf | |
parent | 2d2aea6ae736503d3896c4997b494760ed8febc1 (diff) |
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>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/builtin-record.c | 2 | ||||
-rw-r--r-- | tools/perf/util/header.c | 14 | ||||
-rw-r--r-- | tools/perf/util/header.h | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 1435ef6265b6..9c5cdc2c4471 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) | |||
452 | 452 | ||
453 | if (!rec->opts.full_auxtrace) | 453 | if (!rec->opts.full_auxtrace) |
454 | perf_header__clear_feat(&session->header, HEADER_AUXTRACE); | 454 | perf_header__clear_feat(&session->header, HEADER_AUXTRACE); |
455 | |||
456 | perf_header__clear_feat(&session->header, HEADER_STAT); | ||
455 | } | 457 | } |
456 | 458 | ||
457 | static volatile int workload_exec_errno; | 459 | static volatile int workload_exec_errno; |
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 49676c14c8ae..f50b7235ecb6 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, | |||
868 | return err; | 868 | return err; |
869 | } | 869 | } |
870 | 870 | ||
871 | static int write_stat(int fd __maybe_unused, | ||
872 | struct perf_header *h __maybe_unused, | ||
873 | struct perf_evlist *evlist __maybe_unused) | ||
874 | { | ||
875 | return 0; | ||
876 | } | ||
877 | |||
871 | static void print_hostname(struct perf_header *ph, int fd __maybe_unused, | 878 | static void print_hostname(struct perf_header *ph, int fd __maybe_unused, |
872 | FILE *fp) | 879 | FILE *fp) |
873 | { | 880 | { |
@@ -1159,6 +1166,12 @@ static void print_auxtrace(struct perf_header *ph __maybe_unused, | |||
1159 | fprintf(fp, "# contains AUX area data (e.g. instruction trace)\n"); | 1166 | fprintf(fp, "# contains AUX area data (e.g. instruction trace)\n"); |
1160 | } | 1167 | } |
1161 | 1168 | ||
1169 | static void print_stat(struct perf_header *ph __maybe_unused, | ||
1170 | int fd __maybe_unused, FILE *fp) | ||
1171 | { | ||
1172 | fprintf(fp, "# contains stat data\n"); | ||
1173 | } | ||
1174 | |||
1162 | static void print_pmu_mappings(struct perf_header *ph, int fd __maybe_unused, | 1175 | static void print_pmu_mappings(struct perf_header *ph, int fd __maybe_unused, |
1163 | FILE *fp) | 1176 | FILE *fp) |
1164 | { | 1177 | { |
@@ -1948,6 +1961,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = { | |||
1948 | FEAT_OPP(HEADER_PMU_MAPPINGS, pmu_mappings), | 1961 | FEAT_OPP(HEADER_PMU_MAPPINGS, pmu_mappings), |
1949 | FEAT_OPP(HEADER_GROUP_DESC, group_desc), | 1962 | FEAT_OPP(HEADER_GROUP_DESC, group_desc), |
1950 | FEAT_OPP(HEADER_AUXTRACE, auxtrace), | 1963 | FEAT_OPP(HEADER_AUXTRACE, auxtrace), |
1964 | FEAT_OPA(HEADER_STAT, stat), | ||
1951 | }; | 1965 | }; |
1952 | 1966 | ||
1953 | struct header_print_data { | 1967 | struct header_print_data { |
diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h index 710deecf8f80..cff9892452ee 100644 --- a/tools/perf/util/header.h +++ b/tools/perf/util/header.h | |||
@@ -31,6 +31,7 @@ enum { | |||
31 | HEADER_PMU_MAPPINGS, | 31 | HEADER_PMU_MAPPINGS, |
32 | HEADER_GROUP_DESC, | 32 | HEADER_GROUP_DESC, |
33 | HEADER_AUXTRACE, | 33 | HEADER_AUXTRACE, |
34 | HEADER_STAT, | ||
34 | HEADER_LAST_FEATURE, | 35 | HEADER_LAST_FEATURE, |
35 | HEADER_FEAT_BITS = 256, | 36 | HEADER_FEAT_BITS = 256, |
36 | }; | 37 | }; |