perf tools: Speed up thread map generation
authorDon Zickus <dzickus@redhat.com>
Fri, 14 Mar 2014 14:43:44 +0000 (10:43 -0400)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 14 Mar 2014 21:08:41 +0000 (18:08 -0300)
commit363b785f3805a2632eb09a8b430842461c21a640
tree1d6dcd4a3e7c0309c1c19a16ea53c45cd1de5407
parent09a71b97cce70551356b13b668aa1d7d6da84457
perf tools: Speed up thread map generation

When trying to capture perf data on a system running spejbb2013, perf
hung for about 15 minutes.  This is because it took that long to gather
about 10,000 thread maps and process them.

I don't think a user wants to wait that long.

Instead, recognize that thread maps are roughly equivalent to pid maps
and just quickly copy those instead.

To do this, I synthesize 'fork' events, this eventually calls
thread__fork() and copies the maps over.

The overhead goes from 15 minutes down to about a few seconds.

--
V2: based on Jiri's comments, moved malloc up a level
    and made sure the memory was freed

Signed-off-by: Don Zickus <dzickus@redhat.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Joe Mario <jmario@redhat.com>
Link: http://lkml.kernel.org/r/1394808224-113774-1-git-send-email-dzickus@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/event.c