From: Sven Schnelle <svens@linux.ibm.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: keescook@chromium.org, linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
Sachin Sant <sachinp@linux.ibm.com>,
Yinan Liu <yinan@linux.alibaba.com>,
linuxppc-dev@lists.ozlabs.org, ardb@kernel.org
Subject: Re: [powerpc] ftrace warning kernel/trace/ftrace.c:2068 with code-patching selftests
Date: Thu, 27 Jan 2022 13:04:41 +0100 [thread overview]
Message-ID: <yt9dy231gzae.fsf@linux.ibm.com> (raw)
In-Reply-To: <YfKGKWW5UfZ15kCW@FVFF77S0Q05N> (Mark Rutland's message of "Thu, 27 Jan 2022 11:46:49 +0000")
Mark Rutland <mark.rutland@arm.com> writes:
>> Isn't x86 relocatable in some configurations (e.g. for KASLR)?
>>
>> I can't see how the sort works for those cases, because the mcount_loc entries
>> are absolute, and either:
>>
>> * The sorted entries will get overwritten by the unsorted relocation entries,
>> and won't be sorted.
>>
>> * The sorted entries won't get overwritten, but then the absolute address will
>> be wrong since they hadn't been relocated.
>>
>> How does that work?
From what i've seen when looking into this ftrace sort problem x86 has a
a relocation tool, which is run before final linking: arch/x86/tools/relocs.c
This tools converts all the required relocations to three types:
- 32 bit relocations
- 64 bit relocations
- inverse 32 bit relocations
These are added to the end of the image.
The decompressor then iterates over that array, and just adds/subtracts
the KASLR offset - see arch/x86/boot/compressed/misc.c, handle_relocations()
So IMHO x86 never uses 'real' relocations during boot, and just
adds/subtracts. That's why the order stays the same, and the compile
time sort works.
/Sven
WARNING: multiple messages have this Message-ID (diff)
From: Sven Schnelle <svens@linux.ibm.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Yinan Liu <yinan@linux.alibaba.com>,
Steven Rostedt <rostedt@goodmis.org>,
linuxppc-dev@lists.ozlabs.org,
Sachin Sant <sachinp@linux.ibm.com>,
linux-kernel@vger.kernel.org, ardb@kernel.org,
keescook@chromium.org
Subject: Re: [powerpc] ftrace warning kernel/trace/ftrace.c:2068 with code-patching selftests
Date: Thu, 27 Jan 2022 13:04:41 +0100 [thread overview]
Message-ID: <yt9dy231gzae.fsf@linux.ibm.com> (raw)
In-Reply-To: <YfKGKWW5UfZ15kCW@FVFF77S0Q05N> (Mark Rutland's message of "Thu, 27 Jan 2022 11:46:49 +0000")
Mark Rutland <mark.rutland@arm.com> writes:
>> Isn't x86 relocatable in some configurations (e.g. for KASLR)?
>>
>> I can't see how the sort works for those cases, because the mcount_loc entries
>> are absolute, and either:
>>
>> * The sorted entries will get overwritten by the unsorted relocation entries,
>> and won't be sorted.
>>
>> * The sorted entries won't get overwritten, but then the absolute address will
>> be wrong since they hadn't been relocated.
>>
>> How does that work?
From what i've seen when looking into this ftrace sort problem x86 has a
a relocation tool, which is run before final linking: arch/x86/tools/relocs.c
This tools converts all the required relocations to three types:
- 32 bit relocations
- 64 bit relocations
- inverse 32 bit relocations
These are added to the end of the image.
The decompressor then iterates over that array, and just adds/subtracts
the KASLR offset - see arch/x86/boot/compressed/misc.c, handle_relocations()
So IMHO x86 never uses 'real' relocations during boot, and just
adds/subtracts. That's why the order stays the same, and the compile
time sort works.
/Sven
next prev parent reply other threads:[~2022-01-27 21:45 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-24 9:19 [powerpc] ftrace warning kernel/trace/ftrace.c:2068 with code-patching selftests Sachin Sant
2022-01-24 9:19 ` Sachin Sant
2022-01-24 12:15 ` Yinan Liu
2022-01-24 16:45 ` Steven Rostedt
2022-01-25 3:20 ` Yinan Liu
2022-01-26 14:37 ` Mark Rutland
2022-01-27 11:46 ` Mark Rutland
2022-01-27 11:46 ` Mark Rutland
2022-01-27 12:03 ` Ard Biesheuvel
2022-01-27 12:03 ` Ard Biesheuvel
2022-01-27 12:20 ` Mark Rutland
2022-01-27 12:20 ` Mark Rutland
2022-01-27 12:22 ` Ard Biesheuvel
2022-01-27 12:22 ` Ard Biesheuvel
2022-01-27 12:59 ` Mark Rutland
2022-01-27 12:59 ` Mark Rutland
2022-01-27 13:07 ` Ard Biesheuvel
2022-01-27 13:07 ` Ard Biesheuvel
2022-01-27 13:24 ` Mark Rutland
2022-01-27 13:24 ` Mark Rutland
2022-01-27 13:59 ` Ard Biesheuvel
2022-01-27 13:59 ` Ard Biesheuvel
2022-01-27 14:54 ` Mark Rutland
2022-01-27 14:54 ` Mark Rutland
2022-01-27 15:01 ` Ard Biesheuvel
2022-01-27 15:01 ` Ard Biesheuvel
2022-01-27 12:04 ` Sven Schnelle [this message]
2022-01-27 12:04 ` Sven Schnelle
2022-01-27 12:27 ` Mark Rutland
2022-01-27 12:27 ` Mark Rutland
2022-01-27 12:46 ` Steven Rostedt
2022-01-27 12:46 ` Steven Rostedt
2022-01-27 13:08 ` Mark Rutland
2022-01-27 13:08 ` Mark Rutland
2022-01-27 13:16 ` Sven Schnelle
2022-01-27 13:16 ` Sven Schnelle
2022-01-27 13:33 ` Mark Rutland
2022-01-27 13:33 ` Mark Rutland
2022-01-27 13:55 ` Steven Rostedt
2022-01-27 13:55 ` Steven Rostedt
2022-01-27 14:56 ` Mark Rutland
2022-01-27 14:56 ` Mark Rutland
2022-01-27 16:41 ` Kees Cook
2022-01-27 16:41 ` Kees Cook
2022-01-25 4:00 ` Sachin Sant
2022-01-25 14:28 ` Steven Rostedt
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=yt9dy231gzae.fsf@linux.ibm.com \
--to=svens@linux.ibm.com \
--cc=ardb@kernel.org \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mark.rutland@arm.com \
--cc=rostedt@goodmis.org \
--cc=sachinp@linux.ibm.com \
--cc=yinan@linux.alibaba.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.