Commit 7fbfc683 authored by Anton Blanchard's avatar Anton Blanchard Committed by Ingo Molnar

perf: Fix hypervisor sample reporting

cpumode bits are defined as such:

 #define PERF_RECORD_MISC_KERNEL                 (1 << 0)
 #define PERF_RECORD_MISC_USER                   (2 << 0)
 #define PERF_RECORD_MISC_HYPERVISOR             (3 << 0)

We need to compare against the complete value of cpumode,
otherwise hypervisor samples get incorrectly attributed as
userspace.
Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: fweisbec@gmail.com
LKML-Reference: <20100209034304.GA3702@kryten>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent cd757645
...@@ -295,10 +295,10 @@ void thread__find_addr_location(struct thread *self, ...@@ -295,10 +295,10 @@ void thread__find_addr_location(struct thread *self,
al->thread = self; al->thread = self;
al->addr = addr; al->addr = addr;
if (cpumode & PERF_RECORD_MISC_KERNEL) { if (cpumode == PERF_RECORD_MISC_KERNEL) {
al->level = 'k'; al->level = 'k';
mg = &session->kmaps; mg = &session->kmaps;
} else if (cpumode & PERF_RECORD_MISC_USER) } else if (cpumode == PERF_RECORD_MISC_USER)
al->level = '.'; al->level = '.';
else { else {
al->level = 'H'; al->level = 'H';
......
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