On 03.04.2025 14:02, Andrew Cooper wrote:
> On 01/04/2025 6:56 am, Jan Beulich wrote:
>> Putting a few bytes ahead of page tables isn't very efficient; there's
>> a gap almost worth a full page. To avoid re-ordering of items in the
>> source file, simply put the few small items in sub-section 1, for them
>> to end up after the page tables, followed (in the final binary) by non-
>> page-aligned items from other CUs.
>>
>> Signed-off-by: Jan Beulich <jbeul...@suse.com>
>>
>> --- a/xen/arch/x86/boot/head.S
>> +++ b/xen/arch/x86/boot/head.S
>> @@ -136,6 +136,7 @@ multiboot2_header:
>>  .Lno_nx_msg:   .asciz "ERR: Not an NX-capable CPU!"
>>  
>>          .section .init.data, "aw", @progbits
>> +        .subsection 1 /* Put data here after the page tables (in x86_64.S). 
>> */
>>          .align 4
>>  
>>          .word   0
> 
> Just as a note, this depends on the toolchain baseline bump, so can't be
> backported.
> 
> Clang-11 does now like subsection, so we can remove the !__clang__
> specialisation for UNLIKELY_{START,END}_SECTION.

Funny you should mention that: I did check before even making the change, and
in assembly code we used .subsection already before. We just needed to be
careful about inline assembly. See UNLIKELY_START() vs the two forms of
UNLIKELY_START_SECTION.

Irrespective of that: I had no intention to backport this.

Jan

Reply via email to