OSDN Git Service

x86/xen: Move hypercall_page to top of the file
authorJosh Poimboeuf <jpoimboe@redhat.com>
Fri, 20 Aug 2021 19:31:07 +0000 (12:31 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 15 Sep 2021 13:51:44 +0000 (15:51 +0200)
commitb7b205c3a0bc2b51f83cb793178ccbc12addf275
tree6cab1bfd99a35987d24f692ee218d91e2fae56bb
parent9af9dcf11bda3e2c0e24c1acaacb8685ad974e93
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@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lkml.kernel.org/r/20210820193107.omvshmsqbpxufzkc@treble
arch/x86/xen/xen-head.S