From: Jiaxun Yang <jiaxun.yang@flygoat.com>
To: "Fāng-ruì Sòng" <maskray@google.com>,
"Alexander Lobakin" <alobakin@pm.me>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Kees Cook <keescook@chromium.org>, Ingo Molnar <mingo@kernel.org>,
Ralf Baechle <ralf@linux-mips.org>,
Alex Smith <alex.smith@imgtec.com>,
Markos Chandras <markos.chandras@imgtec.com>,
linux-mips <linux-mips@vger.kernel.org>,
"# 3.4.x" <stable@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH mips-next 2/4] MIPS: vmlinux.lds.S: add ".rel.dyn" to DISCARDS
Date: Tue, 5 Jan 2021 16:59:03 +0800 [thread overview]
Message-ID: <2add3f2d-ab2a-1ca3-5e04-d7b66738bfbe@flygoat.com> (raw)
In-Reply-To: <CAFP8O3LA87zyi8f64Sk5g+aLFdYhnZqsEbLC_uTsQk3+6Qus3A@mail.gmail.com>
在 2021/1/5 下午3:39, Fāng-ruì Sòng 写道:
> On Mon, Jan 4, 2021 at 4:21 AM Alexander Lobakin <alobakin@pm.me> wrote:
>> GCC somehow manages to place some of the symbols from main.c into
>> .rel.dyn section:
>>
>> mips-alpine-linux-musl-ld: warning: orphan section `.rel.dyn'
>> from `init/main.o' being placed in section `.rel.dyn'
>>
>> I couldn't catch up the exact symbol, but seems like it's harmless
>> to discard it from the final vmlinux as kernel doesn't use or
>> support dynamic relocations.
>>
>> Misc: sort DISCARDS section entries alphabetically.
>>
>> Signed-off-by: Alexander Lobakin <alobakin@pm.me>
>> ---
>> arch/mips/kernel/vmlinux.lds.S | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
>> index 83e27a181206..1c3c2e903062 100644
>> --- a/arch/mips/kernel/vmlinux.lds.S
>> +++ b/arch/mips/kernel/vmlinux.lds.S
>> @@ -221,9 +221,10 @@ SECTIONS
>> /* ABI crap starts here */
>> *(.MIPS.abiflags)
>> *(.MIPS.options)
>> + *(.eh_frame)
>> *(.options)
>> *(.pdr)
>> *(.reginfo)
>> - *(.eh_frame)
>> + *(.rel.dyn)
>> }
>> }
>> --
>> 2.30.0
>>
>>
> (I don't know why I am on the CC list since I know little about
> mips... Anyway, I know the LLD linker's behavior in case that was the
> intention... )
>
> I think it'd be good to know the reason why these dynamic relocations
> are produced and fix the root cause.
>
> arch/x86/kernel/vmlinux.lds.S asserts no dynamic relocation:
> ASSERT(SIZEOF(.rela.dyn) == 0, "Unexpected run-time relocations
> (.rela) detected!")
Hi all,
Runtime .rela can't be avoided as MIPS kernel can't be built with fPIC.
Our relocatable kernel uses another approach, fixup dynamic relocations
at boot time.
abicalls simply gave us too much overhead on PIC code, which is unacceptable
for kernel.
In my local tests, PIC kernel reduced unix bench results for around 30%.
For MIPS Release6 and afterwards, we may utilize new pcrel instructions to
reduce overhead but for older ISA I don't have any idea.
Thanks.
- Jiaxun
next prev parent reply other threads:[~2021-01-05 9:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-04 12:18 [PATCH mips-next 0/4] MIPS: vmlinux.lds.S sections fix & cleanup Alexander Lobakin
2021-01-04 12:20 ` [PATCH mips-next 1/4] MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section Alexander Lobakin
2021-01-04 12:20 ` [PATCH mips-next 2/4] MIPS: vmlinux.lds.S: add ".rel.dyn" to DISCARDS Alexander Lobakin
2021-01-05 7:39 ` Fāng-ruì Sòng
2021-01-05 8:59 ` Jiaxun Yang [this message]
2021-01-04 12:20 ` [PATCH mips-next 3/4] MIPS: vmlinux.lds.S: add ".gnu.attributes" " Alexander Lobakin
2021-01-04 12:20 ` [PATCH mips-next 4/4] MIPS: select ARCH_WANT_LD_ORPHAN_WARN Alexander Lobakin
2021-01-05 0:09 ` [PATCH mips-next 0/4] MIPS: vmlinux.lds.S sections fix & cleanup Nathan Chancellor
2021-01-06 20:14 ` Alexander Lobakin
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=2add3f2d-ab2a-1ca3-5e04-d7b66738bfbe@flygoat.com \
--to=jiaxun.yang@flygoat.com \
--cc=alex.smith@imgtec.com \
--cc=alobakin@pm.me \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=markos.chandras@imgtec.com \
--cc=maskray@google.com \
--cc=mingo@kernel.org \
--cc=ralf@linux-mips.org \
--cc=stable@vger.kernel.org \
--cc=tsbogend@alpha.franken.de \
/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).