aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@kernel.org>2015-10-25 10:51:43 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2015-12-17 13:15:14 -0500
commitffa517adf625fa6a6c168285534e1ff7344fa2f1 (patch)
treeb5e744e3b47bda70e63f1f10533cbce99bd4cff2 /tools/perf
parent2d2aea6ae736503d3896c4997b494760ed8febc1 (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.c2
-rw-r--r--tools/perf/util/header.c14
-rw-r--r--tools/perf/util/header.h1
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
457static volatile int workload_exec_errno; 459static 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
871static 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
871static void print_hostname(struct perf_header *ph, int fd __maybe_unused, 878static 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
1169static 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
1162static void print_pmu_mappings(struct perf_header *ph, int fd __maybe_unused, 1175static 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
1953struct header_print_data { 1967struct 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};