]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - tools/perf/builtin-trace.c
perf trace: Sample the CPU too
[mv-sheeva.git] / tools / perf / builtin-trace.c
index 8247fd04745a7f6274414d95654262d4206d44aa..bbe4c444ef8fa4692c33c523a2ea2a4744628a67 100644 (file)
@@ -58,12 +58,19 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
        struct dso *dso = NULL;
        struct thread *thread;
        u64 ip = event->ip.ip;
+       u32 cpu = -1;
        u64 period = 1;
        void *more_data = event->ip.__more_data;
        int cpumode;
 
        thread = threads__findnew(event->ip.pid, &threads, &last_match);
 
+       if (sample_type & PERF_SAMPLE_CPU) {
+               cpu = *(u32 *)more_data;
+               more_data += sizeof(u32);
+               more_data += sizeof(u32); /* reserved */
+       }
+
        if (sample_type & PERF_SAMPLE_PERIOD) {
                period = *(u64 *)more_data;
                more_data += sizeof(u64);
@@ -120,7 +127,7 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
                 * field, although it should be the same than this perf
                 * event pid
                 */
-               print_event(0, raw->data, raw->size, 0, thread->comm);
+               print_event(cpu, raw->data, raw->size, 0, thread->comm);
        }
        total += period;