16 Mar, 2016
1 commit
-
Similar to how relative extables are implemented, it is possible to emit
the kallsyms table in such a way that it contains offsets relative to
some anchor point in the kernel image rather than absolute addresses.On 64-bit architectures, it cuts the size of the kallsyms address table
in half, since offsets between kernel symbols can typically be expressed
in 32 bits. This saves several hundreds of kilobytes of permanent
.rodata on average. In addition, the kallsyms address table is no
longer subject to dynamic relocation when CONFIG_RELOCATABLE is in
effect, so the relocation work done after decompression now doesn't have
to do relocation updates for all these values. This saves up to 24
bytes (i.e., the size of a ELF64 RELA relocation table entry) per value,
which easily adds up to a couple of megabytes of uncompressed __init
data on ppc64 or arm64. Even if these relocation entries typically
compress well, the combined size reduction of 2.8 MB uncompressed for a
ppc64_defconfig build (of which 2.4 MB is __init data) results in a ~500
KB space saving in the compressed image.Since it is useful for some architectures (like x86) to retain the
ability to emit absolute values as well, this patch also adds support
for capturing both absolute and relative values when
KALLSYMS_ABSOLUTE_PERCPU is in effect, by emitting absolute per-cpu
addresses as positive 32-bit values, and addresses relative to the
lowest encountered relative symbol as negative values, which are
subtracted from the runtime address of this base symbol to produce the
actual address.Support for the above is enabled by default for all architectures except
IA-64 and Tile-GX, whose symbols are too far apart to capture in this
manner.Signed-off-by: Ard Biesheuvel
Tested-by: Guenter Roeck
Reviewed-by: Kees Cook
Tested-by: Kees Cook
Cc: Heiko Carstens
Cc: Michael Ellerman
Cc: Ingo Molnar
Cc: H. Peter Anvin
Cc: Benjamin Herrenschmidt
Cc: Michal Marek
Cc: Rusty Russell
Cc: Arnd Bergmann
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
28 Oct, 2010
6 commits
-
This reverts commit 24a54f7974a616385b96cd939e004592e2cea484.
Stephen Hemminger writes:
> That patch should not be included. It causes more problems than it
> solves, since then there are duplicate file locations which causes
> false duplicate symbol reports.Reported-by: Stephen Hemminger
Signed-off-by: Michal Marek -
Teach namespace checker about some special case files where the
source is in unusual location. This fixes many of the source file
not found errors (more can be added), and also prevents false positives
for functions not being used.Signed-off-by: Stephen Hemminger
Signed-off-by: Michal Marek -
Exclude more symbols from arch/x86/vdso/ and arch/x86/boot/; add some more
linker-defined symbols into exception list; add other cond_syscalls
besides "sys_*".Signed-off-by: Amerigo Wang
Cc: Stephen Hemminger
Cc: Michal Marek
Signed-off-by: Andrew Morton
Signed-off-by: Michal Marek -
1. Teach namespace.pl to understand "V" and "v"
2. cond_syscalls are moved into kernel/sys_ni.cSigned-off-by: Amerigo Wang
Cc: Stephen Hemminger
Cc: Michal Marek
Signed-off-by: Andrew Morton
Signed-off-by: Michal Marek -
Signed-off-by: Stephen Hemminger
Signed-off-by: Amerigo Wang
Cc: Michal Marek
Signed-off-by: Andrew Morton
Signed-off-by: Michal Marek -
File::Find will do chdir automatically, so we need to get the absolute
patch with $File::Find::dir.Reported-by: Stephen Hemminger
Signed-off-by: Amerigo Wang
Cc: Michal Marek
Signed-off-by: Andrew Morton
Signed-off-by: Michal Marek
08 Mar, 2010
1 commit
-
Use local file handle not global.
Make loop and other variables local in scope.Signed-off-by: Stephen Hemminger
Cc: Hui Zhu
Cc: Cong Wang
Cc: Michal Marek
Signed-off-by: Andrew Morton
Signed-off-by: Michal Marek
11 Oct, 2007
1 commit
-
Let namespace.pl look at the correct files.
Signed-off-by: Thomas Gleixner
Signed-off-by: Ingo Molnar
11 Apr, 2006
1 commit
-
Make it executable like it should be. Do the same for other files intended to be
executed by the user - the ones called by the build process needn't be
executable as they already work (as argument to their interpreter).Signed-off-by: Paolo 'Blaisorblade' Giarrusso
Signed-off-by: Sam Ravnborg
27 Feb, 2006
1 commit
-
Using the fixed path to /usr/bin/{nm,objdump} does not allow
CROSS_COMPILE environments to use namespace.pl. This patch causes
namespace.pl to use $NM and $OBJDUMP if defined or fall back to the nm
and objdump found in the path.Signed-off-by: Aaron Brooks
Signed-off-by: Sam Ravnborg
17 Apr, 2005
1 commit
-
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.Let it rip!