Patch "perf symbols: Fixup symbol sizes before picking best ones" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
perf symbols: Fixup symbol sizes before picking best ones
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
perf-symbols-fixup-symbol-sizes-before-picking-best-ones.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
432746f8e0b6a82ba832b771afe31abd51af6752Mon Sep 17 00:00:00 2001
From: Arnaldo Carvalho de Melo <[email protected]>
Date: Thu, 1 Sep 2016 11:00:23 -0300
Subject: perf symbols: Fixup symbol sizes before picking best ones
From: Arnaldo Carvalho de Melo <[email protected]>
commit 432746f8e0b6a82ba832b771afe31abd51af6752 upstream.
When we call symbol__fixup_duplicate() we use algorithms to pick the "best" symbols for cases where there are various functions/aliases to an address, and those check zero size symbols, which, before calling symbol__fixup_end() are _all_ symbols in a just parsed kallsyms file.
So first fixup the end, then fixup the duplicates.
Found while trying to figure out why 'perf test vmlinux' failed, see the output of 'perf test -v vmlinux' to see cases where the symbols picked as best for vmlinux don't match the ones picked for kallsyms.
--- tools/perf/util/symbol-elf.c | 2 +- tools/perf/util/symbol.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
tools/perf/util/symbol-elf.c +1 -1
@@ -1091,8 +1091,8 @@ new_symbol:* For misannotated, zeroed, ASM function sizes. */ if (nr >0 ) { -symbols__fixup_duplicate (&dso->symbols[map->type]);symbols__fixup_end (&dso->symbols[map->type]); +symbols__fixup_duplicate (&dso->symbols[map->type]);if (kmap) {/* * We need to fixup this here too because we create new
tools/perf/util/symbol.c +1 -1
@@ -1278,8 +1278,8 @@ int dso__load_kallsyms(struct dso *dso,if (kallsyms__delta (map, filename, &delta))return -1 ; -symbols__fixup_duplicate (&dso->symbols[map->type]);symbols__fixup_end (&dso->symbols[map->type]); +symbols__fixup_duplicate (&dso->symbols[map->type]);if (dso->kernel ==DSO_TYPE_GUEST_KERNEL ) dso->symtab_type =DSO_BINARY_TYPE__GUEST_KALLSYMS ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/perf-hists-browser-fix-event-group-display.patch queue-4.4/perf-symbols-check-symbol_conf.allow_aliases-for-kallsyms-loading-too.patch queue-4.4/perf-stat-fix-interval-output-values.patch queue-4.4/perf-symbols-fixup-symbol-sizes-before-picking-best-ones.patch