Changes since v3 ([1]): - amend documentation Changes since v2 ([2]): - amend inline comments - drop ARCH_HAS_MEMBARRIER, create membarrrier.rst Changes since v1 ([3]): - add smp_mb() in switch_mm() - introduce ARCH_HAS_MEMBARRIER, amend documentation Changes since RFC ([4]): - introduce prepare_sync_core_cmd() - fix nosmp builds [1] https://lore.kernel.org/lkml/20240110145533.60234-1-parri.andrea@xxxxxxxxx/ [2] https://lore.kernel.org/lkml/20231211094414.8078-1-parri.andrea@xxxxxxxxx/ [3] https://lore.kernel.org/lkml/20231127103235.28442-1-parri.andrea@xxxxxxxxx/ [4] https://lore.kernel.org/lkml/20230803040111.5101-1-parri.andrea@xxxxxxxxx/ Andrea Parri (4): membarrier: riscv: Add full memory barrier in switch_mm() membarrier: Create Documentation/scheduler/membarrier.rst locking: Introduce prepare_sync_core_cmd() membarrier: riscv: Provide core serializing command .../membarrier-sync-core/arch-support.txt | 18 ++++++- Documentation/scheduler/index.rst | 1 + Documentation/scheduler/membarrier.rst | 39 +++++++++++++++ MAINTAINERS | 4 +- arch/riscv/Kconfig | 4 ++ arch/riscv/include/asm/membarrier.h | 50 +++++++++++++++++++ arch/riscv/include/asm/sync_core.h | 29 +++++++++++ arch/riscv/mm/context.c | 2 + include/linux/sync_core.h | 16 +++++- init/Kconfig | 3 ++ kernel/sched/core.c | 16 ++++-- kernel/sched/membarrier.c | 13 +++-- 12 files changed, 185 insertions(+), 10 deletions(-) create mode 100644 Documentation/scheduler/membarrier.rst create mode 100644 arch/riscv/include/asm/membarrier.h create mode 100644 arch/riscv/include/asm/sync_core.h -- 2.34.1