Re: "Inconsistent kallsyms data" error

From: Paulo Marques
Date: Fri Jul 06 2012 - 07:51:57 EST


Linus Torvalds wrote:
> [...]
> Notice how 'kallsyms_addresses' has the same value, but
> 'kallsyms_num_syms' (and subsequent symbols until the page-aligned
> __end_rodata symbol that gets them back in sync) do not. I have no
> idea *why* this happens, but it definitely does.
>
> It seems the real difference is the size of the "kallsyms_addresses"
> data structure. No idea why, though.
>
> This happens with current git (commit c4aed353b1b0), on an x86-64
> machine running current F17 as of today, with the attached config.
> Maybe that makes somebody else able to recreate this and figure out
> what is so magical about the layout that the exact kernel version and
> config (and likely compiler/binutils versions) matter.
>
> Any ideas? Added a fairly random set of people who get mentioned in
> the linker script commits etc.

Since kallsyms_addresses seems to change size, this means that there
were symbols added in the second pass.

In the past, this usually happened when some symbols are near a section
boundary and the alignment makes them included or excluded from the
kernel symbol tables.

There was a recent thread from David Brown on the arm linux mailing list
("ARM: two possible fixes for the KALLSYMS build problem"). He tracked
down the problem to having empty per_cpu sections on a non-smp build.
The alignment of these sections made the symbols jump around and change
from one build to the next. This particular problem might be ARM
specific, though.

--
Paulo Marques - www.grupopie.com

"I used to be indecisive, but now I'm not so sure."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/