diff options
| author | Namhyung Kim <[email protected]> | 2023-01-30 18:33:49 -0800 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <[email protected]> | 2023-02-01 21:31:04 -0300 |
| commit | 14bf4784412c9f89a626798026262daa8fc81034 (patch) | |
| tree | f436ea70e9707f2855ab3a40b5c181db4c065c06 | |
| parent | aeb802f872a7c42e4381f36041e77d1745908255 (diff) | |
perf session: Avoid calling lseek(2) for pipe
We should not call lseek(2) for pipes as it won't work. And we already
in the proper place to read the data for AUXTRACE. Add the comment like
in the PERF_RECORD_HEADER_TRACING_DATA.
Reviewed-by: Adrian Hunter <[email protected]>
Reviewed-by: James Clark <[email protected]>
Signed-off-by: Namhyung Kim <[email protected]>
Cc: Ian Rogers <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Leo Yan <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
| -rw-r--r-- | tools/perf/util/session.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 7c021c6cedb9..fdfe772f2699 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -1699,8 +1699,13 @@ static s64 perf_session__process_user_event(struct perf_session *session, case PERF_RECORD_AUXTRACE_INFO: return tool->auxtrace_info(session, event); case PERF_RECORD_AUXTRACE: - /* setup for reading amidst mmap */ - lseek(fd, file_offset + event->header.size, SEEK_SET); + /* + * Setup for reading amidst mmap, but only when we + * are in 'file' mode. The 'pipe' fd is in proper + * place already. + */ + if (!perf_data__is_pipe(session->data)) + lseek(fd, file_offset + event->header.size, SEEK_SET); return tool->auxtrace(session, event); case PERF_RECORD_AUXTRACE_ERROR: perf_session__auxtrace_error_inc(session, event); |