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.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -328,10 +328,6 @@ static void perf_event__synthesize_guest_os(struct machine *machine, void *data)
|
||||
{
|
||||
int err;
|
||||
struct perf_tool *tool = data;
|
||||
|
||||
if (machine__is_host(machine))
|
||||
return;
|
||||
|
||||
/*
|
||||
*As for guest kernel when processing subcommand record&report,
|
||||
*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)
|
||||
"Symbol resolution may be skewed if relocation was used (e.g. kexec).\n"
|
||||
"Check /proc/modules permission or run as root.\n");
|
||||
|
||||
if (perf_guest)
|
||||
perf_session__process_machines(session, tool,
|
||||
perf_event__synthesize_guest_os);
|
||||
if (perf_guest) {
|
||||
machines__process(&session->machines,
|
||||
perf_event__synthesize_guest_os, tool);
|
||||
}
|
||||
|
||||
if (!opts->target.system_wide)
|
||||
err = perf_event__synthesize_thread_map(tool, evsel_list->threads,
|
||||
|
Reference in New Issue
Block a user