2010-04-01 20:04:48

by Andrew Isaacson

[permalink] [raw]
Subject: [PATCH] perf: timechart: handle pthreads correctly

pthreads applications have multiple processes with the same "pid" but
different "tid" values. This confuses timechart, because it's using
the "pid" value to track processes.

Switch to using "tid" to avoid this confusion. For non-pthreads
applications tid == pid so there's no downside.

Signed-off-by: Andy Isaacson <[email protected]>

---
I've attached a before.svg.gz and after.svg.gz showing the failure.

diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 0d4d8ff..5b925de 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -286,7 +286,7 @@ static int process_comm_event(event_t *event, struct perf_session *session __use

static int process_fork_event(event_t *event, struct perf_session *session __used)
{
- pid_fork(event->fork.pid, event->fork.ppid, event->fork.time);
+ pid_fork(event->fork.tid, event->fork.ppid, event->fork.time);
return 0;
}


Attachments:
(No filename) (928.00 B)
after.svg.gz (12.16 kB)
before.svg.gz (10.48 kB)
Download all attachments