Re: Does perf inject preserve call chain data?

From: David Ahern
Date: Tue May 22 2012 - 17:59:16 EST


On 5/22/12 12:49 PM, Tim Chen wrote:
Arnaldo,

Wonder if perf inject munged the call chain data from perf record?

When I do
perf record -a -g -o - sleep 5 |perf inject -v -b | perf report -g -i -
I get a complain from perf report

Warning:
Selected -g but no callchain data. Did you call 'perf record' without -g?


I believe the root cause is that the event list is not written to the pipe. Using Arnaldo's git repo as of today (has fixes from Stephane) this hack shows the info is there and can be processed.


diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index d58e414..60f3f17 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -256,7 +257,7 @@ static int perf_report__setup_sample_type(struct perf_report *rep)
"'perf record' without -g?\n");
return -EINVAL;
}
- if (symbol_conf.use_callchain) {
+ if (!self->fd_pipe && symbol_conf.use_callchain) {
ui__warning("Selected -g but no callchain data. Did "
"you call 'perf record' without -g?\n");
return -1;

A proper solution is needed.

David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/