perf record: Don't pass host machine to guest synthesizer

We were calling perf_session__process_machines(), that would first pass
the struct machine associated with the host to the provided callback,
perf_event__synthesize_guest_os() that would test if it was the host and
if so wouldn't do anything.

Ditch this contraption, just call directly machines__process with the
list of guests.

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: Namhyung Kim <namhyung@gmail.com>
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-x65vsxgzg4dvo3zqohtrrb9o@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 5323f60c
...@@ -328,10 +328,6 @@ static void perf_event__synthesize_guest_os(struct machine *machine, void *data) ...@@ -328,10 +328,6 @@ static void perf_event__synthesize_guest_os(struct machine *machine, void *data)
{ {
int err; int err;
struct perf_tool *tool = data; struct perf_tool *tool = data;
if (machine__is_host(machine))
return;
/* /*
*As for guest kernel when processing subcommand record&report, *As for guest kernel when processing subcommand record&report,
*we arrange module mmap prior to guest kernel mmap and trigger *we arrange module mmap prior to guest kernel mmap and trigger
...@@ -574,9 +570,10 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv) ...@@ -574,9 +570,10 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
"Symbol resolution may be skewed if relocation was used (e.g. kexec).\n" "Symbol resolution may be skewed if relocation was used (e.g. kexec).\n"
"Check /proc/modules permission or run as root.\n"); "Check /proc/modules permission or run as root.\n");
if (perf_guest) if (perf_guest) {
perf_session__process_machines(session, tool, machines__process(&session->machines,
perf_event__synthesize_guest_os); perf_event__synthesize_guest_os, tool);
}
if (!opts->target.system_wide) if (!opts->target.system_wide)
err = perf_event__synthesize_thread_map(tool, evsel_list->threads, err = perf_event__synthesize_thread_map(tool, evsel_list->threads,
......
...@@ -101,15 +101,6 @@ struct machine *perf_session__findnew_machine(struct perf_session *self, pid_t p ...@@ -101,15 +101,6 @@ struct machine *perf_session__findnew_machine(struct perf_session *self, pid_t p
return machines__findnew(&self->machines, pid); return machines__findnew(&self->machines, pid);
} }
static inline
void perf_session__process_machines(struct perf_session *self,
struct perf_tool *tool,
machine__process_t process)
{
process(&self->host_machine, tool);
return machines__process(&self->machines, process, tool);
}
struct thread *perf_session__findnew(struct perf_session *self, pid_t pid); struct thread *perf_session__findnew(struct perf_session *self, pid_t pid);
size_t perf_session__fprintf(struct perf_session *self, FILE *fp); size_t perf_session__fprintf(struct perf_session *self, FILE *fp);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment