Messages in this thread | | | From | Namhyung Kim <> | Date | Tue, 13 Jul 2021 00:35:34 -0700 | Subject | Re: [PATCH 4/4] perf inject: Fix output from a file to a pipe |
| |
Hi Jiri,
On Sun, Jul 11, 2021 at 8:44 AM Jiri Olsa <jolsa@redhat.com> wrote: > > On Wed, Jul 07, 2021 at 11:05:36AM -0700, Namhyung Kim wrote: > > SNIP > > > + if (!data.is_pipe && inject.output.is_pipe) { > > + ret = perf_header__write_pipe(perf_data__fd(&inject.output)); > > + if (ret < 0) { > > + pr_err("Couldn't write a new pipe header.\n"); > > + goto out_delete; > > + } > > + > > + ret = perf_event__synthesize_attrs(&inject.tool, > > + inject.session->evlist, > > + perf_event__repipe); > > + if (ret < 0) { > > + pr_err("Couldn't inject synthesized attrs.\n"); > > + goto out_delete; > > + } > > + > > + ret = perf_event__synthesize_features(&inject.tool, > > + inject.session, > > + inject.session->evlist, > > + perf_event__repipe); > > + if (ret < 0) { > > + pr_err("Couldn't inject synthesized features.\n"); > > + goto out_delete; > > + } > > + > > + if (have_tracepoints(&inject.session->evlist->core.entries)) { > > + /* > > + * FIXME err <= 0 here actually means that > > + * there were no tracepoints so its not really > > + * an error, just that we don't need to > > + * synthesize anything. We really have to > > + * return this more properly and also > > + * propagate errors that now are calling die() > > + */ > > + ret = perf_event__synthesize_tracing_data(&inject.tool, > > + perf_data__fd(&inject.output), > > + inject.session->evlist, > > + perf_event__repipe); > > + if (ret <= 0) { > > + pr_err("Couldn't inject tracing data.\n"); > > + goto out_delete; > > + } > > + } > > + } > > hum.. how bad (too many args?) would be to put this to some function > in util/record.c, because it's copied directly from builtin-record.c
I don't think they're too many. Will try to factor it out.
Thanks, Namhyung
| |