[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190628103224.546149747@infradead.org>
Date: Fri, 28 Jun 2019 12:21:15 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: x86@...nel.org, peterz@...radead.org, linux-kernel@...r.kernel.org
Cc: Josh Poimboeuf <jpoimboe@...hat.com>,
Steven Rostedt <rostedt@...dmis.org>,
Masami Hiramatsu <mhiramat@...nel.org>,
Daniel Bristot de Oliveira <bristot@...hat.com>,
Jason Baron <jbaron@...mai.com>, Nadav Amit <namit@...are.com>,
Andy Lutomirski <luto@...nel.org>,
Eugeniy Paltsev <Eugeniy.Paltsev@...opsys.com>,
Vineet Gupta <Vineet.Gupta1@...opsys.com>
Subject: [RFC][PATCH 2/8] jump_label, x86: Strip ASM jump_label support
In prepration for variable size jump_label support; remove all ASM
bits that are not used.
Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
---
arch/x86/entry/calling.h | 2 +-
arch/x86/include/asm/jump_label.h | 28 ++++------------------------
2 files changed, 5 insertions(+), 25 deletions(-)
--- a/arch/x86/entry/calling.h
+++ b/arch/x86/entry/calling.h
@@ -377,7 +377,7 @@ For 32-bit we have the following convent
.macro CALL_enter_from_user_mode
#ifdef CONFIG_CONTEXT_TRACKING
#ifdef CONFIG_JUMP_LABEL
- STATIC_JUMP_IF_FALSE .Lafter_call_\@, context_tracking_enabled, def=0
+ STATIC_BRANCH_FALSE_LIKELY .Lafter_call_\@, context_tracking_enabled
#endif
call enter_from_user_mode
.Lafter_call_\@:
--- a/arch/x86/include/asm/jump_label.h
+++ b/arch/x86/include/asm/jump_label.h
@@ -55,36 +55,16 @@ static __always_inline bool arch_static_
#else /* __ASSEMBLY__ */
-.macro STATIC_JUMP_IF_TRUE target, key, def
+.macro STATIC_BRANCH_FALSE_LIKELY target, key
.Lstatic_jump_\@:
- .if \def
/* Equivalent to "jmp.d32 \target" */
.byte 0xe9
- .long \target - .Lstatic_jump_after_\@
-.Lstatic_jump_after_\@:
- .else
- .byte STATIC_KEY_INIT_NOP
- .endif
- .pushsection __jump_table, "aw"
- _ASM_ALIGN
- .long .Lstatic_jump_\@ - ., \target - .
- _ASM_PTR \key - .
- .popsection
-.endm
+ .long \target - (. + 4)
-.macro STATIC_JUMP_IF_FALSE target, key, def
-.Lstatic_jump_\@:
- .if \def
- .byte STATIC_KEY_INIT_NOP
- .else
- /* Equivalent to "jmp.d32 \target" */
- .byte 0xe9
- .long \target - .Lstatic_jump_after_\@
-.Lstatic_jump_after_\@:
- .endif
.pushsection __jump_table, "aw"
_ASM_ALIGN
- .long .Lstatic_jump_\@ - ., \target - .
+ .long .Lstatic_jump_\@ - .
+ .long \target - .
_ASM_PTR \key + 1 - .
.popsection
.endm
Powered by blists - more mailing lists