On 22 January 2016 at 00:20, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > On Thu, 21 Jan 2016 14:55:00 -0800 Kees Cook <keescook@xxxxxxxxxxxx> wrote: > >> IIUC, this means that the relocation work done after decompression now >> doesn't have to do relocation updates for all these values, which >> means a smaller relocation table as well. > > Makes sense, thanks. I altered the changelog > > : 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. > : Thanks for taking the patch, but the bit below does not make sense anymore: """ > : The benefit is that such table entries are no longer subject to dynamic > : relocation when the build time so the relocation work done after > : decompression now doesn't have to do relocation updates for all these > : values, which means a smaller relocation table as well. > : > : Also, the runtime offsets of the kernel image are different. Also, on > : 64-bit architectures, it essentially cuts the size of the address table > : in half since offsets can typically be expressed in 32 bits. > : """ In addition to fixing the broken grammar, would it make sense to mention that dynamic relocation only occurs under CONFIG_RELOCATABLE=y? I.e., something like """ 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 table entry, 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. """ Thanks, Ard. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html