mbox series

[0/8] membarrier cleanups

Message ID cover.1623813516.git.luto@kernel.org (mailing list archive)
Headers show
Series membarrier cleanups | expand

Message

Andy Lutomirski June 16, 2021, 3:21 a.m. UTC
membarrier() is unnecessarily tangled with the core scheduler.  Clean it
up.  While we're at it, remove the documentation and drop the pretence that
SYNC_CORE can ever be a well-defined cross-arch operation.

Andy Lutomirski (8):
  membarrier: Document why membarrier() works
  x86/mm: Handle unlazying membarrier core sync in the arch code
  membarrier: Remove membarrier_arch_switch_mm() prototype in core code
  membarrier: Make the post-switch-mm barrier explicit
  membarrier, kthread: Use _ONCE accessors for task->mm
  powerpc/membarrier: Remove special barrier on mm switch
  membarrier: Remove arm (32) support for SYNC_CORE
  membarrier: Rewrite sync_core_before_usermode() and improve
    documentation

 .../membarrier-sync-core/arch-support.txt     | 68 +++++------------
 arch/arm/Kconfig                              |  1 -
 arch/arm64/include/asm/sync_core.h            | 19 +++++
 arch/powerpc/include/asm/membarrier.h         | 27 -------
 arch/powerpc/include/asm/sync_core.h          | 14 ++++
 arch/powerpc/mm/mmu_context.c                 |  2 -
 arch/x86/Kconfig                              |  1 -
 arch/x86/include/asm/sync_core.h              |  7 +-
 arch/x86/kernel/alternative.c                 |  2 +-
 arch/x86/kernel/cpu/mce/core.c                |  2 +-
 arch/x86/mm/tlb.c                             | 54 ++++++++++---
 drivers/misc/sgi-gru/grufault.c               |  2 +-
 drivers/misc/sgi-gru/gruhandles.c             |  2 +-
 drivers/misc/sgi-gru/grukservices.c           |  2 +-
 fs/exec.c                                     |  2 +-
 include/linux/sched/mm.h                      | 42 +++++-----
 include/linux/sync_core.h                     | 21 -----
 init/Kconfig                                  |  3 -
 kernel/kthread.c                              | 16 +---
 kernel/sched/core.c                           | 44 +++--------
 kernel/sched/membarrier.c                     | 76 +++++++++++++++++--
 21 files changed, 210 insertions(+), 197 deletions(-)
 create mode 100644 arch/arm64/include/asm/sync_core.h
 delete mode 100644 arch/powerpc/include/asm/membarrier.h
 create mode 100644 arch/powerpc/include/asm/sync_core.h
 delete mode 100644 include/linux/sync_core.h