diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2016-03-07 14:44:41 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-03-08 04:11:17 -0500 |
commit | 4a018cc47932ef1e68a0600ce3ac100df70fab2a (patch) | |
tree | 008fc6a2459816a7ceca4e8b7b4732be3751a22a /tools/perf/util/jitdump.c | |
parent | 570735b33d122bcb259ef67c6aa63e5609af5752 (diff) |
perf jit: Move clockid validation
Move clockid validation into jit_process() so it can later be made
conditional.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1457005856-6143-6-git-send-email-adrian.hunter@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/util/jitdump.c')
-rw-r--r-- | tools/perf/util/jitdump.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c index bd9e44f9fff2..cd272cc21e05 100644 --- a/tools/perf/util/jitdump.c +++ b/tools/perf/util/jitdump.c | |||
@@ -99,6 +99,21 @@ jit_close(struct jit_buf_desc *jd) | |||
99 | } | 99 | } |
100 | 100 | ||
101 | static int | 101 | static int |
102 | jit_validate_events(struct perf_session *session) | ||
103 | { | ||
104 | struct perf_evsel *evsel; | ||
105 | |||
106 | /* | ||
107 | * check that all events use CLOCK_MONOTONIC | ||
108 | */ | ||
109 | evlist__for_each(session->evlist, evsel) { | ||
110 | if (evsel->attr.use_clockid == 0 || evsel->attr.clockid != CLOCK_MONOTONIC) | ||
111 | return -1; | ||
112 | } | ||
113 | return 0; | ||
114 | } | ||
115 | |||
116 | static int | ||
102 | jit_open(struct jit_buf_desc *jd, const char *name) | 117 | jit_open(struct jit_buf_desc *jd, const char *name) |
103 | { | 118 | { |
104 | struct jitheader header; | 119 | struct jitheader header; |
@@ -157,6 +172,14 @@ jit_open(struct jit_buf_desc *jd, const char *name) | |||
157 | goto error; | 172 | goto error; |
158 | } | 173 | } |
159 | 174 | ||
175 | /* | ||
176 | * validate event is using the correct clockid | ||
177 | */ | ||
178 | if (jit_validate_events(jd->session)) { | ||
179 | pr_err("error, jitted code must be sampled with perf record -k 1\n"); | ||
180 | goto error; | ||
181 | } | ||
182 | |||
160 | bs = header.total_size - sizeof(header); | 183 | bs = header.total_size - sizeof(header); |
161 | 184 | ||
162 | if (bs > bsz) { | 185 | if (bs > bsz) { |