lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ