diff options
Diffstat (limited to 'tools/perf/builtin-inject.c')
-rw-r--r-- | tools/perf/builtin-inject.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index c5f6515f0723..6d4bbde066fd 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c | |||
@@ -122,6 +122,18 @@ static s64 perf_event__repipe_auxtrace(struct perf_tool *tool, | |||
122 | tool); | 122 | tool); |
123 | int ret; | 123 | int ret; |
124 | 124 | ||
125 | if (!inject->output.is_pipe) { | ||
126 | off_t offset; | ||
127 | |||
128 | offset = lseek(inject->output.fd, 0, SEEK_CUR); | ||
129 | if (offset == -1) | ||
130 | return -errno; | ||
131 | ret = auxtrace_index__auxtrace_event(&session->auxtrace_index, | ||
132 | event, offset); | ||
133 | if (ret < 0) | ||
134 | return ret; | ||
135 | } | ||
136 | |||
125 | if (perf_data_file__is_pipe(session->file) || !session->one_mmap) { | 137 | if (perf_data_file__is_pipe(session->file) || !session->one_mmap) { |
126 | ret = output_bytes(inject, event, event->header.size); | 138 | ret = output_bytes(inject, event, event->header.size); |
127 | if (ret < 0) | 139 | if (ret < 0) |
@@ -487,6 +499,9 @@ static int __cmd_inject(struct perf_inject *inject) | |||
487 | output_data_offset = 4096; | 499 | output_data_offset = 4096; |
488 | } | 500 | } |
489 | 501 | ||
502 | if (!inject->itrace_synth_opts.set) | ||
503 | auxtrace_index__free(&session->auxtrace_index); | ||
504 | |||
490 | if (!file_out->is_pipe) | 505 | if (!file_out->is_pipe) |
491 | lseek(fd, output_data_offset, SEEK_SET); | 506 | lseek(fd, output_data_offset, SEEK_SET); |
492 | 507 | ||