Re: perf: thread is its own parent

From: Don Zickus
Date: Thu Mar 19 2015 - 09:20:58 EST


On Wed, Mar 18, 2015 at 05:56:33PM -0600, David Ahern wrote:
> Don:
>
> In this commit:
>
> commit 363b785f3805a2632eb09a8b430842461c21a640
> Author: Don Zickus <dzickus@xxxxxxxxxx>
> Date: Fri Mar 14 10:43:44 2014 -0400
>
> perf tools: Speed up thread map generation
>
> you made a thread its own parent when synthesizing fork events:
>
> static int perf_event__synthesize_fork(struct perf_tool *tool,
> union perf_event *event, pid_t pid,
> pid_t tgid,
> perf_event__handler_t process,
> struct machine *machine)
> {
> memset(&event->fork, 0, sizeof(event->fork) +
> machine->id_hdr_size);
>
> event->fork.ppid = tgid;
> event->fork.ptid = tgid;
> event->fork.pid = tgid;
> event->fork.tid = pid;
> event->fork.header.type = PERF_RECORD_FORK;
>
>
> Any particular reason or just an oversight?

Hi David,

Honestly I don't recall. The commit log tells you the problem I was trying
to solve. Instead of parsing text strings from /proc/maps/<pid>, I believe
it was waaaay faster to copy the thread maps.

This could have been an oversight. I might have falsely assumed tgid ==
ppid?

Are you finding a problem with it?

Cheers,
Don
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/