[PATCH v3 0/4] membarrier fixes

From: Andy Lutomirski
Date: Fri Dec 04 2020 - 00:07:50 EST


Various membarrier fixes.

Changes from v2:
- Added reviewed-bys
- Don't rseq_preempt the caller (Mathieu)
- Fix single-thread short circuit (Mathieu)

Changes from v1:
- patch 1: comment fixes from Mathieu
- patch 2: improved comments
- patch 3: split out as a separate patch
- patch 4: now has a proper explanation

Mathieu, I think we have to make sync_core sync the caller. See patch 4.

Andy Lutomirski (4):
x86/membarrier: Get rid of a dubious optimization
membarrier: Add an actual barrier before rseq_preempt()
membarrier: Explicitly sync remote cores when SYNC_CORE is requested
membarrier: Execute SYNC_CORE on the calling thread

arch/x86/include/asm/sync_core.h | 9 ++--
arch/x86/mm/tlb.c | 10 ++++-
kernel/sched/membarrier.c | 77 ++++++++++++++++++++++++--------
3 files changed, 72 insertions(+), 24 deletions(-)

--
2.28.0