aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/session.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r--tools/perf/util/session.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 883406f4b381..6702ac28754b 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -532,17 +532,16 @@ int perf_session_queue_event(struct perf_session *s, union perf_event *event,
532 return -EINVAL; 532 return -EINVAL;
533 } 533 }
534 534
535 new = ordered_events__new(oe, timestamp); 535 new = ordered_events__new(oe, timestamp, event);
536 if (!new) { 536 if (!new) {
537 ordered_events__flush(s, tool, OE_FLUSH__HALF); 537 ordered_events__flush(s, tool, OE_FLUSH__HALF);
538 new = ordered_events__new(oe, timestamp); 538 new = ordered_events__new(oe, timestamp, event);
539 } 539 }
540 540
541 if (!new) 541 if (!new)
542 return -ENOMEM; 542 return -ENOMEM;
543 543
544 new->file_offset = file_offset; 544 new->file_offset = file_offset;
545 new->event = event;
546 return 0; 545 return 0;
547} 546}
548 547
@@ -813,22 +812,6 @@ int perf_session__deliver_event(struct perf_session *session,
813 dump_event(session, event, file_offset, sample); 812 dump_event(session, event, file_offset, sample);
814 813
815 evsel = perf_evlist__id2evsel(session->evlist, sample->id); 814 evsel = perf_evlist__id2evsel(session->evlist, sample->id);
816 if (evsel != NULL && event->header.type != PERF_RECORD_SAMPLE) {
817 /*
818 * XXX We're leaving PERF_RECORD_SAMPLE unnacounted here
819 * because the tools right now may apply filters, discarding
820 * some of the samples. For consistency, in the future we
821 * should have something like nr_filtered_samples and remove
822 * the sample->period from total_sample_period, etc, KISS for
823 * now tho.
824 *
825 * Also testing against NULL allows us to handle files without
826 * attr.sample_id_all and/or without PERF_SAMPLE_ID. In the
827 * future probably it'll be a good idea to restrict event
828 * processing via perf_session to files with both set.
829 */
830 hists__inc_nr_events(&evsel->hists, event->header.type);
831 }
832 815
833 machine = perf_session__find_machine_for_cpumode(session, event, 816 machine = perf_session__find_machine_for_cpumode(session, event,
834 sample); 817 sample);
@@ -1391,16 +1374,9 @@ size_t perf_session__fprintf_dsos_buildid(struct perf_session *session, FILE *fp
1391 1374
1392size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp) 1375size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp)
1393{ 1376{
1394 struct perf_evsel *pos;
1395 size_t ret = fprintf(fp, "Aggregated stats:\n"); 1377 size_t ret = fprintf(fp, "Aggregated stats:\n");
1396 1378
1397 ret += events_stats__fprintf(&session->stats, fp); 1379 ret += events_stats__fprintf(&session->stats, fp);
1398
1399 evlist__for_each(session->evlist, pos) {
1400 ret += fprintf(fp, "%s stats:\n", perf_evsel__name(pos));
1401 ret += events_stats__fprintf(&pos->hists.stats, fp);
1402 }
1403
1404 return ret; 1380 return ret;
1405} 1381}
1406 1382