diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-11-28 04:56:39 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-11-28 07:39:12 -0500 |
commit | 743eb868657bdb1b26c7b24077ca21c67c82c777 (patch) | |
tree | 4803b557725213043ccd5d3f83d2eec796a49f69 /tools/perf/util/header.c | |
parent | d20deb64e0490ee9442b5181bc08a62d2cadcb90 (diff) |
perf tools: Resolve machine earlier and pass it to perf_event_ops
Reducing the exposure of perf_session further, so that we can use the
classes in cases where no perf.data file is created.
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.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-stua66dcscsezzrcdugvbmvd@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/header.c')
-rw-r--r-- | tools/perf/util/header.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index ab3a2b0e8f06..db280d6ca898 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c | |||
@@ -2072,8 +2072,7 @@ out_delete_evlist: | |||
2072 | 2072 | ||
2073 | int perf_event__synthesize_attr(struct perf_event_ops *ops, | 2073 | int perf_event__synthesize_attr(struct perf_event_ops *ops, |
2074 | struct perf_event_attr *attr, u16 ids, u64 *id, | 2074 | struct perf_event_attr *attr, u16 ids, u64 *id, |
2075 | perf_event__handler_t process, | 2075 | perf_event__handler_t process) |
2076 | struct perf_session *session) | ||
2077 | { | 2076 | { |
2078 | union perf_event *ev; | 2077 | union perf_event *ev; |
2079 | size_t size; | 2078 | size_t size; |
@@ -2095,7 +2094,7 @@ int perf_event__synthesize_attr(struct perf_event_ops *ops, | |||
2095 | ev->attr.header.type = PERF_RECORD_HEADER_ATTR; | 2094 | ev->attr.header.type = PERF_RECORD_HEADER_ATTR; |
2096 | ev->attr.header.size = size; | 2095 | ev->attr.header.size = size; |
2097 | 2096 | ||
2098 | err = process(ops, ev, NULL, session); | 2097 | err = process(ops, ev, NULL, NULL); |
2099 | 2098 | ||
2100 | free(ev); | 2099 | free(ev); |
2101 | 2100 | ||
@@ -2111,7 +2110,7 @@ int perf_event__synthesize_attrs(struct perf_event_ops *ops, | |||
2111 | 2110 | ||
2112 | list_for_each_entry(attr, &session->evlist->entries, node) { | 2111 | list_for_each_entry(attr, &session->evlist->entries, node) { |
2113 | err = perf_event__synthesize_attr(ops, &attr->attr, attr->ids, | 2112 | err = perf_event__synthesize_attr(ops, &attr->attr, attr->ids, |
2114 | attr->id, process, session); | 2113 | attr->id, process); |
2115 | if (err) { | 2114 | if (err) { |
2116 | pr_debug("failed to create perf header attribute\n"); | 2115 | pr_debug("failed to create perf header attribute\n"); |
2117 | return err; | 2116 | return err; |
@@ -2161,7 +2160,7 @@ int perf_event__process_attr(union perf_event *event, | |||
2161 | int perf_event__synthesize_event_type(struct perf_event_ops *ops, | 2160 | int perf_event__synthesize_event_type(struct perf_event_ops *ops, |
2162 | u64 event_id, char *name, | 2161 | u64 event_id, char *name, |
2163 | perf_event__handler_t process, | 2162 | perf_event__handler_t process, |
2164 | struct perf_session *session) | 2163 | struct machine *machine) |
2165 | { | 2164 | { |
2166 | union perf_event ev; | 2165 | union perf_event ev; |
2167 | size_t size = 0; | 2166 | size_t size = 0; |
@@ -2179,14 +2178,14 @@ int perf_event__synthesize_event_type(struct perf_event_ops *ops, | |||
2179 | ev.event_type.header.size = sizeof(ev.event_type) - | 2178 | ev.event_type.header.size = sizeof(ev.event_type) - |
2180 | (sizeof(ev.event_type.event_type.name) - size); | 2179 | (sizeof(ev.event_type.event_type.name) - size); |
2181 | 2180 | ||
2182 | err = process(ops, &ev, NULL, session); | 2181 | err = process(ops, &ev, NULL, machine); |
2183 | 2182 | ||
2184 | return err; | 2183 | return err; |
2185 | } | 2184 | } |
2186 | 2185 | ||
2187 | int perf_event__synthesize_event_types(struct perf_event_ops *ops, | 2186 | int perf_event__synthesize_event_types(struct perf_event_ops *ops, |
2188 | perf_event__handler_t process, | 2187 | perf_event__handler_t process, |
2189 | struct perf_session *session) | 2188 | struct machine *machine) |
2190 | { | 2189 | { |
2191 | struct perf_trace_event_type *type; | 2190 | struct perf_trace_event_type *type; |
2192 | int i, err = 0; | 2191 | int i, err = 0; |
@@ -2196,7 +2195,7 @@ int perf_event__synthesize_event_types(struct perf_event_ops *ops, | |||
2196 | 2195 | ||
2197 | err = perf_event__synthesize_event_type(ops, type->event_id, | 2196 | err = perf_event__synthesize_event_type(ops, type->event_id, |
2198 | type->name, process, | 2197 | type->name, process, |
2199 | session); | 2198 | machine); |
2200 | if (err) { | 2199 | if (err) { |
2201 | pr_debug("failed to create perf header event type\n"); | 2200 | pr_debug("failed to create perf header event type\n"); |
2202 | return err; | 2201 | return err; |
@@ -2207,8 +2206,7 @@ int perf_event__synthesize_event_types(struct perf_event_ops *ops, | |||
2207 | } | 2206 | } |
2208 | 2207 | ||
2209 | int perf_event__process_event_type(struct perf_event_ops *ops __unused, | 2208 | int perf_event__process_event_type(struct perf_event_ops *ops __unused, |
2210 | union perf_event *event, | 2209 | union perf_event *event) |
2211 | struct perf_session *session __unused) | ||
2212 | { | 2210 | { |
2213 | if (perf_header__push_event(event->event_type.event_type.event_id, | 2211 | if (perf_header__push_event(event->event_type.event_type.event_id, |
2214 | event->event_type.event_type.name) < 0) | 2212 | event->event_type.event_type.name) < 0) |
@@ -2219,8 +2217,7 @@ int perf_event__process_event_type(struct perf_event_ops *ops __unused, | |||
2219 | 2217 | ||
2220 | int perf_event__synthesize_tracing_data(struct perf_event_ops *ops, int fd, | 2218 | int perf_event__synthesize_tracing_data(struct perf_event_ops *ops, int fd, |
2221 | struct perf_evlist *evlist, | 2219 | struct perf_evlist *evlist, |
2222 | perf_event__handler_t process, | 2220 | perf_event__handler_t process) |
2223 | struct perf_session *session __unused) | ||
2224 | { | 2221 | { |
2225 | union perf_event ev; | 2222 | union perf_event ev; |
2226 | struct tracing_data *tdata; | 2223 | struct tracing_data *tdata; |
@@ -2251,7 +2248,7 @@ int perf_event__synthesize_tracing_data(struct perf_event_ops *ops, int fd, | |||
2251 | ev.tracing_data.header.size = sizeof(ev.tracing_data); | 2248 | ev.tracing_data.header.size = sizeof(ev.tracing_data); |
2252 | ev.tracing_data.size = aligned_size; | 2249 | ev.tracing_data.size = aligned_size; |
2253 | 2250 | ||
2254 | process(ops, &ev, NULL, session); | 2251 | process(ops, &ev, NULL, NULL); |
2255 | 2252 | ||
2256 | /* | 2253 | /* |
2257 | * The put function will copy all the tracing data | 2254 | * The put function will copy all the tracing data |
@@ -2296,8 +2293,7 @@ int perf_event__process_tracing_data(union perf_event *event, | |||
2296 | int perf_event__synthesize_build_id(struct perf_event_ops *ops, | 2293 | int perf_event__synthesize_build_id(struct perf_event_ops *ops, |
2297 | struct dso *pos, u16 misc, | 2294 | struct dso *pos, u16 misc, |
2298 | perf_event__handler_t process, | 2295 | perf_event__handler_t process, |
2299 | struct machine *machine, | 2296 | struct machine *machine) |
2300 | struct perf_session *session) | ||
2301 | { | 2297 | { |
2302 | union perf_event ev; | 2298 | union perf_event ev; |
2303 | size_t len; | 2299 | size_t len; |
@@ -2317,7 +2313,7 @@ int perf_event__synthesize_build_id(struct perf_event_ops *ops, | |||
2317 | ev.build_id.header.size = sizeof(ev.build_id) + len; | 2313 | ev.build_id.header.size = sizeof(ev.build_id) + len; |
2318 | memcpy(&ev.build_id.filename, pos->long_name, pos->long_name_len); | 2314 | memcpy(&ev.build_id.filename, pos->long_name, pos->long_name_len); |
2319 | 2315 | ||
2320 | err = process(ops, &ev, NULL, session); | 2316 | err = process(ops, &ev, NULL, machine); |
2321 | 2317 | ||
2322 | return err; | 2318 | return err; |
2323 | } | 2319 | } |