Thread (18 messages) 18 messages, 7 authors, 2016-01-27

Re: [PATCH 0/4] support for text-relative kallsyms table

From: Ingo Molnar <mingo@kernel.org>
Date: 2016-01-20 10:33:34
Also in: linux-s390, lkml

* Ard Biesheuvel [off-list ref] wrote:
This implements text-relative kallsyms address tables. This was developed as 
part of my series to implement KASLR/CONFIG_RELOCATABLE for arm64, but I think 
it may be beneficial to other architectures as well, so I am presenting it as a 
separate series.

The idea is that on 64-bit builds, it is rather wasteful to use absolute 
addressing for kernel symbols since they are all within a couple of MBs of each 
other. On top of that, the absolute addressing implies that, when the kernel is 
relocated at runtime, each address in the table needs to be fixed up 
individually.

Since all section-relative addresses are already emitted relative to _text, it 
is quite straight-forward to record only the offset, and add the absolute 
address of _text at runtime when referring to the address table.

The reduction ranges from around 250 KB uncompressed vmlinux size and 10 KB 
compressed size (s390) to 3 MB/500 KB for ppc64 (although, in the latter case, 
the reduction in uncompressed size is primarily __init data)
So since kallsyms is in unswappable kernel RAM, the uncompressed size reduction is 
what we care about mostly. How much bootloader load times are impacted is a third 
order concern.

IOW a nice change!

Thanks,

	Ingo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help