aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2015-02-14 13:05:28 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2015-02-22 20:23:40 -0500
commit313e53b08e99b1dacf9ea2b0fbe97890db1ea95f (patch)
treeb840f0c7e57aa40739139074acb2f8ca991ccb18 /tools/perf
parentccda068f96138734eb40e9202ea9562566b43c12 (diff)
perf session: Remove perf_session from some deliver event routines
Further untangling perf_session from plain event delivery routines. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Borislav Petkov <bp@suse.de> Cc: David Ahern <dsahern@gmail.com> Cc: Don Zickus <dzickus@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-cvz8e6pwyogs4w14582iis9w@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/util/session.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 34dd749dc390..0133d01d51bd 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -824,16 +824,15 @@ static struct machine *machines__find_for_cpumode(struct machines *machines,
824 return &machines->host; 824 return &machines->host;
825} 825}
826 826
827static int deliver_sample_value(struct perf_session *session, 827static int deliver_sample_value(struct perf_evlist *evlist,
828 struct perf_tool *tool, 828 struct perf_tool *tool,
829 union perf_event *event, 829 union perf_event *event,
830 struct perf_sample *sample, 830 struct perf_sample *sample,
831 struct sample_read_value *v, 831 struct sample_read_value *v,
832 struct machine *machine) 832 struct machine *machine)
833{ 833{
834 struct perf_sample_id *sid; 834 struct perf_sample_id *sid = perf_evlist__id2sid(evlist, v->id);
835 835
836 sid = perf_evlist__id2sid(session->evlist, v->id);
837 if (sid) { 836 if (sid) {
838 sample->id = v->id; 837 sample->id = v->id;
839 sample->period = v->value - sid->period; 838 sample->period = v->value - sid->period;
@@ -841,14 +840,14 @@ static int deliver_sample_value(struct perf_session *session,
841 } 840 }
842 841
843 if (!sid || sid->evsel == NULL) { 842 if (!sid || sid->evsel == NULL) {
844 ++session->evlist->stats.nr_unknown_id; 843 ++evlist->stats.nr_unknown_id;
845 return 0; 844 return 0;
846 } 845 }
847 846
848 return tool->sample(tool, event, sample, sid->evsel, machine); 847 return tool->sample(tool, event, sample, sid->evsel, machine);
849} 848}
850 849
851static int deliver_sample_group(struct perf_session *session, 850static int deliver_sample_group(struct perf_evlist *evlist,
852 struct perf_tool *tool, 851 struct perf_tool *tool,
853 union perf_event *event, 852 union perf_event *event,
854 struct perf_sample *sample, 853 struct perf_sample *sample,
@@ -858,7 +857,7 @@ static int deliver_sample_group(struct perf_session *session,
858 u64 i; 857 u64 i;
859 858
860 for (i = 0; i < sample->read.group.nr; i++) { 859 for (i = 0; i < sample->read.group.nr; i++) {
861 ret = deliver_sample_value(session, tool, event, sample, 860 ret = deliver_sample_value(evlist, tool, event, sample,
862 &sample->read.group.values[i], 861 &sample->read.group.values[i],
863 machine); 862 machine);
864 if (ret) 863 if (ret)
@@ -869,7 +868,7 @@ static int deliver_sample_group(struct perf_session *session,
869} 868}
870 869
871static int 870static int
872perf_session__deliver_sample(struct perf_session *session, 871 perf_evlist__deliver_sample(struct perf_evlist *evlist,
873 struct perf_tool *tool, 872 struct perf_tool *tool,
874 union perf_event *event, 873 union perf_event *event,
875 struct perf_sample *sample, 874 struct perf_sample *sample,
@@ -886,10 +885,10 @@ perf_session__deliver_sample(struct perf_session *session,
886 885
887 /* For PERF_SAMPLE_READ we have either single or group mode. */ 886 /* For PERF_SAMPLE_READ we have either single or group mode. */
888 if (read_format & PERF_FORMAT_GROUP) 887 if (read_format & PERF_FORMAT_GROUP)
889 return deliver_sample_group(session, tool, event, sample, 888 return deliver_sample_group(evlist, tool, event, sample,
890 machine); 889 machine);
891 else 890 else
892 return deliver_sample_value(session, tool, event, sample, 891 return deliver_sample_value(evlist, tool, event, sample,
893 &sample->read.one, machine); 892 &sample->read.one, machine);
894} 893}
895 894
@@ -898,12 +897,13 @@ int perf_session__deliver_event(struct perf_session *session,
898 struct perf_sample *sample, 897 struct perf_sample *sample,
899 struct perf_tool *tool, u64 file_offset) 898 struct perf_tool *tool, u64 file_offset)
900{ 899{
900 struct perf_evlist *evlist = session->evlist;
901 struct perf_evsel *evsel; 901 struct perf_evsel *evsel;
902 struct machine *machine; 902 struct machine *machine;
903 903
904 dump_event(session, event, file_offset, sample); 904 dump_event(session, event, file_offset, sample);
905 905
906 evsel = perf_evlist__id2evsel(session->evlist, sample->id); 906 evsel = perf_evlist__id2evsel(evlist, sample->id);
907 907
908 machine = machines__find_for_cpumode(&session->machines, event, sample); 908 machine = machines__find_for_cpumode(&session->machines, event, sample);
909 909
@@ -911,15 +911,14 @@ int perf_session__deliver_event(struct perf_session *session,
911 case PERF_RECORD_SAMPLE: 911 case PERF_RECORD_SAMPLE:
912 dump_sample(evsel, event, sample); 912 dump_sample(evsel, event, sample);
913 if (evsel == NULL) { 913 if (evsel == NULL) {
914 ++session->evlist->stats.nr_unknown_id; 914 ++evlist->stats.nr_unknown_id;
915 return 0; 915 return 0;
916 } 916 }
917 if (machine == NULL) { 917 if (machine == NULL) {
918 ++session->evlist->stats.nr_unprocessable_samples; 918 ++evlist->stats.nr_unprocessable_samples;
919 return 0; 919 return 0;
920 } 920 }
921 return perf_session__deliver_sample(session, tool, event, 921 return perf_evlist__deliver_sample(evlist, tool, event, sample, evsel, machine);
922 sample, evsel, machine);
923 case PERF_RECORD_MMAP: 922 case PERF_RECORD_MMAP:
924 return tool->mmap(tool, event, sample, machine); 923 return tool->mmap(tool, event, sample, machine);
925 case PERF_RECORD_MMAP2: 924 case PERF_RECORD_MMAP2:
@@ -932,7 +931,7 @@ int perf_session__deliver_event(struct perf_session *session,
932 return tool->exit(tool, event, sample, machine); 931 return tool->exit(tool, event, sample, machine);
933 case PERF_RECORD_LOST: 932 case PERF_RECORD_LOST:
934 if (tool->lost == perf_event__process_lost) 933 if (tool->lost == perf_event__process_lost)
935 session->evlist->stats.total_lost += event->lost.lost; 934 evlist->stats.total_lost += event->lost.lost;
936 return tool->lost(tool, event, sample, machine); 935 return tool->lost(tool, event, sample, machine);
937 case PERF_RECORD_READ: 936 case PERF_RECORD_READ:
938 return tool->read(tool, event, sample, evsel, machine); 937 return tool->read(tool, event, sample, evsel, machine);
@@ -941,7 +940,7 @@ int perf_session__deliver_event(struct perf_session *session,
941 case PERF_RECORD_UNTHROTTLE: 940 case PERF_RECORD_UNTHROTTLE:
942 return tool->unthrottle(tool, event, sample, machine); 941 return tool->unthrottle(tool, event, sample, machine);
943 default: 942 default:
944 ++session->evlist->stats.nr_unknown_events; 943 ++evlist->stats.nr_unknown_events;
945 return -1; 944 return -1;
946 } 945 }
947} 946}
@@ -1068,16 +1067,17 @@ static s64 perf_session__process_event(struct perf_session *session,
1068 struct perf_tool *tool, 1067 struct perf_tool *tool,
1069 u64 file_offset) 1068 u64 file_offset)
1070{ 1069{
1070 struct perf_evlist *evlist = session->evlist;
1071 struct perf_sample sample; 1071 struct perf_sample sample;
1072 int ret; 1072 int ret;
1073 1073
1074 if (session->header.needs_swap) 1074 if (session->header.needs_swap)
1075 event_swap(event, perf_evlist__sample_id_all(session->evlist)); 1075 event_swap(event, perf_evlist__sample_id_all(evlist));
1076 1076
1077 if (event->header.type >= PERF_RECORD_HEADER_MAX) 1077 if (event->header.type >= PERF_RECORD_HEADER_MAX)
1078 return -EINVAL; 1078 return -EINVAL;
1079 1079
1080 events_stats__inc(&session->evlist->stats, event->header.type); 1080 events_stats__inc(&evlist->stats, event->header.type);
1081 1081
1082 if (event->header.type >= PERF_RECORD_USER_TYPE_START) 1082 if (event->header.type >= PERF_RECORD_USER_TYPE_START)
1083 return perf_session__process_user_event(session, event, tool, file_offset); 1083 return perf_session__process_user_event(session, event, tool, file_offset);
@@ -1085,7 +1085,7 @@ static s64 perf_session__process_event(struct perf_session *session,
1085 /* 1085 /*
1086 * For all kernel events we get the sample data 1086 * For all kernel events we get the sample data
1087 */ 1087 */
1088 ret = perf_evlist__parse_sample(session->evlist, event, &sample); 1088 ret = perf_evlist__parse_sample(evlist, event, &sample);
1089 if (ret) 1089 if (ret)
1090 return ret; 1090 return ret;
1091 1091