Re: [RFC/RFT PATCH 04/19] x86: Make the 64-bit bzImage always physically relocatable

From: H. Peter Anvin

Date: Mon Jan 12 2026 - 07:07:34 EST


On January 12, 2026 2:47:46 AM PST, David Laight <david.laight.linux@xxxxxxxxx> wrote:
>On Sun, 11 Jan 2026 20:01:02 -0800
>"H. Peter Anvin" <hpa@xxxxxxxxx> wrote:
>
>> On 2026-01-08 01:25, Ard Biesheuvel wrote:
>> > On x86_64, the physical placement of the kernel is independent from its
>> > mapping in the 'High Kernel Mapping' range. This means that even a
>> > position dependent kernel built without boot-time relocation support can
>> > run from any suitably aligned physical address, and there is no need to
>> > make this behavior dependent on whether or not the kernel is virtually
>> > relocatable.
>> >
>> > On i386, the situation is different, given that the physical and virtual
>> > load offsets must be equal, and so only a relocatable kernel can be
>> > loaded at a physical address that deviates from its build-time default.
>> >
>> > Clarify this in Kconfig and in the code, and advertise the 64-bit
>> > bzImage as loadable at any physical offset regardless of whether
>> > CONFIG_RELOCATABLE is set. In practice, this makes little difference,
>> > given that it defaults to 'y' and is a prerequisite for EFI_STUB and
>> > RANDOMIZE_BASE, but it will help with some future refactoring of the
>> > relocation code.
>> >
>>
>> I don't see any reason to support non-relocatable kernels anymore. In fact, in
>> a patchset I am working on I have already removed it.
>
>For just 64bit, or 32bit as well?
>The 'bloat' for 32bit will be higher due to the lack of pc-relative
>addressing.
>
> David
>
>>
>> -hpa
>>
>>
>

Either. The bloat is strictly boot time.