perf report: Fix reporting of hypervisor
PERF_EVENT_MISC_* is not a bitmask, so we have to mask and compare. Signed-off-by: Anton Blanchard <anton@samba.org> Cc: a.p.zijlstra@chello.nl Cc: paulus@samba.org LKML-Reference: <20090630230141.088394681@samba.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
3a3393ef75
commit
d8db1b57d3
1 changed files with 5 additions and 2 deletions
|
@ -1213,6 +1213,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
|
||||||
struct map *map = NULL;
|
struct map *map = NULL;
|
||||||
void *more_data = event->ip.__more_data;
|
void *more_data = event->ip.__more_data;
|
||||||
struct ip_callchain *chain = NULL;
|
struct ip_callchain *chain = NULL;
|
||||||
|
int cpumode;
|
||||||
|
|
||||||
if (sample_type & PERF_SAMPLE_PERIOD) {
|
if (sample_type & PERF_SAMPLE_PERIOD) {
|
||||||
period = *(u64 *)more_data;
|
period = *(u64 *)more_data;
|
||||||
|
@ -1256,7 +1257,9 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
|
||||||
if (comm_list && !strlist__has_entry(comm_list, thread->comm))
|
if (comm_list && !strlist__has_entry(comm_list, thread->comm))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (event->header.misc & PERF_EVENT_MISC_KERNEL) {
|
cpumode = event->header.misc & PERF_EVENT_MISC_CPUMODE_MASK;
|
||||||
|
|
||||||
|
if (cpumode == PERF_EVENT_MISC_KERNEL) {
|
||||||
show = SHOW_KERNEL;
|
show = SHOW_KERNEL;
|
||||||
level = 'k';
|
level = 'k';
|
||||||
|
|
||||||
|
@ -1264,7 +1267,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
|
||||||
|
|
||||||
dprintf(" ...... dso: %s\n", dso->name);
|
dprintf(" ...... dso: %s\n", dso->name);
|
||||||
|
|
||||||
} else if (event->header.misc & PERF_EVENT_MISC_USER) {
|
} else if (cpumode == PERF_EVENT_MISC_USER) {
|
||||||
|
|
||||||
show = SHOW_USER;
|
show = SHOW_USER;
|
||||||
level = '.';
|
level = '.';
|
||||||
|
|
Loading…
Reference in a new issue