From: Sam Ravnborg <sam@ravnborg.org>
To: Markus Trippelsdorf <markus@trippelsdorf.de>
Cc: Ralf Baechle <ralf@linux-mips.org>,
Josh Triplett <josh@joshtriplett.org>,
Ingo Molnar <mingo@kernel.org>, Andi Kleen <ak@linux.intel.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Michal Marek <mmarek@suse.cz>,
Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
John Crispin <blogic@openwrt.org>
Subject: Re: [GIT] kbuild/lto changes for 3.15-rc1
Date: Tue, 15 Apr 2014 20:19:45 +0200 [thread overview]
Message-ID: <20140415181945.GA22608@ravnborg.org> (raw)
In-Reply-To: <20140415113602.GB283@x4>
On Tue, Apr 15, 2014 at 01:36:02PM +0200, Markus Trippelsdorf wrote:
> On 2014.04.15 at 13:19 +0200, Sam Ravnborg wrote:
> > >
> > > And while the code size reduction is less for MIPS than what others have
> > > reported for their platforms (I'm still investigating) is still is enough
> > > that embedded developers would commit murder for.
> >
> > I have experimented a little with a patch that links all of vmlinux in one step.
> > I compared the text size of vmlinux without and with -ffunction-sections.
> >
> > With a defconfig build on x86 (32 bit) I got following results:
> >
> > size difference
> > singlelink 10266506
> > function-sections 9487369 779137 7,5%
> >
> > So this is a reduction of ~800 kb by enabling -ffunction-sections which
> > allows the linker to throw away unused sections.
> >
> > I have not boot tested the kernel so chances are that too much was thrown out by the linker.
> > But this is an option that has much smaller cost to use than lto.
> > And seems to benefit nicely in size.
> >
> > I have not tried this wihtout my singlelink patch - but I assume similar results.
>
> No, it wouldn't work, because you cannot mix -r and --gc-sections (or
> gold's --icf (identical code folding)).
With make allnoconfig I see a 5% decrease in text size by applying -ffunction-sections.
This is with latest mainline and no other than the following applied:
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 602f57e..51bac0a 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -171,6 +171,8 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
KBUILD_CFLAGS += $(call cc-option,-mno-avx,)
+KBUILD_CFLAGS += -ffunction-sections
+
KBUILD_CFLAGS += $(mflags-y)
KBUILD_AFLAGS += $(mflags-y)
What can then explain this size difference?
Sam
next prev parent reply other threads:[~2014-04-15 18:19 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-07 20:19 [GIT] kbuild/lto changes for 3.15-rc1 Michal Marek
2014-04-07 20:59 ` Andi Kleen
2014-04-08 15:26 ` Linus Torvalds
2014-04-08 20:49 ` josh
2014-04-08 22:44 ` Linus Torvalds
2014-04-09 1:35 ` Andi Kleen
2014-04-09 6:01 ` Ingo Molnar
2014-04-09 8:17 ` Markus Trippelsdorf
2014-04-14 10:32 ` Ingo Molnar
2014-04-14 10:46 ` Markus Trippelsdorf
2014-04-14 10:55 ` Ingo Molnar
2014-04-15 1:00 ` Josh Triplett
2014-04-15 1:52 ` Andi Kleen
2014-04-15 6:00 ` Ingo Molnar
2014-04-15 9:36 ` Ralf Baechle
2014-04-15 11:19 ` Sam Ravnborg
2014-04-15 11:36 ` Markus Trippelsdorf
2014-04-15 18:19 ` Sam Ravnborg [this message]
2014-04-15 18:29 ` Markus Trippelsdorf
2014-04-16 6:49 ` Ingo Molnar
2014-04-09 15:40 ` Andi Kleen
2014-04-08 22:49 ` Andi Kleen
2014-04-09 0:10 ` Jan Hubicka
2014-04-09 1:23 ` Andi Kleen
2014-04-09 0:14 ` Tim Bird
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=20140415181945.GA22608@ravnborg.org \
--to=sam@ravnborg.org \
--cc=ak@linux.intel.com \
--cc=blogic@openwrt.org \
--cc=josh@joshtriplett.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=markus@trippelsdorf.de \
--cc=mingo@kernel.org \
--cc=mmarek@suse.cz \
--cc=ralf@linux-mips.org \
--cc=torvalds@linux-foundation.org \
/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.