Messages in this thread | | | Date | Fri, 22 Jun 2012 13:38:34 -0600 | From | David Ahern <> | Subject | Re: [PATCH] perf report: delay sample_type checks in pipe mode |
| |
Hi Arnaldo
On 6/11/12 1:48 PM, David Ahern wrote: > The pipeline: > perf record -a -g -o - sleep 5 |perf inject -v -b | perf report -g -i - > > generates the warning: > Selected -g but no callchain data. Did you call 'perf record' without -g? > > The problem is that the header data is not written to the pipe, so the > sample_type has not been available when perf_report__setup_sample_type is > called. For pipe mode, record dumps the sample type as part of the > synthesized events stream -- perf_event__synthesize_attrs(). Handle this > be detecting pipe mode and not doing early sanity checks on sample_type. > > Signed-off-by: David Ahern <dsahern@gmail.com>
Haven't seen this one come through your queues.
David
> --- > tools/perf/builtin-report.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c > index ebcb3e2..9b3e9e9 100644 > --- a/tools/perf/builtin-report.c > +++ b/tools/perf/builtin-report.c > @@ -246,11 +246,12 @@ static int process_read_event(struct perf_tool *tool, > return 0; > } > > +/* For pipe mode, sample_type is not currently set */ > static int perf_report__setup_sample_type(struct perf_report *rep) > { > struct perf_session *self = rep->session; > > - if (!(self->sample_type & PERF_SAMPLE_CALLCHAIN)) { > + if (!self->fd_pipe && !(self->sample_type & PERF_SAMPLE_CALLCHAIN)) { > if (sort__has_parent) { > ui__error("Selected --sort parent, but no " > "callchain data. Did you call " > @@ -273,7 +274,8 @@ static int perf_report__setup_sample_type(struct perf_report *rep) > } > > if (sort__branch_mode == 1) { > - if (!(self->sample_type & PERF_SAMPLE_BRANCH_STACK)) { > + if (!self->fd_pipe && > + !(self->sample_type & PERF_SAMPLE_BRANCH_STACK)) { > ui__error("Selected -b but no branch data. " > "Did you call perf record without -b?\n"); > return -1; >
| |