[RFC PATCH 12/16] x86/entry: Remove stale membarrier sync core comments
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Fri Nov 13 05:18:59 PST 2026
Two comments state that the membarrier sync core command relies on
the IRET which returns from the IPI handler. This is no longer true
since commit a493d1ca1a03 ("x86/membarrier: Get rid of a dubious
optimization"): sync_core_before_usermode() serializes the core in
the IPI handler.
Remove both comments.
The comment of sync_core_before_usermode() lists the instructions
which return to user-space without serializing the core. Fix a typo
in it ("sysrel") and add ERETU, which FRED uses.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
---
arch/x86/entry/entry_32.S | 5 -----
arch/x86/entry/entry_64.S | 4 ----
arch/x86/include/asm/sync_core.h | 2 +-
3 files changed, 1 insertion(+), 10 deletions(-)
diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
index 92c0b4a94e0a..d47bb08afb24 100644
--- a/arch/x86/entry/entry_32.S
+++ b/arch/x86/entry/entry_32.S
@@ -954,11 +954,6 @@ restore_all_switch_stack:
RESTORE_REGS pop=4 # skip orig_eax/error_code
CLEAR_CPU_BUFFERS
.Lirq_return:
- /*
- * ARCH_HAS_MEMBARRIER_SYNC_CORE rely on IRET core serialization
- * when returning from IPI handler and when returning from
- * scheduler to user-space.
- */
iret
.Lasm_iret_error:
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index 253f0a585927..b8661064232c 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -626,10 +626,6 @@ SYM_INNER_LABEL(restore_regs_and_return_to_kernel, SYM_L_GLOBAL)
#endif
POP_REGS
addq $8, %rsp /* skip regs->orig_ax */
- /*
- * ARCH_HAS_MEMBARRIER_SYNC_CORE rely on IRET core serialization
- * when returning from IPI handler.
- */
#ifdef CONFIG_XEN_PV
SYM_INNER_LABEL(early_xen_iret_patch, SYM_L_GLOBAL)
ANNOTATE_NOENDBR
diff --git a/arch/x86/include/asm/sync_core.h b/arch/x86/include/asm/sync_core.h
index df22113db9cd..0ab91f7e2020 100644
--- a/arch/x86/include/asm/sync_core.h
+++ b/arch/x86/include/asm/sync_core.h
@@ -91,7 +91,7 @@ static __always_inline void sync_core(void)
/*
* Ensure that a core serializing instruction is issued before returning
* to user-mode. x86 implements return to user-space through sysexit,
- * sysrel, and sysretq, which are not core serializing.
+ * sysretl, sysretq and eretu, which are not core serializing.
*/
static inline void sync_core_before_usermode(void)
{
--
2.47.3
More information about the linux-riscv
mailing list