Re: [PATCH v2 01/24] x86/xen: Mark cpu_bringup_and_idle() as dead_end_function

From: Peter Zijlstra
Date: Mon Aug 30 2021 - 03:49:14 EST


On Mon, Aug 30, 2021 at 07:55:02AM +0200, Juergen Gross wrote:
> > > From: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> > > Subject: [PATCH] x86/xen: Move hypercall_page to top of the file
> > >
> > > Because hypercall_page is page-aligned, the assembler inexplicably adds
> > > an unreachable jump from after the end of the previous code to the
> > > beginning of hypercall_page.
> > >
> > > That confuses objtool, understandably.  It also creates significant text
> > > fragmentation.  As a result, much of the object file is wasted text
> > > (nops).
> > >
> > > Move hypercall_page to the beginning of the file to both prevent the
> > > text fragmentation and avoid the dead jump instruction.
> > >
> > > $ size /tmp/head_64.before.o /tmp/head_64.after.o
> > >     text       data        bss        dec        hex    filename
> > >    10924     307252       4096     322272      4eae0
> > > /tmp/head_64.before.o
> > >     6823     307252       4096     318171      4dadb
> > > /tmp/head_64.after.o
> > >
> > > Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx
> >
> > Reviewed-by: Juergen Gross <jgross@xxxxxxxx>
>
> Umm, will this be carried through the tip tree, or shall I take it in
> the xen tree?

I have it in the whole x86/objtool/paravirt series. I you want it in the
Xen tree, I'll be happy to drop it from there, although I hope to get
all that merged this cycles somewhere.