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

Reply via email to