On Wed, Jun 28, 2023 at 04:04:35PM -0700, Krister Johansen wrote: > commit 1c249565426e3a9940102c0ba9f63914f7cda73d upstream. > > This problem was encountered on an arm64 system with a lot of memory. > Without kernel debug symbols installed, and with both kcore and kallsyms > available, perf managed to get confused and returned "unknown" for all > of the kernel symbols that it tried to look up. > > On this system, stext fell within the vmalloc segment. The kcore symbol > matching code tries to find the first segment that contains stext and > uses that to replace the segment generated from just the kallsyms > information. In this case, however, there were two: a very large > vmalloc segment, and the text segment. This caused perf to get confused > because multiple overlapping segments were inserted into the RB tree > that holds the discovered segments. However, that alone wasn't > sufficient to cause the problem. Even when we could find the segment, > the offsets were adjusted in such a way that the newly generated symbols > didn't line up with the instruction addresses in the trace. The most > obvious solution would be to consult which segment type is text from > kcore, but this information is not exposed to users. > > Instead, select the smallest matching segment that contains stext > instead of the first matching segment. This allows us to match the text > segment instead of vmalloc, if one is contained within the other. > > Reviewed-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> > Signed-off-by: Krister Johansen <kjlx@xxxxxxxxxxxxxxxxxx> > Cc: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx> > Cc: David Reaver <me@xxxxxxxxxxxxxxx> > Cc: Ian Rogers <irogers@xxxxxxxxxx> > Cc: Jiri Olsa <jolsa@xxxxxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Michael Petlan <mpetlan@xxxxxxxxxx> > Cc: Namhyung Kim <namhyung@xxxxxxxxxx> > Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> > Link: http://lore.kernel.org/lkml/20230125183418.GD1963@xxxxxxxxxxxxxxxxxx > Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> > Signed-off-by: Krister Johansen <kjlx@xxxxxxxxxxxxxxxxxx> > --- > tools/perf/util/symbol.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > Both now queued up, thanks. greg k-h