Re: [PATCH] perf: Speed up thread map generation

From: Don Zickus
Date: Fri Mar 14 2014 - 09:41:09 EST


On Fri, Mar 14, 2014 at 02:17:35PM +0100, Jiri Olsa wrote:
> On Thu, Mar 13, 2014 at 05:16:37PM -0400, Don Zickus wrote:
>
> SNIP
>
> > + event->fork.ptid = tgid;
> > + event->fork.pid = tgid;
> > + event->fork.tid = pid;
> > + event->fork.header.type = PERF_RECORD_FORK;
> > +
> > + event->fork.header.size = (sizeof(event->fork) + machine->id_hdr_size);
> > +
> > + if (process(tool, event, &synth_sample, machine) != 0)
> > + return -1;
> > +
> > + return 0;
> > +}
> > +
> > int perf_event__synthesize_mmap_events(struct perf_tool *tool,
> > union perf_event *event,
> > pid_t pid, pid_t tgid,
> > @@ -287,6 +309,11 @@ static int __event__synthesize_thread(union perf_event *comm_event,
> > DIR *tasks;
> > struct dirent dirent, *next;
> > pid_t tgid;
> > + union perf_event *fork_event;
> > +
> > + fork_event = malloc(sizeof(fork_event->fork) + machine->id_hdr_size);
> > + if (fork_event == NULL)
> > + return -1;
>
> need to be freed

Doh.

>
> maybe we could move the allocation one level up,
> same as for mmap_event and comm_event

I thought about that too, just seemed silly to pass that through the
function params. Not sure if there are different mallocs from the callers.

I'll respin the patch with this though.

>
> otherwise I think the logic with FORK event is correct

Great!

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/