summaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-timechart.c
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@linux.intel.com>2009-09-20 18:13:28 +0200
committerIngo Molnar <mingo@elte.hu>2009-09-20 19:37:34 +0200
commit4f1202c8e61478984ed2d0df616149faf84c2a7f (patch)
tree540fb2e48d8b55bda2db75a61085908401453ac0 /tools/perf/builtin-timechart.c
parentperf_counter: Fix perf_copy_attr() pointer arithmetic (diff)
downloadlinux-4f1202c8e61478984ed2d0df616149faf84c2a7f.tar.xz
linux-4f1202c8e61478984ed2d0df616149faf84c2a7f.zip
perf timechart: Show the name of the waker/wakee in timechart
Timechart currently shows thin green lines for sending or receiving wakeups. This patch also prints (in a very small font) the name of the process that is being woken/wakes up this process. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> LKML-Reference: <20090920181328.68baa978@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/builtin-timechart.c')
-rw-r--r--tools/perf/builtin-timechart.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 58d737ec8f5e..3f45b8b24e3d 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -752,6 +752,7 @@ static void draw_wakeups(void)
we = wake_events;
while (we) {
int from = 0, to = 0;
+ char *task_from = NULL, *task_to = NULL;
/* locate the column of the waker and wakee */
p = all_data;
@@ -760,10 +761,14 @@ static void draw_wakeups(void)
c = p->all;
while (c) {
if (c->Y && c->start_time <= we->time && c->end_time >= we->time) {
- if (p->pid == we->waker)
+ if (p->pid == we->waker) {
from = c->Y;
- if (p->pid == we->wakee)
+ task_from = c->comm;
+ }
+ if (p->pid == we->wakee) {
to = c->Y;
+ task_to = c->comm;
+ }
}
c = c->next;
}
@@ -776,7 +781,7 @@ static void draw_wakeups(void)
else if (from && to && abs(from - to) == 1)
svg_wakeline(we->time, from, to);
else
- svg_partial_wakeline(we->time, from, to);
+ svg_partial_wakeline(we->time, from, task_from, to, task_to);
we = we->next;
}
}