]> git.baikalelectronics.ru Git - kernel.git/commit
perf symbols: Fix endless loop in dso__split_kallsyms_for_kcore
authorJiri Olsa <jolsa@redhat.com>
Mon, 26 Oct 2015 13:51:30 +0000 (14:51 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 28 Oct 2015 14:19:30 +0000 (11:19 -0300)
commitc3e7f94aa148a80a78f69dca0081877e0dcb2055
treeecb640692bb7ab6a73fa92dad82d457aa0fe3bbd
parenteba382a446670e98cf06e7cdcdbc6a38677842cf
perf symbols: Fix endless loop in dso__split_kallsyms_for_kcore

Currently we split symbols based on the map comparison, but symbols are stored
within dso objects and maps could point into same dso objects (kernel maps).

Hence we could end up changing rbtree we are currently iterating and mess it
up. It's easily reproduced on s390x by running:

  $ perf record -a -- sleep 3
  $ perf buildid-list -i perf.data --with-hits

The fix is to compare dso objects instead.

Reported-by: Michael Petlan <mpetlan@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20151026135130.GA26003@krava.brq.redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/symbol.c