2017-07-20 00:17:16

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [RFC 20/22] x86/relocs: Add option to generate 64-bit relocations

<[email protected]>,"Paul E . McKenney" <[email protected]>,Andrew Morton <[email protected]>,Christopher Li <[email protected]>,Dou Liyang <[email protected]>,Masahiro Yamada <[email protected]>,Daniel Borkmann <[email protected]>,Markus Trippelsdorf <[email protected]>,Peter Foley <[email protected]>,Steven Rostedt <[email protected]>,Tim Chen <[email protected]>,Ard Biesheuvel <[email protected]>,Catalin Marinas <[email protected]>,Matthew Wilcox <[email protected]>,Michal Hocko <[email protected]>,Rob Landley <[email protected]>,Jiri Kosina <[email protected]>,"H . J . Lu" <[email protected]>,Paul Bolle <[email protected]>,Baoquan He <[email protected]>,Daniel Micay <[email protected]>,the arch/x86 maintainers <[email protected]>,[email protected],LKML <[email protected]>,[email protected],kvm list <[email protected]>,Linux PM list
<[email protected]>,linux-arch <[email protected]>,[email protected],Kernel Hardening <[email protected]>
From: [email protected]
Message-ID: <[email protected]>

On July 19, 2017 4:25:56 PM PDT, Thomas Garnier <[email protected]> wrote:
>On Wed, Jul 19, 2017 at 4:08 PM, H. Peter Anvin <[email protected]> wrote:
>> On 07/19/17 15:47, Thomas Garnier wrote:
>>> On Wed, Jul 19, 2017 at 3:33 PM, H. Peter Anvin <[email protected]>
>wrote:
>>>> On 07/18/17 15:33, Thomas Garnier wrote:
>>>>> The x86 relocation tool generates a list of 32-bit signed
>integers. There
>>>>> was no need to use 64-bit integers because all addresses where
>above the 2G
>>>>> top of the memory.
>>>>>
>>>>> This change add a large-reloc option to generate 64-bit unsigned
>integers.
>>>>> It can be used when the kernel plan to go below the top 2G and
>32-bit
>>>>> integers are not enough.
>>>>
>>>> Why on Earth? This would only be necessary if the *kernel itself*
>was
>>>> more than 2G, which isn't going to happen for the forseeable
>future.
>>>
>>> Because the relocation integer is an absolute address, not an offset
>>> in the binary. Next iteration, I can try using a 32-bit offset for
>>> everyone.
>>
>> It is an absolute address *as the kernel was originally linked*, for
>> obvious reasons.
>
>Sure when the kernel was just above 0xffffffff80000000, it doesn't
>work when it goes down to 0xffffffff00000000. That's why using an
>offset might make more sense in general.
>
>>
>> -hpa
>>

What is the motivation for changing the pre linked address at all?
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.