perf report: Delay sample_type checks in pipe mode
authorDavid Ahern <dsahern@gmail.com>
Mon, 11 Jun 2012 19:48:41 +0000 (13:48 -0600)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 27 Jun 2012 16:19:14 +0000 (13:19 -0300)
commit300aa941650e98966ad85847527537df5b11a87e
tree83fd299ea56896040325c57fb0f862cdb168cdc6
parent08942f6d5d992e9486b07653fd87ea8182a22fa0
perf report: Delay sample_type checks in pipe mode

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>
Tested-by: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Link: http://lkml.kernel.org/r/1339444121-26236-1-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-report.c