jump_label, x86: Allow short NOPs
authorPeter Zijlstra <peterz@infradead.org>
Thu, 6 May 2021 19:34:05 +0000 (21:34 +0200)
committerIngo Molnar <mingo@kernel.org>
Wed, 12 May 2021 12:54:56 +0000 (14:54 +0200)
commitab3257042c26d0cd44793c741e2f89bf38b21fe8
tree1b20008657d1d7ee5681252672e9b7a5cab58431
parente2d9494beff21a26438eb611c260b8a6c2dc4dbf
jump_label, x86: Allow short NOPs

Now that objtool is able to rewrite jump_label instructions, have the
compiler emit a JMP, such that it can decide on the optimal encoding,
and set jump_entry::key bit1 to indicate that objtool should rewrite
the instruction to a matching NOP.

For x86_64-allyesconfig this gives:

  jl\     NOP     JMP
  short:  22997   124
  long:   30874   90

IOW, we save (22997+124) * 3 bytes of kernel text in hotpaths.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20210506194158.216763632@infradead.org
arch/x86/include/asm/jump_label.h