perf session: Warn about errors when processing pipe events too
Commit-ID: 1109599458c06256064213dc44ca5f5fa8ee3833 Gitweb: http://git.kernel.org/tip/1109599458c06256064213dc44ca5f5fa8ee3833 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Tue, 4 Jan 2011 16:25:15 -0200 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Wed, 5 Jan 2011 14:53:10 -0200
perf session: Warn about errors when processing pipe events too
Just like we do at __perf_session__process_events
Cc: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Cc: Tom Zanussi <[email protected]>
LKML-Reference: <new-submission>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/util/session.c | 57 ++++++++++++++++++++++++-------------------- 1 files changed, 31 insertions(+), 26 deletions(-)
tools/perf/util/session.c +31 -26
@@ -838,6 +838,35 @@ static struct thread *perf_session__register_idle_thread(struct perf_session *sereturn thread; } +static void perf_session__warn_about_errors (const struct perf_session *session, +const struct perf_event_ops *ops) +{ +if (ops->lost == event__process_lost && + session->hists.stats.total_lost !=0 ) { +ui__warning ("Processed %Lu events and LOST %Lu!\n\n" +"Check IO/CPU overload!\n\n" , + session->hists.stats.total_period, + session->hists.stats.total_lost); + } + +if (session->hists.stats.nr_unknown_events !=0 ) { +ui__warning ("Found %u unknown events!\n\n" +"Is this an older tool processing a perf.data " +"file generated by a more recent tool?\n\n" +"If that is not the case, consider " +"reporting to [email protected].\n\n" , + session->hists.stats.nr_unknown_events); + } + +if (session->hists.stats.nr_invalid_chains !=0 ) { +ui__warning ("Found invalid callchains!\n\n" +"%u out of %u events were discarded for this reason.\n\n" +"Consider reporting to [email protected].\n\n" , + session->hists.stats.nr_invalid_chains, + session->hists.stats.nr_events[PERF_RECORD_SAMPLE ]); + } +} +#define session_done () (*(volatile int *)(&session_done))volatile int session_done;
@@ -911,6 +940,7 @@ more: done: err =0 ; out_err: +perf_session__warn_about_errors (self, ops);perf_session_free_sample_buffers (self);return err; }
@@ -1023,32 +1053,7 @@ more:flush_sample_queue (session, ops); out_err:ui_progress__delete (progress); - -if (ops->lost == event__process_lost && - session->hists.stats.total_lost !=0 ) { -ui__warning ("Processed %Lu events and LOST %Lu!\n\n" -"Check IO/CPU overload!\n\n" , - session->hists.stats.total_period, - session->hists.stats.total_lost); - } - -if (session->hists.stats.nr_unknown_events !=0 ) { -ui__warning ("Found %u unknown events!\n\n" -"Is this an older tool processing a perf.data " -"file generated by a more recent tool?\n\n" -"If that is not the case, consider " -"reporting to [email protected].\n\n" , - session->hists.stats.nr_unknown_events); - } - -if (session->hists.stats.nr_invalid_chains !=0 ) { -ui__warning ("Found invalid callchains!\n\n" -"%u out of %u events were discarded for this reason.\n\n" -"Consider reporting to [email protected].\n\n" , - session->hists.stats.nr_invalid_chains, - session->hists.stats.nr_events[PERF_RECORD_SAMPLE ]); - } - +perf_session__warn_about_errors (session, ops);perf_session_free_sample_buffers (session);return err; }