Re: [PATCHSET v3 0/5] perf inject: Fix broken data with mixed input/output

From: Arnaldo Carvalho de Melo
Date: Mon Aug 02 2021 - 09:16:35 EST


Em Tue, Jul 20, 2021 at 11:01:43AM +0200, Jiri Olsa escreveu:
> On Mon, Jul 19, 2021 at 03:31:48PM -0700, Namhyung Kim wrote:
> > 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, applied.

Had to do some adjustments due to minor conflicts, can you please check
tmp.perf/core?

- Arnaldo

> 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
> >
>

--

- Arnaldo