OSDN Git Service

perf tools: Reference count struct map
authorArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 25 May 2015 19:59:56 +0000 (16:59 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 27 May 2015 23:27:30 +0000 (20:27 -0300)
commit84c2cafa288939e11d21c7830e32b2aee21b723e
tree237bef793c61dbb04a090e9bb750f197c5429b39
parentfacf3f0621b2e11957af1aae9085730ea78ccf85
perf tools: Reference count struct map

We have pointers to struct map instances in several places, like in the
hist_entry instances, so we need a way to know when we can destroy them,
otherwise we may either keep leaking them or end up referencing deleted
instances.

Start fixing it by reference counting them.

This patch puts the reference count for struct map in place, replacing
direct map__delete() calls with map__put() ones and then grabbing a
reference count when adding it to the maps struct where maps for a
struct thread are kept.

Next we'll grab reference counts when setting pointers to struct map
instances, in places like in the hist_entry code.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-wi19xczk0t2a41r1i2chuio5@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/machine.c
tools/perf/util/map.c
tools/perf/util/map.h
tools/perf/util/probe-event.c
tools/perf/util/symbol-elf.c
tools/perf/util/symbol.c