|
@@ -58,12 +58,19 @@ process_sample_event(event_t *event, unsigned long offset, unsigned long head)
|
|
struct dso *dso = NULL;
|
|
struct dso *dso = NULL;
|
|
struct thread *thread;
|
|
struct thread *thread;
|
|
u64 ip = event->ip.ip;
|
|
u64 ip = event->ip.ip;
|
|
|
|
+ u32 cpu = -1;
|
|
u64 period = 1;
|
|
u64 period = 1;
|
|
void *more_data = event->ip.__more_data;
|
|
void *more_data = event->ip.__more_data;
|
|
int cpumode;
|
|
int cpumode;
|
|
|
|
|
|
thread = threads__findnew(event->ip.pid, &threads, &last_match);
|
|
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) {
|
|
if (sample_type & PERF_SAMPLE_PERIOD) {
|
|
period = *(u64 *)more_data;
|
|
period = *(u64 *)more_data;
|
|
more_data += sizeof(u64);
|
|
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
|
|
* field, although it should be the same than this perf
|
|
* event pid
|
|
* event pid
|
|
*/
|
|
*/
|
|
- print_event(0, raw->data, raw->size, 0, thread->comm);
|
|
|
|
|
|
+ print_event(cpu, raw->data, raw->size, 0, thread->comm);
|
|
}
|
|
}
|
|
total += period;
|
|
total += period;
|
|
|
|
|