perf/live: don't synthesize build ids at the end of a live mode trace
It doesn't really make sense to record the build ids at the end of a live mode session - live mode samples need that information during the trace rather than at the end. Leave event__synthesize_build_id() in place, however; we'll still be using that to synthesize build ids in a more timely fashion in a future patch. Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Steven Rostedt <rostedt@goodmis.org> LKML-Reference: <1272696080-16435-2-git-send-email-tzanussi@gmail.com> Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
fb72014d98
commit
789688faef
|
@ -446,13 +446,6 @@ static void atexit_header(void)
|
|||
|
||||
process_buildids();
|
||||
perf_header__write(&session->header, output, true);
|
||||
} else {
|
||||
int err;
|
||||
|
||||
err = event__synthesize_build_ids(process_synthesized_event,
|
||||
session);
|
||||
if (err < 0)
|
||||
pr_err("Couldn't synthesize build ids.\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1136,67 +1136,6 @@ int event__synthesize_build_id(struct dso *pos, u16 misc,
|
|||
return err;
|
||||
}
|
||||
|
||||
static int __event_synthesize_build_ids(struct list_head *head, u16 misc,
|
||||
event__handler_t process,
|
||||
struct machine *machine,
|
||||
struct perf_session *session)
|
||||
{
|
||||
struct dso *pos;
|
||||
|
||||
dsos__for_each_with_build_id(pos, head) {
|
||||
int err;
|
||||
if (!pos->hit)
|
||||
continue;
|
||||
|
||||
err = event__synthesize_build_id(pos, misc, process,
|
||||
machine, session);
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int event__synthesize_build_ids(event__handler_t process,
|
||||
struct perf_session *session)
|
||||
{
|
||||
int err = 0;
|
||||
u16 kmisc, umisc;
|
||||
struct machine *pos;
|
||||
struct rb_node *nd;
|
||||
|
||||
if (!dsos__read_build_ids(&session->header, true))
|
||||
return 0;
|
||||
|
||||
for (nd = rb_first(&session->machines); nd; nd = rb_next(nd)) {
|
||||
pos = rb_entry(nd, struct machine, rb_node);
|
||||
if (machine__is_host(pos)) {
|
||||
kmisc = PERF_RECORD_MISC_KERNEL;
|
||||
umisc = PERF_RECORD_MISC_USER;
|
||||
} else {
|
||||
kmisc = PERF_RECORD_MISC_GUEST_KERNEL;
|
||||
umisc = PERF_RECORD_MISC_GUEST_USER;
|
||||
}
|
||||
|
||||
err = __event_synthesize_build_ids(&pos->kernel_dsos, kmisc,
|
||||
process, pos, session);
|
||||
if (err == 0)
|
||||
err = __event_synthesize_build_ids(&pos->user_dsos, umisc,
|
||||
process, pos, session);
|
||||
if (err)
|
||||
break;
|
||||
}
|
||||
|
||||
if (err < 0) {
|
||||
pr_debug("failed to synthesize build ids\n");
|
||||
return err;
|
||||
}
|
||||
|
||||
dsos__cache_build_ids(&session->header);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int event__process_build_id(event_t *self,
|
||||
struct perf_session *session)
|
||||
{
|
||||
|
|
|
@ -122,8 +122,6 @@ int event__synthesize_build_id(struct dso *pos, u16 misc,
|
|||
event__handler_t process,
|
||||
struct machine *machine,
|
||||
struct perf_session *session);
|
||||
int event__synthesize_build_ids(event__handler_t process,
|
||||
struct perf_session *session);
|
||||
int event__process_build_id(event_t *self, struct perf_session *session);
|
||||
|
||||
#endif /* __PERF_HEADER_H */
|
||||
|
|
Loading…
Reference in a new issue