[PATCH 4/8] perf jit: Let jit_process() return errors

From: Adrian Hunter
Date: Thu Mar 03 2016 - 06:54:49 EST


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@xxxxxxxxx>
---
tools/perf/builtin-inject.c | 16 ++++++++++++----
tools/perf/util/jitdump.c | 6 ++++--
2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index 29dfe68b2fb1..1635533921e8 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;
}
--
1.9.1