[PATCH] perf: timechart: handle pthreads correctly

From: Andrew Isaacson
Date: Thu Apr 01 2010 - 16:04:52 EST

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 <adi@xxxxxxxxxx>

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;

Attachment: after.svg.gz
Description: Binary data

Attachment: before.svg.gz
Description: Binary data