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

From: Juergen Gross
Date: Mon Aug 30 2021 - 03:56:07 EST


On 30.08.21 09:48, Peter Zijlstra wrote:
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.


Okay, I think it is better kept in your series then.


Juergen

Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature