aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-report.c
diff options
context:
space:
mode:
authorAnton Blanchard <anton@samba.org>2009-06-30 19:00:48 -0400
committerIngo Molnar <mingo@elte.hu>2009-06-30 19:25:20 -0400
commitd8db1b57d31a6b30ea2f0df318eab50fc92b38d6 (patch)
treeb45eda25f3f6119c9a306a00da37fa51b01c9f0d /tools/perf/builtin-report.c
parent3a3393ef75a14ae259a82f3f38624efa17884168 (diff)
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>
Diffstat (limited to 'tools/perf/builtin-report.c')
-rw-r--r--tools/perf/builtin-report.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 135b7837e6bf..88e88c510ae5 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -1213,6 +1213,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
1213 struct map *map = NULL; 1213 struct map *map = NULL;
1214 void *more_data = event->ip.__more_data; 1214 void *more_data = event->ip.__more_data;
1215 struct ip_callchain *chain = NULL; 1215 struct ip_callchain *chain = NULL;
1216 int cpumode;
1216 1217
1217 if (sample_type & PERF_SAMPLE_PERIOD) { 1218 if (sample_type & PERF_SAMPLE_PERIOD) {
1218 period = *(u64 *)more_data; 1219 period = *(u64 *)more_data;
@@ -1256,7 +1257,9 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
1256 if (comm_list && !strlist__has_entry(comm_list, thread->comm)) 1257 if (comm_list && !strlist__has_entry(comm_list, thread->comm))
1257 return 0; 1258 return 0;
1258 1259
1259 if (event->header.misc & PERF_EVENT_MISC_KERNEL) { 1260 cpumode = event->header.misc & PERF_EVENT_MISC_CPUMODE_MASK;
1261
1262 if (cpumode == PERF_EVENT_MISC_KERNEL) {
1260 show = SHOW_KERNEL; 1263 show = SHOW_KERNEL;
1261 level = 'k'; 1264 level = 'k';
1262 1265
@@ -1264,7 +1267,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
1264 1267
1265 dprintf(" ...... dso: %s\n", dso->name); 1268 dprintf(" ...... dso: %s\n", dso->name);
1266 1269
1267 } else if (event->header.misc & PERF_EVENT_MISC_USER) { 1270 } else if (cpumode == PERF_EVENT_MISC_USER) {
1268 1271
1269 show = SHOW_USER; 1272 show = SHOW_USER;
1270 level = '.'; 1273 level = '.';