perf symbols: Destroy unused symsrcs
authorNamhyung Kim <namhyung@kernel.org>
Thu, 20 Feb 2014 01:32:54 +0000 (10:32 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 24 Feb 2014 14:13:08 +0000 (11:13 -0300)
commit98e9f03bbf2cb21a60f94b8b700eb5d38470819d
tree03b3d01a73f2b631cd7aeea98ab49f7f6a6730ce
parent48c65bda95d692076de7e5eae3188ddae8635dca
perf symbols: Destroy unused symsrcs

Stephane reported that perf report and annotate failed to process data
using lots of (> 500) shared libraries.  It was because of the limit on
number of open files (ulimit -n).

Currently when perf loads a DSO, it'll look for normal and dynamic
symbol tables.  And if it fails to find out both tables, it'll iterate
all of possible symtab types.  But many of them are useless since they
have no additional information and the problem is that it's not closing
those files even though they're not used.  Fix it.

Reported-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1392859976-32760-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/symbol.c