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. ~Andrew