summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2016-03-07 22:44:40 +0300
committerIngo Molnar <mingo@kernel.org>2016-03-08 12:11:17 +0300
commit570735b33d122bcb259ef67c6aa63e5609af5752 (patch)
tree9529efb06656897e81b639a8cc723e4ebe1568c2
parent5fb0ac16c5091f48eecf1a77e461f6957a463d61 (diff)
downloadlinux-570735b33d122bcb259ef67c6aa63e5609af5752.tar.xz
perf jit: Let jit_process() return errors
In preparation for moving clockid validation into jit_process(). Previously a return value of zero meant the processing had been done and non-zero meant either the processing was not done (i.e. not the jitdump file mmap event) or an error occurred. Change it so that zero means the processing was not done, one means the processing was done and successful, and negative values are an error. 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-5-git-send-email-adrian.hunter@intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--tools/perf/builtin-inject.c16
-rw-r--r--tools/perf/util/jitdump.c6
2 files changed, 16 insertions, 6 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index c6a4f2f94ab1..2512d71ca386 100644
--- a/tools/perf/builtin-inject.c
+++ b/tools/perf/builtin-inject.c
@@ -253,12 +253,16 @@ static int perf_event__jit_repipe_mmap(struct perf_tool *tool,
{
struct perf_inject *inject = container_of(tool, struct perf_inject, tool);
u64 n = 0;
+ int ret;
/*
* if jit marker, then inject jit mmaps and generate ELF images
*/
- if (!jit_process(inject->session, &inject->output, machine,
- event->mmap.filename, sample->pid, &n)) {
+ ret = jit_process(inject->session, &inject->output, machine,
+ event->mmap.filename, sample->pid, &n);
+ if (ret < 0)
+ return ret;
+ if (ret) {
inject->bytes_written += n;
return 0;
}
@@ -287,12 +291,16 @@ static int perf_event__jit_repipe_mmap2(struct perf_tool *tool,
{
struct perf_inject *inject = container_of(tool, struct perf_inject, tool);
u64 n = 0;
+ int ret;
/*
* if jit marker, then inject jit mmaps and generate ELF images
*/
- if (!jit_process(inject->session, &inject->output, machine,
- event->mmap2.filename, sample->pid, &n)) {
+ ret = jit_process(inject->session, &inject->output, machine,
+ event->mmap2.filename, sample->pid, &n);
+ if (ret < 0)
+ return ret;
+ if (ret) {
inject->bytes_written += n;
return 0;
}
diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c
index 99fa5eee9fe0..bd9e44f9fff2 100644
--- a/tools/perf/util/jitdump.c
+++ b/tools/perf/util/jitdump.c
@@ -647,7 +647,7 @@ jit_process(struct perf_session *session,
* first, detect marker mmap (i.e., the jitdump mmap)
*/
if (jit_detect(filename, pid))
- return -1;
+ return 0;
memset(&jd, 0, sizeof(jd));
@@ -665,8 +665,10 @@ jit_process(struct perf_session *session,
*nbytes = 0;
ret = jit_inject(&jd, filename);
- if (!ret)
+ if (!ret) {
*nbytes = jd.bytes_written;
+ ret = 1;
+ }
return ret;
}