Re: [PATCHSET v3 0/5] perf inject: Fix broken data with mixed input/output
From: Jiri Olsa
Date: Tue Jul 20 2021 - 05:07:18 EST
On Mon, Jul 19, 2021 at 03:31:48PM -0700, Namhyung Kim wrote:
> Hello,
>
> The perf inject processes the input data and produces an output with
> injected data according to the given options. During the work, it
> assumes the input and output files have the same format - either a
> regular file or a pipe. This works for the obvious cases, but
> sometimes makes a trouble when input and output have different
> formats (like for debugging).
>
> * changes in v3
> - use task-clock:u in the pipe-test.sh
Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>
thanks,
jirka
>
> * changes in v2
> - factor out perf_event__synthesize_for_pipe
> - add a shell test for pipe operations
>
>
> For example, this patchset fixed the following cases
>
> 1. input: pipe, output: file
>
> # perf record -a -o - sleep 1 | perf inject -b -o perf-pipe.data
> # perf report -i perf-pipe.data
>
> 2. input: file, output: pipe
>
> # perf record -a -B sleep 1
> # perf inject -b -i perf.data | perf report -i -
>
>
> Thanks,
> Namhyung
>
>
> Namhyung Kim (5):
> perf tools: Remove repipe argument from perf_session__new()
> perf tools: Pass a fd to perf_file_header__read_pipe()
> perf inject: Fix output from a pipe to a file
> perf inject: Fix output from a file to a pipe
> perf tools: Add pipe_test.sh to verify pipe operations
>
> tools/perf/bench/synthesize.c | 4 +-
> tools/perf/builtin-annotate.c | 2 +-
> tools/perf/builtin-buildid-cache.c | 2 +-
> tools/perf/builtin-buildid-list.c | 2 +-
> tools/perf/builtin-c2c.c | 2 +-
> tools/perf/builtin-diff.c | 4 +-
> tools/perf/builtin-evlist.c | 2 +-
> tools/perf/builtin-inject.c | 38 ++++++++++++++--
> tools/perf/builtin-kmem.c | 2 +-
> tools/perf/builtin-kvm.c | 4 +-
> tools/perf/builtin-lock.c | 2 +-
> tools/perf/builtin-mem.c | 3 +-
> tools/perf/builtin-record.c | 40 +++--------------
> tools/perf/builtin-report.c | 2 +-
> tools/perf/builtin-sched.c | 4 +-
> tools/perf/builtin-script.c | 4 +-
> tools/perf/builtin-stat.c | 4 +-
> tools/perf/builtin-timechart.c | 3 +-
> tools/perf/builtin-top.c | 2 +-
> tools/perf/builtin-trace.c | 2 +-
> tools/perf/tests/shell/pipe_test.sh | 69 +++++++++++++++++++++++++++++
> tools/perf/tests/topology.c | 4 +-
> tools/perf/util/data-convert-bt.c | 2 +-
> tools/perf/util/data-convert-json.c | 2 +-
> tools/perf/util/header.c | 12 ++---
> tools/perf/util/header.h | 2 +-
> tools/perf/util/session.c | 11 ++---
> tools/perf/util/session.h | 12 ++++-
> tools/perf/util/synthetic-events.c | 53 +++++++++++++++++++++-
> tools/perf/util/synthetic-events.h | 6 +++
> 30 files changed, 217 insertions(+), 84 deletions(-)
> create mode 100755 tools/perf/tests/shell/pipe_test.sh
>
> --
> 2.32.0.402.g57bb445576-goog
>