diff options
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r-- | tools/perf/util/session.c | 28 |
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 | ||
1392 | size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp) | 1375 | size_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 | ||