diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-11-05 13:32:36 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-11-05 13:32:36 -0500 |
commit | 316c7136f8bad924609163b9b115f68d59a68c82 (patch) | |
tree | ba664f98d92563544aa63dfb63ae4b49c27929c6 /tools/perf/util/session.c | |
parent | 714647bdc516330e4405b39677d7f763e016c685 (diff) |
perf tools: Finish the removal of 'self' arguments
They convey no information, perhaps I was bitten by some snake at some
point, complete the detox by naming the last of those arguments more
sensibly.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-u1r0dnjoro08dgztiy2g3t2q@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/session.c')
-rw-r--r-- | tools/perf/util/session.c | 121 |
1 files changed, 60 insertions, 61 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index 3c1b30103d54..0ce46943d627 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c | |||
@@ -16,11 +16,11 @@ | |||
16 | #include "perf_regs.h" | 16 | #include "perf_regs.h" |
17 | #include "vdso.h" | 17 | #include "vdso.h" |
18 | 18 | ||
19 | static int perf_session__open(struct perf_session *self) | 19 | static int perf_session__open(struct perf_session *session) |
20 | { | 20 | { |
21 | struct perf_data_file *file = self->file; | 21 | struct perf_data_file *file = session->file; |
22 | 22 | ||
23 | if (perf_session__read_header(self) < 0) { | 23 | if (perf_session__read_header(session) < 0) { |
24 | pr_err("incompatible file format (rerun with -v to learn more)"); | 24 | pr_err("incompatible file format (rerun with -v to learn more)"); |
25 | return -1; | 25 | return -1; |
26 | } | 26 | } |
@@ -28,17 +28,17 @@ static int perf_session__open(struct perf_session *self) | |||
28 | if (perf_data_file__is_pipe(file)) | 28 | if (perf_data_file__is_pipe(file)) |
29 | return 0; | 29 | return 0; |
30 | 30 | ||
31 | if (!perf_evlist__valid_sample_type(self->evlist)) { | 31 | if (!perf_evlist__valid_sample_type(session->evlist)) { |
32 | pr_err("non matching sample_type"); | 32 | pr_err("non matching sample_type"); |
33 | return -1; | 33 | return -1; |
34 | } | 34 | } |
35 | 35 | ||
36 | if (!perf_evlist__valid_sample_id_all(self->evlist)) { | 36 | if (!perf_evlist__valid_sample_id_all(session->evlist)) { |
37 | pr_err("non matching sample_id_all"); | 37 | pr_err("non matching sample_id_all"); |
38 | return -1; | 38 | return -1; |
39 | } | 39 | } |
40 | 40 | ||
41 | if (!perf_evlist__valid_read_format(self->evlist)) { | 41 | if (!perf_evlist__valid_read_format(session->evlist)) { |
42 | pr_err("non matching read_format"); | 42 | pr_err("non matching read_format"); |
43 | return -1; | 43 | return -1; |
44 | } | 44 | } |
@@ -53,46 +53,45 @@ void perf_session__set_id_hdr_size(struct perf_session *session) | |||
53 | machines__set_id_hdr_size(&session->machines, id_hdr_size); | 53 | machines__set_id_hdr_size(&session->machines, id_hdr_size); |
54 | } | 54 | } |
55 | 55 | ||
56 | int perf_session__create_kernel_maps(struct perf_session *self) | 56 | int perf_session__create_kernel_maps(struct perf_session *session) |
57 | { | 57 | { |
58 | int ret = machine__create_kernel_maps(&self->machines.host); | 58 | int ret = machine__create_kernel_maps(&session->machines.host); |
59 | 59 | ||
60 | if (ret >= 0) | 60 | if (ret >= 0) |
61 | ret = machines__create_guest_kernel_maps(&self->machines); | 61 | ret = machines__create_guest_kernel_maps(&session->machines); |
62 | return ret; | 62 | return ret; |
63 | } | 63 | } |
64 | 64 | ||
65 | static void perf_session__destroy_kernel_maps(struct perf_session *self) | 65 | static void perf_session__destroy_kernel_maps(struct perf_session *session) |
66 | { | 66 | { |
67 | machines__destroy_kernel_maps(&self->machines); | 67 | machines__destroy_kernel_maps(&session->machines); |
68 | } | 68 | } |
69 | 69 | ||
70 | struct perf_session *perf_session__new(struct perf_data_file *file, | 70 | struct perf_session *perf_session__new(struct perf_data_file *file, |
71 | bool repipe, struct perf_tool *tool) | 71 | bool repipe, struct perf_tool *tool) |
72 | { | 72 | { |
73 | struct perf_session *self; | 73 | struct perf_session *session = zalloc(sizeof(*session)); |
74 | 74 | ||
75 | self = zalloc(sizeof(*self)); | 75 | if (!session) |
76 | if (!self) | ||
77 | goto out; | 76 | goto out; |
78 | 77 | ||
79 | self->repipe = repipe; | 78 | session->repipe = repipe; |
80 | INIT_LIST_HEAD(&self->ordered_samples.samples); | 79 | INIT_LIST_HEAD(&session->ordered_samples.samples); |
81 | INIT_LIST_HEAD(&self->ordered_samples.sample_cache); | 80 | INIT_LIST_HEAD(&session->ordered_samples.sample_cache); |
82 | INIT_LIST_HEAD(&self->ordered_samples.to_free); | 81 | INIT_LIST_HEAD(&session->ordered_samples.to_free); |
83 | machines__init(&self->machines); | 82 | machines__init(&session->machines); |
84 | 83 | ||
85 | if (file) { | 84 | if (file) { |
86 | if (perf_data_file__open(file)) | 85 | if (perf_data_file__open(file)) |
87 | goto out_delete; | 86 | goto out_delete; |
88 | 87 | ||
89 | self->file = file; | 88 | session->file = file; |
90 | 89 | ||
91 | if (perf_data_file__is_read(file)) { | 90 | if (perf_data_file__is_read(file)) { |
92 | if (perf_session__open(self) < 0) | 91 | if (perf_session__open(session) < 0) |
93 | goto out_close; | 92 | goto out_close; |
94 | 93 | ||
95 | perf_session__set_id_hdr_size(self); | 94 | perf_session__set_id_hdr_size(session); |
96 | } | 95 | } |
97 | } | 96 | } |
98 | 97 | ||
@@ -101,22 +100,22 @@ struct perf_session *perf_session__new(struct perf_data_file *file, | |||
101 | * In O_RDONLY mode this will be performed when reading the | 100 | * In O_RDONLY mode this will be performed when reading the |
102 | * kernel MMAP event, in perf_event__process_mmap(). | 101 | * kernel MMAP event, in perf_event__process_mmap(). |
103 | */ | 102 | */ |
104 | if (perf_session__create_kernel_maps(self) < 0) | 103 | if (perf_session__create_kernel_maps(session) < 0) |
105 | goto out_delete; | 104 | goto out_delete; |
106 | } | 105 | } |
107 | 106 | ||
108 | if (tool && tool->ordering_requires_timestamps && | 107 | if (tool && tool->ordering_requires_timestamps && |
109 | tool->ordered_samples && !perf_evlist__sample_id_all(self->evlist)) { | 108 | tool->ordered_samples && !perf_evlist__sample_id_all(session->evlist)) { |
110 | dump_printf("WARNING: No sample_id_all support, falling back to unordered processing\n"); | 109 | dump_printf("WARNING: No sample_id_all support, falling back to unordered processing\n"); |
111 | tool->ordered_samples = false; | 110 | tool->ordered_samples = false; |
112 | } | 111 | } |
113 | 112 | ||
114 | return self; | 113 | return session; |
115 | 114 | ||
116 | out_close: | 115 | out_close: |
117 | perf_data_file__close(file); | 116 | perf_data_file__close(file); |
118 | out_delete: | 117 | out_delete: |
119 | perf_session__delete(self); | 118 | perf_session__delete(session); |
120 | out: | 119 | out: |
121 | return NULL; | 120 | return NULL; |
122 | } | 121 | } |
@@ -147,16 +146,16 @@ static void perf_session_env__delete(struct perf_session_env *env) | |||
147 | free(env->pmu_mappings); | 146 | free(env->pmu_mappings); |
148 | } | 147 | } |
149 | 148 | ||
150 | void perf_session__delete(struct perf_session *self) | 149 | void perf_session__delete(struct perf_session *session) |
151 | { | 150 | { |
152 | perf_session__destroy_kernel_maps(self); | 151 | perf_session__destroy_kernel_maps(session); |
153 | perf_session__delete_dead_threads(self); | 152 | perf_session__delete_dead_threads(session); |
154 | perf_session__delete_threads(self); | 153 | perf_session__delete_threads(session); |
155 | perf_session_env__delete(&self->header.env); | 154 | perf_session_env__delete(&session->header.env); |
156 | machines__exit(&self->machines); | 155 | machines__exit(&session->machines); |
157 | if (self->file) | 156 | if (session->file) |
158 | perf_data_file__close(self->file); | 157 | perf_data_file__close(session->file); |
159 | free(self); | 158 | free(session); |
160 | vdso__exit(); | 159 | vdso__exit(); |
161 | } | 160 | } |
162 | 161 | ||
@@ -1084,11 +1083,11 @@ static int perf_session__process_event(struct perf_session *session, | |||
1084 | file_offset); | 1083 | file_offset); |
1085 | } | 1084 | } |
1086 | 1085 | ||
1087 | void perf_event_header__bswap(struct perf_event_header *self) | 1086 | void perf_event_header__bswap(struct perf_event_header *hdr) |
1088 | { | 1087 | { |
1089 | self->type = bswap_32(self->type); | 1088 | hdr->type = bswap_32(hdr->type); |
1090 | self->misc = bswap_16(self->misc); | 1089 | hdr->misc = bswap_16(hdr->misc); |
1091 | self->size = bswap_16(self->size); | 1090 | hdr->size = bswap_16(hdr->size); |
1092 | } | 1091 | } |
1093 | 1092 | ||
1094 | struct thread *perf_session__findnew(struct perf_session *session, pid_t pid) | 1093 | struct thread *perf_session__findnew(struct perf_session *session, pid_t pid) |
@@ -1096,9 +1095,9 @@ struct thread *perf_session__findnew(struct perf_session *session, pid_t pid) | |||
1096 | return machine__findnew_thread(&session->machines.host, 0, pid); | 1095 | return machine__findnew_thread(&session->machines.host, 0, pid); |
1097 | } | 1096 | } |
1098 | 1097 | ||
1099 | static struct thread *perf_session__register_idle_thread(struct perf_session *self) | 1098 | static struct thread *perf_session__register_idle_thread(struct perf_session *session) |
1100 | { | 1099 | { |
1101 | struct thread *thread = perf_session__findnew(self, 0); | 1100 | struct thread *thread = perf_session__findnew(session, 0); |
1102 | 1101 | ||
1103 | if (thread == NULL || thread__set_comm(thread, "swapper", 0)) { | 1102 | if (thread == NULL || thread__set_comm(thread, "swapper", 0)) { |
1104 | pr_err("problem inserting idle task.\n"); | 1103 | pr_err("problem inserting idle task.\n"); |
@@ -1150,10 +1149,10 @@ static void perf_session__warn_about_errors(const struct perf_session *session, | |||
1150 | 1149 | ||
1151 | volatile int session_done; | 1150 | volatile int session_done; |
1152 | 1151 | ||
1153 | static int __perf_session__process_pipe_events(struct perf_session *self, | 1152 | static int __perf_session__process_pipe_events(struct perf_session *session, |
1154 | struct perf_tool *tool) | 1153 | struct perf_tool *tool) |
1155 | { | 1154 | { |
1156 | int fd = perf_data_file__fd(self->file); | 1155 | int fd = perf_data_file__fd(session->file); |
1157 | union perf_event *event; | 1156 | union perf_event *event; |
1158 | uint32_t size, cur_size = 0; | 1157 | uint32_t size, cur_size = 0; |
1159 | void *buf = NULL; | 1158 | void *buf = NULL; |
@@ -1181,7 +1180,7 @@ more: | |||
1181 | goto out_err; | 1180 | goto out_err; |
1182 | } | 1181 | } |
1183 | 1182 | ||
1184 | if (self->header.needs_swap) | 1183 | if (session->header.needs_swap) |
1185 | perf_event_header__bswap(&event->header); | 1184 | perf_event_header__bswap(&event->header); |
1186 | 1185 | ||
1187 | size = event->header.size; | 1186 | size = event->header.size; |
@@ -1216,7 +1215,7 @@ more: | |||
1216 | } | 1215 | } |
1217 | } | 1216 | } |
1218 | 1217 | ||
1219 | if ((skip = perf_session__process_event(self, event, tool, head)) < 0) { | 1218 | if ((skip = perf_session__process_event(session, event, tool, head)) < 0) { |
1220 | pr_err("%#" PRIx64 " [%#x]: failed to process type: %d\n", | 1219 | pr_err("%#" PRIx64 " [%#x]: failed to process type: %d\n", |
1221 | head, event->header.size, event->header.type); | 1220 | head, event->header.size, event->header.type); |
1222 | err = -EINVAL; | 1221 | err = -EINVAL; |
@@ -1232,12 +1231,12 @@ more: | |||
1232 | goto more; | 1231 | goto more; |
1233 | done: | 1232 | done: |
1234 | /* do the final flush for ordered samples */ | 1233 | /* do the final flush for ordered samples */ |
1235 | self->ordered_samples.next_flush = ULLONG_MAX; | 1234 | session->ordered_samples.next_flush = ULLONG_MAX; |
1236 | err = flush_sample_queue(self, tool); | 1235 | err = flush_sample_queue(session, tool); |
1237 | out_err: | 1236 | out_err: |
1238 | free(buf); | 1237 | free(buf); |
1239 | perf_session__warn_about_errors(self, tool); | 1238 | perf_session__warn_about_errors(session, tool); |
1240 | perf_session_free_sample_buffers(self); | 1239 | perf_session_free_sample_buffers(session); |
1241 | return err; | 1240 | return err; |
1242 | } | 1241 | } |
1243 | 1242 | ||
@@ -1377,22 +1376,22 @@ out_err: | |||
1377 | return err; | 1376 | return err; |
1378 | } | 1377 | } |
1379 | 1378 | ||
1380 | int perf_session__process_events(struct perf_session *self, | 1379 | int perf_session__process_events(struct perf_session *session, |
1381 | struct perf_tool *tool) | 1380 | struct perf_tool *tool) |
1382 | { | 1381 | { |
1383 | u64 size = perf_data_file__size(self->file); | 1382 | u64 size = perf_data_file__size(session->file); |
1384 | int err; | 1383 | int err; |
1385 | 1384 | ||
1386 | if (perf_session__register_idle_thread(self) == NULL) | 1385 | if (perf_session__register_idle_thread(session) == NULL) |
1387 | return -ENOMEM; | 1386 | return -ENOMEM; |
1388 | 1387 | ||
1389 | if (!perf_data_file__is_pipe(self->file)) | 1388 | if (!perf_data_file__is_pipe(session->file)) |
1390 | err = __perf_session__process_events(self, | 1389 | err = __perf_session__process_events(session, |
1391 | self->header.data_offset, | 1390 | session->header.data_offset, |
1392 | self->header.data_size, | 1391 | session->header.data_size, |
1393 | size, tool); | 1392 | size, tool); |
1394 | else | 1393 | else |
1395 | err = __perf_session__process_pipe_events(self, tool); | 1394 | err = __perf_session__process_pipe_events(session, tool); |
1396 | 1395 | ||
1397 | return err; | 1396 | return err; |
1398 | } | 1397 | } |
@@ -1441,15 +1440,15 @@ int maps__set_kallsyms_ref_reloc_sym(struct map **maps, | |||
1441 | return 0; | 1440 | return 0; |
1442 | } | 1441 | } |
1443 | 1442 | ||
1444 | size_t perf_session__fprintf_dsos(struct perf_session *self, FILE *fp) | 1443 | size_t perf_session__fprintf_dsos(struct perf_session *session, FILE *fp) |
1445 | { | 1444 | { |
1446 | return machines__fprintf_dsos(&self->machines, fp); | 1445 | return machines__fprintf_dsos(&session->machines, fp); |
1447 | } | 1446 | } |
1448 | 1447 | ||
1449 | size_t perf_session__fprintf_dsos_buildid(struct perf_session *self, FILE *fp, | 1448 | size_t perf_session__fprintf_dsos_buildid(struct perf_session *session, FILE *fp, |
1450 | bool (skip)(struct dso *dso, int parm), int parm) | 1449 | bool (skip)(struct dso *dso, int parm), int parm) |
1451 | { | 1450 | { |
1452 | return machines__fprintf_dsos_buildid(&self->machines, fp, skip, parm); | 1451 | return machines__fprintf_dsos_buildid(&session->machines, fp, skip, parm); |
1453 | } | 1452 | } |
1454 | 1453 | ||
1455 | size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp) | 1454 | size_t perf_session__fprintf_nr_events(struct perf_session *session, FILE *fp) |