Commit d8db1b57 authored by Anton Blanchard's avatar Anton Blanchard Committed by Ingo Molnar
Browse files

perf report: Fix reporting of hypervisor



PERF_EVENT_MISC_* is not a bitmask, so we have to mask and compare.

Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Cc: a.p.zijlstra@chello.nl
Cc: paulus@samba.org
LKML-Reference: <20090630230141.088394681@samba.org>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 3a3393ef
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1213,6 +1213,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
	struct map *map = NULL;
	void *more_data = event->ip.__more_data;
	struct ip_callchain *chain = NULL;
	int cpumode;

	if (sample_type & PERF_SAMPLE_PERIOD) {
		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))
		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;
		level = 'k';

@@ -1264,7 +1267,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)

		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;
		level = '.';