On Fri, Mar 24, 2006 at 01:12:17AM -0800, Andrew Morton wrote:Vivek Goyal <vgoyal@xxxxxxxxxx> wrote:
Hi,
Here is an attempt to implement support for 64 bit resources. This will
enable memory more than 4G to be exported through /proc/iomem, which is used
by kexec/kdump to determine the physical memory layout of the system.
...
We used "make allyesconfig" with CONFIG_DEBUG_INFO=n on 2.6.16-mm1.
i386
----
vmlinux size without patch: 40191425
vmlinux size with path: 40244677
vmlinux size bloat: 52K (.13%)
ugh, that's actually a surprising amount of growth. Could you look into it
a bit more please? Where's it coming from? text? data?
Andrew, most of it seems to be coming from .text. I have pasted few results
below.
A bit of growth in drivers is probably OK, as all machines load a tiny
subset of them. But if it's core kernel, not so good. What is the effect
on allnoconfig?
Here are more compilation results with allnoconfig, allmodconfig and
allyesconfig on i386. I have picked section sizes from the output of readelf.
allnoconfig
----------
vmlinux bloat: 0
.text bloat: 1008 bytes
.data bloat: 672 bytes.
.init.text bloat: 128 bytes
.init.data bloat: 0 bytes
(Not sure why vmlinux size difference is zero, given the fact that few
sections are showing bloated size)
allmodconfig (CONFIG_DEBUG_INFO=n)
------------
vmlinux bloat:4096 bytes
.text bloat: 4064 bytes
.init.text bloat: 470 bytes
.data bloat: 640 bytes
allyesconfig (CONFIG_DEBUG_INFO=n)
-----------
vmlinux size bloat: 52K
.text bloat: 28.5K
.init_text bloat: 5K
.eh_frame bloat: 16K (What's that. Looks big)
.rodata bloat: 152 bytes
.data bloat: 768 bytes