All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denys Vlasenko <vda.linux@googlemail.com>
To: Michal Marek <mmarek@suse.cz>,
	linux-kbuild <linux-kbuild@vger.kernel.org>,
	linux-arch@vger.kernel.org,
	Parisc List <linux-parisc@vger.kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
	Sam Ravnborg <sam@ravnborg.org>, Tim Abbott <tabbott@ksplice.com>,
	Tim Bird <tim.bird@am.sony.com>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	Matt Fleming <matt@console-pimps.org>,
	Arnd Bergmann <arnd@arndb.de>, Anders Kaseorg <andersk@mit.edu>,
	Andi Kleen <andi@firstfloor.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Denys Vlasenko <vda.linux@googlemail.com>
Subject: [PATCH 0/4] function/data-sections
Date: Thu, 29 Jul 2010 01:47:52 +0200	[thread overview]
Message-ID: <1280360876-2571-1-git-send-email-vda.linux@googlemail.com> (raw)

Hi Michal,

Please take this patch series onto linux-kbuild.

Most of work needed for working -ffunction-sections -fdata-sections build
is already in the mainline, but a few bits are still missing.
In order to have a working kernel with this make invocation:
    make KCFLAGS="-ffunction-sections -fdata-sections"
we need these patches:

modpost: support objects with more than 64k sections
    This patch is in -mm, it still did not reach mainline,
    thus resending. Sam suggested some readability improvements.
module linker script: coalesce function and data sections
kernel linker stripts: accomodate function and data sections
boot linker stripts: accomodate function and data sections

Please see individual patches for more detailed changelogs.

A rough idea what sort of size savings are achievable
with section garbage collection:
Kernel:
   text   data    bss     dec    hex filename
8299299 857324 785348 9941971 97b3d3 2.6.35-rc4/vmlinux
7566908 832388 717844 9117140 8b1dd4 2.6.35-rc4-fsgs/vmlinux
  -9.2%  -2.9%  -9.0%   -8.6%
The largest module in the build:
 451009  54640   2224  507873  7bfe1 2.6.35-rc4/fs/xfs/xfs.ko
 450521  54292   2202  507015  7bc87 2.6.35-rc4-fsgs/fs/xfs/xfs.ko
(negligible size change since section garbage collection
for modules is not done. TODO: figure out how to do it)

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>


Denys Vlasenko (4):
  modpost: support objects with more than 64k sections
  module linker script: coalesce sections
  kernel linker stripts: accomodate function and data sections
  boot linker stripts: accomodate function and data sections

 arch/alpha/boot/bootloader.lds               |    6 +-
 arch/arm/boot/bootp/bootp.lds                |    1 +
 arch/cris/boot/compressed/decompress_v10.lds |    3 +
 arch/cris/boot/compressed/decompress_v32.lds |    3 +
 arch/cris/boot/rescue/rescue_v10.lds         |    2 +
 arch/cris/boot/rescue/rescue_v32.lds         |    3 +
 arch/frv/kernel/vmlinux.lds.S                |    1 -
 arch/h8300/boot/compressed/vmlinux.lds       |    2 +
 arch/h8300/boot/compressed/vmlinux.scr       |    1 +
 arch/ia64/hp/sim/boot/bootloader.lds         |    6 +-
 arch/ia64/scripts/check-segrel.lds           |    4 +-
 arch/m32r/boot/compressed/vmlinux.lds.S      |    6 +-
 arch/m32r/boot/compressed/vmlinux.scr        |    1 +
 arch/m68knommu/kernel/vmlinux.lds.S          |    1 +
 arch/mips/lasat/image/romscript.normal       |    1 +
 arch/mn10300/boot/compressed/vmlinux.lds     |    1 +
 arch/parisc/kernel/vmlinux.lds.S             |    1 +
 arch/powerpc/boot/zImage.coff.lds.S          |    2 +
 arch/powerpc/boot/zImage.lds.S               |    2 +
 arch/powerpc/boot/zImage.ps3.lds.S           |    2 +
 arch/sh/boot/compressed/vmlinux.scr          |    1 +
 arch/sh/kernel/vsyscall/vsyscall.lds.S       |    2 +-
 arch/x86/boot/setup.ld                       |    3 +-
 arch/x86/kernel/acpi/realmode/wakeup.lds.S   |    1 +
 arch/x86/kernel/vmlinux.lds.S                |    1 +
 arch/xtensa/boot/boot-elf/boot.lds.S         |    5 +-
 arch/xtensa/boot/boot-redboot/boot.ld        |    5 +-
 include/asm-generic/vmlinux.lds.h            |   18 ++++-
 scripts/mod/file2alias.c                     |    6 +-
 scripts/mod/modpost.c                        |  102 +++++++++++++++++++-------
 scripts/mod/modpost.h                        |   43 +++++++++++
 scripts/module-common.lds                    |   23 ++++++
 32 files changed, 213 insertions(+), 46 deletions(-)


             reply	other threads:[~2010-07-28 23:47 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-28 23:47 Denys Vlasenko [this message]
2010-07-28 23:47 ` [PATCH 1/4] modpost: support objects with more than 64k sections Denys Vlasenko
2010-07-29  0:13   ` Denys Vlasenko
2010-07-28 23:47 ` [PATCH 2/4] module linker script: coalesce function and data sections Denys Vlasenko
2010-07-29  0:25   ` David Howells
2010-07-29  1:24     ` Denys Vlasenko
2010-07-29  9:09       ` David Howells
2010-08-03 13:47   ` Michal Marek
2010-08-06  2:18     ` Denys Vlasenko
2010-07-28 23:47 ` [PATCH 3/4] kernel linker stripts: accomodate " Denys Vlasenko
2010-07-28 23:47 ` [PATCH 4/4] boot " Denys Vlasenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1280360876-2571-1-git-send-email-vda.linux@googlemail.com \
    --to=vda.linux@googlemail.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=andersk@mit.edu \
    --cc=andi@firstfloor.org \
    --cc=arnd@arndb.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=matt@console-pimps.org \
    --cc=mmarek@suse.cz \
    --cc=sam@ravnborg.org \
    --cc=sfr@canb.auug.org.au \
    --cc=tabbott@ksplice.com \
    --cc=tim.bird@am.sony.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.