Commit e9ea2fde authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Ingo Molnar

perf-report: Add bare minimum PERF_EVENT_READ parsing

Provide the basic infrastructure to provide per task stats.
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 649c48a9
...@@ -100,6 +100,13 @@ struct lost_event { ...@@ -100,6 +100,13 @@ struct lost_event {
u64 lost; u64 lost;
}; };
struct read_event {
struct perf_event_header header;
u32 pid,tid;
u64 value;
u64 format[3];
};
typedef union event_union { typedef union event_union {
struct perf_event_header header; struct perf_event_header header;
struct ip_event ip; struct ip_event ip;
...@@ -108,6 +115,7 @@ typedef union event_union { ...@@ -108,6 +115,7 @@ typedef union event_union {
struct fork_event fork; struct fork_event fork;
struct period_event period; struct period_event period;
struct lost_event lost; struct lost_event lost;
struct read_event read;
} event_t; } event_t;
static LIST_HEAD(dsos); static LIST_HEAD(dsos);
...@@ -1349,6 +1357,19 @@ static void trace_event(event_t *event) ...@@ -1349,6 +1357,19 @@ static void trace_event(event_t *event)
dprintf(".\n"); dprintf(".\n");
} }
static int
process_read_event(event_t *event, unsigned long offset, unsigned long head)
{
dprintf("%p [%p]: PERF_EVENT_READ: %d %d %Lu\n",
(void *)(offset + head),
(void *)(long)(event->header.size),
event->read.pid,
event->read.tid,
event->read.value);
return 0;
}
static int static int
process_event(event_t *event, unsigned long offset, unsigned long head) process_event(event_t *event, unsigned long offset, unsigned long head)
{ {
...@@ -1373,6 +1394,9 @@ process_event(event_t *event, unsigned long offset, unsigned long head) ...@@ -1373,6 +1394,9 @@ process_event(event_t *event, unsigned long offset, unsigned long head)
case PERF_EVENT_LOST: case PERF_EVENT_LOST:
return process_lost_event(event, offset, head); return process_lost_event(event, offset, head);
case PERF_EVENT_READ:
return process_read_event(event, offset, head);
/* /*
* We dont process them right now but they are fine: * We dont process them right now but they are fine:
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment