perf symbols: Protect dso cache tree using dso->lock
authorNamhyung Kim <namhyung@kernel.org>
Mon, 18 May 2015 00:30:41 +0000 (09:30 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Mon, 18 May 2015 13:17:37 +0000 (10:17 -0300)
commit8e67b7258e582998ab635bdc3c884d7a8077af5b
tree73f7bd488b5356785f524501900f1e0bc3334e41
parent4a936edc317005e8cd2b501e7865721bec104544
perf symbols: Protect dso cache tree using dso->lock

The dso cache is accessed during dwarf callchain unwind and it might be
processed concurrently.  Protect it under dso->lock.

Note that it doesn't protect dso_cache__find().  I think it's safe to
access to the cache tree without the lock since we don't delete nodes.

It it missed an existing node due to rotation, it'll find it during
dso_cache__insert() anyway.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1431909055-21442-27-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/dso.c