[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <cover.1623813516.git.luto@kernel.org>
Date: Tue, 15 Jun 2021 20:21:05 -0700
From: Andy Lutomirski <luto@...nel.org>
To: x86@...nel.org
Cc: Dave Hansen <dave.hansen@...el.com>,
LKML <linux-kernel@...r.kernel.org>, linux-mm@...ck.org,
Andrew Morton <akpm@...ux-foundation.org>,
Andy Lutomirski <luto@...nel.org>
Subject: [PATCH 0/8] membarrier cleanups
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
--
2.31.1
Powered by blists - more mailing lists