From: Alan Modra <amodra@gmail.com>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org,
Stephen Rothwell <sfr@canb.auug.org.au>,
Arnd Bergmann <arnd@arndb.de>, Nicolas Pitre <nico@linaro.org>,
Segher Boessenkool <segher@kernel.crashing.org>
Subject: Re: [PATCH 2/5] kbuild: allow archs to select build for link dead code/data elimination
Date: Sun, 7 Aug 2016 19:27:39 +0930 [thread overview]
Message-ID: <20160807095739.GU20904@bubble.grove.modra.org> (raw)
In-Reply-To: <1470399123-8455-3-git-send-email-npiggin@gmail.com>
On Fri, Aug 05, 2016 at 10:12:00PM +1000, Nicholas Piggin wrote:
> #define TEXT_TEXT \
> ALIGN_FUNCTION(); \
> - *(.text.hot .text .text.fixup .text.unlikely) \
> + *(.text.hot .text .text.fixup .text.unlikely .text.*) \
> *(.ref.text) \
> MEM_KEEP(init.text) \
> MEM_KEEP(exit.text) \
At the risk of being told you (kernel people) have already considerd
this I thought I should mention that the above isn't ideal. (Nor is
gcc's choice of .text.hot for hot sections, which clashes with
--function-sections for a function called "hot" but that's another
story.)
You'd really like all the hot sections and cold sections to be
together, for better cache locality. So the line ought to have been
*(.text.hot) *(.text) *(.text.fixup) *(.text.unlikely)
That would put all .text.hot sections together. Similarly for
.text.unlikely. The trap of course is that this only works if
.text.fixup from one object file can be placed relatively far away
from .text in the same object file.
If it can, then Nicholas' patch should be:
*(.text.hot .text.hot.*) *(.text.unlikely .text.unlikely.*) *(.text .text.*)
If you can't put .text.fixup too far away then you may as well just use
*(.text .text.*)
--
Alan Modra
Australia Development Lab, IBM
next prev parent reply other threads:[~2016-08-07 9:57 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-05 12:11 [RFC][PATCH 0/5] kbuild changes, thin archives, --gc-sections Nicholas Piggin
2016-08-05 12:11 ` Nicholas Piggin
2016-08-05 12:11 ` [PATCH 1/5] kbuild: allow architectures to use thin archives instead of ld -r Nicholas Piggin
2016-08-06 3:50 ` kbuild test robot
2016-08-06 3:50 ` kbuild test robot
2016-08-06 20:10 ` Sam Ravnborg
2016-08-07 1:49 ` Stephen Rothwell
2016-08-07 1:49 ` Stephen Rothwell
2016-08-07 3:34 ` Alan Modra
2016-08-07 4:17 ` Nicolas Pitre
2016-08-07 14:40 ` Sam Ravnborg
2016-08-07 14:40 ` Sam Ravnborg
2016-08-08 3:19 ` Nicholas Piggin
2016-08-08 4:46 ` Sam Ravnborg
2016-08-08 4:46 ` Sam Ravnborg
2016-08-08 3:25 ` Nicholas Piggin
2016-08-08 9:18 ` Arnd Bergmann
2016-08-08 9:18 ` Arnd Bergmann
2016-08-05 12:12 ` [PATCH 2/5] kbuild: allow archs to select build for link dead code/data elimination Nicholas Piggin
2016-08-05 12:12 ` Nicholas Piggin
2016-08-06 20:14 ` Sam Ravnborg
2016-08-08 3:29 ` Nicholas Piggin
2016-08-08 4:49 ` Sam Ravnborg
2016-08-07 5:33 ` Nicolas Pitre
2016-08-08 3:42 ` Nicholas Piggin
2016-08-08 3:42 ` Nicholas Piggin
2016-08-08 4:12 ` Nicolas Pitre
2016-08-08 4:12 ` Nicolas Pitre
2016-08-08 4:27 ` Nicholas Piggin
2016-08-07 9:57 ` Alan Modra [this message]
2016-08-07 9:57 ` Alan Modra
2016-08-07 11:35 ` Andreas Schwab
2016-08-07 11:35 ` Andreas Schwab
2016-08-07 20:26 ` Arnd Bergmann
2016-08-07 23:49 ` Alan Modra
2016-08-07 23:49 ` Alan Modra
2016-08-08 15:14 ` Arnd Bergmann
2016-08-08 23:50 ` Alan Modra
2016-08-09 22:10 ` Arnd Bergmann
2016-08-09 3:16 ` Andi Kleen
2016-08-09 3:16 ` Andi Kleen
2016-08-09 22:29 ` Arnd Bergmann
2016-08-09 22:29 ` Arnd Bergmann
2016-08-09 23:08 ` Andi Kleen
2016-08-10 0:37 ` Andi Kleen
2016-08-10 0:37 ` Andi Kleen
2016-08-05 12:12 ` [PATCH 3/5] kbuild: add arch specific post-module-link pass Nicholas Piggin
2016-08-05 12:12 ` Nicholas Piggin
2016-08-05 13:56 ` Nicholas Piggin
2016-08-06 20:16 ` Sam Ravnborg
2016-08-06 20:16 ` Sam Ravnborg
2016-08-08 3:30 ` Nicholas Piggin
2016-08-08 3:30 ` Nicholas Piggin
2016-08-05 12:12 ` [PATCH 4/5] powerpc: switch to using thin archives Nicholas Piggin
2016-08-05 12:12 ` Nicholas Piggin
2016-08-05 12:12 ` [PATCH 5/5] powerpc/64: use linker dce Nicholas Piggin
2016-08-05 13:32 ` [RFC][PATCH 0/5] kbuild changes, thin archives, --gc-sections Nicholas Piggin
2016-08-05 13:32 ` Nicholas Piggin
2016-08-07 20:23 ` Arnd Bergmann
2016-08-08 3:53 ` Nicholas Piggin
2016-08-08 3:53 ` Nicholas Piggin
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=20160807095739.GU20904@bubble.grove.modra.org \
--to=amodra@gmail.com \
--cc=arnd@arndb.de \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=nico@linaro.org \
--cc=npiggin@gmail.com \
--cc=segher@kernel.crashing.org \
--cc=sfr@canb.auug.org.au \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).