diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index cbacaab3e9c4135d09992eabc7f26320ad44f82f..d3a857be96821345f5aa04ab12db3c8c0c1e9f84 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -830,6 +830,7 @@ static struct machine * struct perf_sample *sample) { const u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; + struct machine *machine; if (perf_guest && ((cpumode == PERF_RECORD_MISC_GUEST_KERNEL) || @@ -842,7 +843,11 @@ static struct machine * else pid = sample->pid; - return perf_session__findnew_machine(session, pid); + machine = perf_session__find_machine(session, pid); + if (!machine) + machine = perf_session__findnew_machine(session, + DEFAULT_GUEST_KERNEL_ID); + return machine; } return &session->machines.host;