Module Name:    src
Committed By:   riastradh
Date:           Sat Apr  9 23:38:33 UTC 2022

Modified Files:
        src/sys/arch/aarch64/aarch64: pmap.c
        src/sys/arch/alpha/alpha: pmap.c
        src/sys/arch/arm/arm32: pmap.c
        src/sys/arch/hppa/hppa: pmap.c
        src/sys/arch/ia64/ia64: pmap.c
        src/sys/arch/powerpc/oea: pmap.c
        src/sys/arch/sparc/sparc: pmap.c
        src/sys/arch/sparc64/sparc64: pmap.c
        src/sys/dev/hyperv: vmbus.c
        src/sys/dev/marvell: mvxpsec.c
        src/sys/dev/scsipi: atapiconf.c scsiconf.c scsipi_base.c
        src/sys/external/bsd/drm2/linux: linux_stop_machine.c
        src/sys/kern: kern_auth.c kern_exec.c kern_mutex_obj.c kern_resource.c
            kern_rwlock_obj.c kern_sig.c subr_kcpuset.c sys_futex.c uipc_mbuf.c
            vfs_cwd.c vfs_mount.c vfs_vnode.c vfs_wapbl.c
        src/sys/net: if.c
        src/sys/net/npf: npf_nat.c npf_rproc.c npf_tableset.c
        src/sys/uvm: uvm_aobj.c uvm_map.c
        src/sys/uvm/pmap: pmap.c

Log Message:
sys: Use membar_release/acquire around reference drop.

This just goes through my recent reference count membar audit and
changes membar_exit to membar_release and membar_enter to
membar_acquire -- this should make everything cheaper on most CPUs
without hurting correctness, because membar_acquire is generally
cheaper than membar_enter.


To generate a diff of this commit:
cvs rdiff -u -r1.132 -r1.133 src/sys/arch/aarch64/aarch64/pmap.c
cvs rdiff -u -r1.306 -r1.307 src/sys/arch/alpha/alpha/pmap.c
cvs rdiff -u -r1.435 -r1.436 src/sys/arch/arm/arm32/pmap.c
cvs rdiff -u -r1.115 -r1.116 src/sys/arch/hppa/hppa/pmap.c
cvs rdiff -u -r1.41 -r1.42 src/sys/arch/ia64/ia64/pmap.c
cvs rdiff -u -r1.112 -r1.113 src/sys/arch/powerpc/oea/pmap.c
cvs rdiff -u -r1.376 -r1.377 src/sys/arch/sparc/sparc/pmap.c
cvs rdiff -u -r1.315 -r1.316 src/sys/arch/sparc64/sparc64/pmap.c
cvs rdiff -u -r1.16 -r1.17 src/sys/dev/hyperv/vmbus.c
cvs rdiff -u -r1.12 -r1.13 src/sys/dev/marvell/mvxpsec.c
cvs rdiff -u -r1.94 -r1.95 src/sys/dev/scsipi/atapiconf.c
cvs rdiff -u -r1.300 -r1.301 src/sys/dev/scsipi/scsiconf.c
cvs rdiff -u -r1.188 -r1.189 src/sys/dev/scsipi/scsipi_base.c
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/linux/linux_stop_machine.c
cvs rdiff -u -r1.80 -r1.81 src/sys/kern/kern_auth.c
cvs rdiff -u -r1.516 -r1.517 src/sys/kern/kern_exec.c
cvs rdiff -u -r1.8 -r1.9 src/sys/kern/kern_mutex_obj.c
cvs rdiff -u -r1.188 -r1.189 src/sys/kern/kern_resource.c
cvs rdiff -u -r1.6 -r1.7 src/sys/kern/kern_rwlock_obj.c
cvs rdiff -u -r1.403 -r1.404 src/sys/kern/kern_sig.c
cvs rdiff -u -r1.13 -r1.14 src/sys/kern/subr_kcpuset.c
cvs rdiff -u -r1.16 -r1.17 src/sys/kern/sys_futex.c
cvs rdiff -u -r1.245 -r1.246 src/sys/kern/uipc_mbuf.c
cvs rdiff -u -r1.7 -r1.8 src/sys/kern/vfs_cwd.c
cvs rdiff -u -r1.92 -r1.93 src/sys/kern/vfs_mount.c
cvs rdiff -u -r1.141 -r1.142 src/sys/kern/vfs_vnode.c
cvs rdiff -u -r1.111 -r1.112 src/sys/kern/vfs_wapbl.c
cvs rdiff -u -r1.502 -r1.503 src/sys/net/if.c
cvs rdiff -u -r1.51 -r1.52 src/sys/net/npf/npf_nat.c
cvs rdiff -u -r1.21 -r1.22 src/sys/net/npf/npf_rproc.c
cvs rdiff -u -r1.37 -r1.38 src/sys/net/npf/npf_tableset.c
cvs rdiff -u -r1.154 -r1.155 src/sys/uvm/uvm_aobj.c
cvs rdiff -u -r1.392 -r1.393 src/sys/uvm/uvm_map.c
cvs rdiff -u -r1.63 -r1.64 src/sys/uvm/pmap/pmap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/aarch64/aarch64/pmap.c
diff -u src/sys/arch/aarch64/aarch64/pmap.c:1.132 src/sys/arch/aarch64/aarch64/pmap.c:1.133
--- src/sys/arch/aarch64/aarch64/pmap.c:1.132	Sat Apr  2 11:16:06 2022
+++ src/sys/arch/aarch64/aarch64/pmap.c	Sat Apr  9 23:38:31 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.132 2022/04/02 11:16:06 skrll Exp $	*/
+/*	$NetBSD: pmap.c,v 1.133 2022/04/09 23:38:31 riastradh Exp $	*/
 
 /*
  * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.132 2022/04/02 11:16:06 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.133 2022/04/09 23:38:31 riastradh Exp $");
 
 #include "opt_arm_debug.h"
 #include "opt_cpuoptions.h"
@@ -1651,11 +1651,11 @@ pmap_destroy(struct pmap *pm)
 	if (pm == pmap_kernel())
 		panic("cannot destroy kernel pmap");
 
-	membar_exit();
+	membar_release();
 	refcnt = atomic_dec_uint_nv(&pm->pm_refcnt);
 	if (refcnt > 0)
 		return;
-	membar_enter();
+	membar_acquire();
 
 	KASSERT(LIST_EMPTY(&pm->pm_pvlist));
 	pmap_tlb_asid_release_all(pm);

Index: src/sys/arch/alpha/alpha/pmap.c
diff -u src/sys/arch/alpha/alpha/pmap.c:1.306 src/sys/arch/alpha/alpha/pmap.c:1.307
--- src/sys/arch/alpha/alpha/pmap.c:1.306	Sat Apr  9 23:36:22 2022
+++ src/sys/arch/alpha/alpha/pmap.c	Sat Apr  9 23:38:31 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.306 2022/04/09 23:36:22 riastradh Exp $ */
+/* $NetBSD: pmap.c,v 1.307 2022/04/09 23:38:31 riastradh Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001, 2007, 2008, 2020
@@ -135,7 +135,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.306 2022/04/09 23:36:22 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.307 2022/04/09 23:38:31 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1659,11 +1659,11 @@ pmap_destroy(pmap_t pmap)
 		printf("pmap_destroy(%p)\n", pmap);
 #endif
 
-	PMAP_MP(membar_exit());
+	PMAP_MP(membar_release());
 	KASSERT(atomic_load_relaxed(&pmap->pm_count) > 0);
 	if (atomic_dec_uint_nv(&pmap->pm_count) > 0)
 		return;
-	PMAP_MP(membar_enter());
+	PMAP_MP(membar_acquire());
 
 	pt_entry_t *lev1map = pmap_lev1map(pmap);
 

Index: src/sys/arch/arm/arm32/pmap.c
diff -u src/sys/arch/arm/arm32/pmap.c:1.435 src/sys/arch/arm/arm32/pmap.c:1.436
--- src/sys/arch/arm/arm32/pmap.c:1.435	Sat Apr  2 11:16:07 2022
+++ src/sys/arch/arm/arm32/pmap.c	Sat Apr  9 23:38:31 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.435 2022/04/02 11:16:07 skrll Exp $	*/
+/*	$NetBSD: pmap.c,v 1.436 2022/04/09 23:38:31 riastradh Exp $	*/
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -193,7 +193,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.435 2022/04/02 11:16:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.436 2022/04/09 23:38:31 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -5385,7 +5385,7 @@ pmap_destroy(pmap_t pm)
 	/*
 	 * Drop reference count
 	 */
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&pm->pm_refs) > 0) {
 #ifndef ARM_MMU_EXTENDED
 		if (pmap_is_current(pm)) {
@@ -5396,7 +5396,7 @@ pmap_destroy(pmap_t pm)
 #endif
 		return;
 	}
-	membar_enter();
+	membar_acquire();
 
 	/*
 	 * reference count is zero, free pmap resources and then free pmap.

Index: src/sys/arch/hppa/hppa/pmap.c
diff -u src/sys/arch/hppa/hppa/pmap.c:1.115 src/sys/arch/hppa/hppa/pmap.c:1.116
--- src/sys/arch/hppa/hppa/pmap.c:1.115	Sat Mar 12 15:32:31 2022
+++ src/sys/arch/hppa/hppa/pmap.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.115 2022/03/12 15:32:31 riastradh Exp $	*/
+/*	$NetBSD: pmap.c,v 1.116 2022/04/09 23:38:32 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002, 2020 The NetBSD Foundation, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.115 2022/03/12 15:32:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.116 2022/04/09 23:38:32 riastradh Exp $");
 
 #include "opt_cputype.h"
 
@@ -1249,10 +1249,10 @@ pmap_destroy(pmap_t pmap)
 	off_t off;
 #endif
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&pmap->pm_obj.uo_refs) > 0)
 		return;
-	membar_enter();
+	membar_acquire();
 
 #ifdef DIAGNOSTIC
 	uvm_page_array_init(&a, &pmap->pm_obj, 0);

Index: src/sys/arch/ia64/ia64/pmap.c
diff -u src/sys/arch/ia64/ia64/pmap.c:1.41 src/sys/arch/ia64/ia64/pmap.c:1.42
--- src/sys/arch/ia64/ia64/pmap.c:1.41	Sat Mar 12 15:32:31 2022
+++ src/sys/arch/ia64/ia64/pmap.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.41 2022/03/12 15:32:31 riastradh Exp $ */
+/* $NetBSD: pmap.c,v 1.42 2022/04/09 23:38:32 riastradh Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -81,7 +81,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.41 2022/03/12 15:32:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.42 2022/04/09 23:38:32 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -1516,11 +1516,11 @@ pmap_destroy(pmap_t pmap)
 
 	UVMHIST_FUNC(__func__); UVMHIST_CALLED(maphist);
 	UVMHIST_LOG(maphist, "(pm=%p)", pmap, 0, 0, 0);
-	
-	membar_exit();
+
+	membar_release();
 	if (atomic_dec_64_nv(&pmap->pm_refcount) > 0)
 		return;
-	membar_enter();
+	membar_acquire();
 
 	KASSERT(pmap->pm_stats.resident_count == 0);
 	KASSERT(pmap->pm_stats.wired_count == 0);

Index: src/sys/arch/powerpc/oea/pmap.c
diff -u src/sys/arch/powerpc/oea/pmap.c:1.112 src/sys/arch/powerpc/oea/pmap.c:1.113
--- src/sys/arch/powerpc/oea/pmap.c:1.112	Sat Mar 12 15:32:31 2022
+++ src/sys/arch/powerpc/oea/pmap.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.112 2022/03/12 15:32:31 riastradh Exp $	*/
+/*	$NetBSD: pmap.c,v 1.113 2022/04/09 23:38:32 riastradh Exp $	*/
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -63,7 +63,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.112 2022/03/12 15:32:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.113 2022/04/09 23:38:32 riastradh Exp $");
 
 #define	PMAP_NOOPNAMES
 
@@ -1230,9 +1230,9 @@ pmap_reference(pmap_t pm)
 void
 pmap_destroy(pmap_t pm)
 {
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&pm->pm_refs) == 0) {
-		membar_enter();
+		membar_acquire();
 		pmap_release(pm);
 		pool_put(&pmap_pool, pm);
 	}

Index: src/sys/arch/sparc/sparc/pmap.c
diff -u src/sys/arch/sparc/sparc/pmap.c:1.376 src/sys/arch/sparc/sparc/pmap.c:1.377
--- src/sys/arch/sparc/sparc/pmap.c:1.376	Sat Mar 12 15:32:31 2022
+++ src/sys/arch/sparc/sparc/pmap.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.376 2022/03/12 15:32:31 riastradh Exp $ */
+/*	$NetBSD: pmap.c,v 1.377 2022/04/09 23:38:32 riastradh Exp $ */
 
 /*
  * Copyright (c) 1996
@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.376 2022/03/12 15:32:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.377 2022/04/09 23:38:32 riastradh Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -4465,9 +4465,9 @@ pmap_destroy(struct pmap *pm)
 {
 
 	DPRINTF(PDB_DESTROY, "pmap_destroy[%d](%p)", cpu_number(), pm);
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&pm->pm_refcount) == 0) {
-		membar_enter();
+		membar_acquire();
 		pmap_quiet_check(pm);
 		pool_cache_put(&pmap_cache, pm);
 	}

Index: src/sys/arch/sparc64/sparc64/pmap.c
diff -u src/sys/arch/sparc64/sparc64/pmap.c:1.315 src/sys/arch/sparc64/sparc64/pmap.c:1.316
--- src/sys/arch/sparc64/sparc64/pmap.c:1.315	Wed Apr  6 22:48:21 2022
+++ src/sys/arch/sparc64/sparc64/pmap.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.315 2022/04/06 22:48:21 riastradh Exp $	*/
+/*	$NetBSD: pmap.c,v 1.316 2022/04/09 23:38:32 riastradh Exp $	*/
 /*
  *
  * Copyright (C) 1996-1999 Eduardo Horvath.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.315 2022/04/06 22:48:21 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.316 2022/04/09 23:38:32 riastradh Exp $");
 
 #undef	NO_VCACHE /* Don't forget the locked TLB in dostart */
 #define	HWREF
@@ -1510,11 +1510,11 @@ pmap_destroy(struct pmap *pm)
 #endif
 	struct vm_page *pg;
 
-	membar_exit();
+	membar_release();
 	if ((int)atomic_dec_uint_nv(&pm->pm_refs) > 0) {
 		return;
 	}
-	membar_enter();
+	membar_acquire();
 	DPRINTF(PDB_DESTROY, ("pmap_destroy: freeing pmap %p\n", pm));
 #ifdef MULTIPROCESSOR
 	CPUSET_CLEAR(pmap_cpus_active);

Index: src/sys/dev/hyperv/vmbus.c
diff -u src/sys/dev/hyperv/vmbus.c:1.16 src/sys/dev/hyperv/vmbus.c:1.17
--- src/sys/dev/hyperv/vmbus.c:1.16	Sat Mar 12 15:32:31 2022
+++ src/sys/dev/hyperv/vmbus.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: vmbus.c,v 1.16 2022/03/12 15:32:31 riastradh Exp $	*/
+/*	$NetBSD: vmbus.c,v 1.17 2022/04/09 23:38:32 riastradh Exp $	*/
 /*	$OpenBSD: hyperv.c,v 1.43 2017/06/27 13:56:15 mikeb Exp $	*/
 
 /*-
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vmbus.c,v 1.16 2022/03/12 15:32:31 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vmbus.c,v 1.17 2022/04/09 23:38:32 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1452,10 +1452,10 @@ vmbus_channel_detach(struct vmbus_channe
 	KASSERTMSG(ch->ch_refs > 0, "channel%u: invalid refcnt %d",
 	    ch->ch_id, ch->ch_refs);
 
-	membar_exit();
+	membar_release();
 	refs = atomic_dec_uint_nv(&ch->ch_refs);
 	if (refs == 0) {
-		membar_enter();
+		membar_acquire();
 		/* Detach the target channel. */
 		vmbus_devq_enqueue(ch->ch_sc, VMBUS_DEV_TYPE_DETACH, ch);
 	}

Index: src/sys/dev/marvell/mvxpsec.c
diff -u src/sys/dev/marvell/mvxpsec.c:1.12 src/sys/dev/marvell/mvxpsec.c:1.13
--- src/sys/dev/marvell/mvxpsec.c:1.12	Wed Apr  6 22:48:09 2022
+++ src/sys/dev/marvell/mvxpsec.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: mvxpsec.c,v 1.12 2022/04/06 22:48:09 riastradh Exp $	*/
+/*	$NetBSD: mvxpsec.c,v 1.13 2022/04/09 23:38:32 riastradh Exp $	*/
 /*
  * Copyright (c) 2015 Internet Initiative Japan Inc.
  * All rights reserved.
@@ -1551,10 +1551,10 @@ mvxpsec_session_unref(struct mvxpsec_ses
 {
 	uint32_t refs;
 
-	membar_exit();
+	membar_release();
 	refs = atomic_dec_32_nv(&mv_s->refs);
 	if (refs == 0) {
-		membar_enter();
+		membar_acquire();
 		pool_cache_put(mv_s->sc->sc_session_pool, mv_s);
 	}
 }

Index: src/sys/dev/scsipi/atapiconf.c
diff -u src/sys/dev/scsipi/atapiconf.c:1.94 src/sys/dev/scsipi/atapiconf.c:1.95
--- src/sys/dev/scsipi/atapiconf.c:1.94	Sat Mar 12 15:32:32 2022
+++ src/sys/dev/scsipi/atapiconf.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: atapiconf.c,v 1.94 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: atapiconf.c,v 1.95 2022/04/09 23:38:32 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1996, 2001 Manuel Bouyer.  All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atapiconf.c,v 1.94 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atapiconf.c,v 1.95 2022/04/09 23:38:32 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -219,9 +219,9 @@ atapibusdetach(device_t self, int flags)
 	cv_destroy(&chan->chan_cv_comp);
 	cv_destroy(&chan->chan_cv_thr);
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&chan_running(chan)) == 0) {
-		membar_enter();
+		membar_acquire();
 		mutex_destroy(chan_mtx(chan));
 	}
 

Index: src/sys/dev/scsipi/scsiconf.c
diff -u src/sys/dev/scsipi/scsiconf.c:1.300 src/sys/dev/scsipi/scsiconf.c:1.301
--- src/sys/dev/scsipi/scsiconf.c:1.300	Sat Mar 12 16:57:15 2022
+++ src/sys/dev/scsipi/scsiconf.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsiconf.c,v 1.300 2022/03/12 16:57:15 riastradh Exp $	*/
+/*	$NetBSD: scsiconf.c,v 1.301 2022/04/09 23:38:32 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.300 2022/03/12 16:57:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.301 2022/04/09 23:38:32 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -365,9 +365,9 @@ scsibusdetach(device_t self, int flags)
 	cv_destroy(&chan->chan_cv_comp);
 	cv_destroy(&chan->chan_cv_thr);
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&chan_running(chan)) == 0) {
-		membar_enter();
+		membar_acquire();
 		mutex_destroy(chan_mtx(chan));
 	}
 

Index: src/sys/dev/scsipi/scsipi_base.c
diff -u src/sys/dev/scsipi/scsipi_base.c:1.188 src/sys/dev/scsipi/scsipi_base.c:1.189
--- src/sys/dev/scsipi/scsipi_base.c:1.188	Sat Mar 12 15:32:32 2022
+++ src/sys/dev/scsipi/scsipi_base.c	Sat Apr  9 23:38:32 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: scsipi_base.c,v 1.188 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: scsipi_base.c,v 1.189 2022/04/09 23:38:32 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.188 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.189 2022/04/09 23:38:32 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_scsi.h"
@@ -2733,10 +2733,10 @@ void
 scsipi_adapter_delref(struct scsipi_adapter *adapt)
 {
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&adapt->adapt_refcnt) == 0
 	    && adapt->adapt_enable != NULL) {
-		membar_enter();
+		membar_acquire();
 		scsipi_adapter_lock(adapt);
 		(void) scsipi_adapter_enable(adapt, 0);
 		scsipi_adapter_unlock(adapt);

Index: src/sys/external/bsd/drm2/linux/linux_stop_machine.c
diff -u src/sys/external/bsd/drm2/linux/linux_stop_machine.c:1.3 src/sys/external/bsd/drm2/linux/linux_stop_machine.c:1.4
--- src/sys/external/bsd/drm2/linux/linux_stop_machine.c:1.3	Sat Mar 12 15:32:32 2022
+++ src/sys/external/bsd/drm2/linux/linux_stop_machine.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux_stop_machine.c,v 1.3 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: linux_stop_machine.c,v 1.4 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_stop_machine.c,v 1.3 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_stop_machine.c,v 1.4 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/mutex.h> /* XXX work around cycle x86/mutex.h<->x86/intr.h */
 
@@ -59,13 +59,13 @@ stop_machine_xcall(void *a, void *b)
 	s = splhigh();
 
 	/* Note that we're ready, and see whether we're the chosen one.  */
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&S->ncpu) != 0) {
 		while (!atomic_load_acquire(&S->done))
 			SPINLOCK_BACKOFF_HOOK;
 		goto out;
 	}
-	membar_enter();
+	membar_acquire();
 
 	/* It's time.  Call the callback.  */
 	S->callback(S->cookie);

Index: src/sys/kern/kern_auth.c
diff -u src/sys/kern/kern_auth.c:1.80 src/sys/kern/kern_auth.c:1.81
--- src/sys/kern/kern_auth.c:1.80	Sun Mar 27 16:23:08 2022
+++ src/sys/kern/kern_auth.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_auth.c,v 1.80 2022/03/27 16:23:08 christos Exp $ */
+/* $NetBSD: kern_auth.c,v 1.81 2022/04/09 23:38:33 riastradh Exp $ */
 
 /*-
  * Copyright (c) 2005, 2006 Elad Efrat <e...@netbsd.org>
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.80 2022/03/27 16:23:08 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.81 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -145,12 +145,12 @@ kauth_cred_free(kauth_cred_t cred)
 	ASSERT_SLEEPABLE();
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (atomic_dec_uint_nv(&cred->cr_refcnt) > 0)
 		return;
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 
 	kauth_cred_hook(cred, KAUTH_CRED_FREE, NULL, NULL);

Index: src/sys/kern/kern_exec.c
diff -u src/sys/kern/kern_exec.c:1.516 src/sys/kern/kern_exec.c:1.517
--- src/sys/kern/kern_exec.c:1.516	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/kern_exec.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_exec.c,v 1.516 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: kern_exec.c,v 1.517 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2019, 2020 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.516 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.517 2022/04/09 23:38:33 riastradh Exp $");
 
 #include "opt_exec.h"
 #include "opt_execfmt.h"
@@ -2137,10 +2137,10 @@ static void
 spawn_exec_data_release(struct spawn_exec_data *data)
 {
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_32_nv(&data->sed_refcnt) != 0)
 		return;
-	membar_enter();
+	membar_acquire();
 
 	cv_destroy(&data->sed_cv_child_ready);
 	mutex_destroy(&data->sed_mtx_child);

Index: src/sys/kern/kern_mutex_obj.c
diff -u src/sys/kern/kern_mutex_obj.c:1.8 src/sys/kern/kern_mutex_obj.c:1.9
--- src/sys/kern/kern_mutex_obj.c:1.8	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/kern_mutex_obj.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_mutex_obj.c,v 1.8 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: kern_mutex_obj.c,v 1.9 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2019 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_mutex_obj.c,v 1.8 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_mutex_obj.c,v 1.9 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -158,13 +158,13 @@ mutex_obj_free(kmutex_t *lock)
 	     __func__, mo, mo->mo_refcnt);
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (atomic_dec_uint_nv(&mo->mo_refcnt) > 0) {
 		return false;
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 	mutex_destroy(&mo->mo_lock);
 	pool_cache_put(mutex_obj_cache, mo);

Index: src/sys/kern/kern_resource.c
diff -u src/sys/kern/kern_resource.c:1.188 src/sys/kern/kern_resource.c:1.189
--- src/sys/kern/kern_resource.c:1.188	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/kern_resource.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_resource.c,v 1.188 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: kern_resource.c,v 1.189 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1982, 1986, 1991, 1993
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_resource.c,v 1.188 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_resource.c,v 1.189 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -793,11 +793,11 @@ lim_free(struct plimit *lim)
 	struct plimit *sv_lim;
 
 	do {
-		membar_exit();
+		membar_release();
 		if (atomic_dec_uint_nv(&lim->pl_refcnt) > 0) {
 			return;
 		}
-		membar_enter();
+		membar_acquire();
 		if (lim->pl_corename != defcorename) {
 			kmem_free(lim->pl_corename, lim->pl_cnlen);
 		}

Index: src/sys/kern/kern_rwlock_obj.c
diff -u src/sys/kern/kern_rwlock_obj.c:1.6 src/sys/kern/kern_rwlock_obj.c:1.7
--- src/sys/kern/kern_rwlock_obj.c:1.6	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/kern_rwlock_obj.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_rwlock_obj.c,v 1.6 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: kern_rwlock_obj.c,v 1.7 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2009, 2019 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_rwlock_obj.c,v 1.6 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_rwlock_obj.c,v 1.7 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -148,13 +148,13 @@ rw_obj_free(krwlock_t *lock)
 	KASSERT(ro->ro_refcnt > 0);
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (atomic_dec_uint_nv(&ro->ro_refcnt) > 0) {
 		return false;
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 	rw_destroy(&ro->ro_lock);
 	pool_cache_put(rw_obj_cache, ro);

Index: src/sys/kern/kern_sig.c
diff -u src/sys/kern/kern_sig.c:1.403 src/sys/kern/kern_sig.c:1.404
--- src/sys/kern/kern_sig.c:1.403	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/kern_sig.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: kern_sig.c,v 1.403 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: kern_sig.c,v 1.404 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007, 2008, 2019 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.403 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.404 2022/04/09 23:38:33 riastradh Exp $");
 
 #include "opt_execfmt.h"
 #include "opt_ptrace.h"
@@ -311,9 +311,9 @@ void
 sigactsfree(struct sigacts *ps)
 {
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&ps->sa_refcnt) == 0) {
-		membar_enter();
+		membar_acquire();
 		mutex_destroy(&ps->sa_mutex);
 		pool_cache_put(sigacts_cache, ps);
 	}

Index: src/sys/kern/subr_kcpuset.c
diff -u src/sys/kern/subr_kcpuset.c:1.13 src/sys/kern/subr_kcpuset.c:1.14
--- src/sys/kern/subr_kcpuset.c:1.13	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/subr_kcpuset.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: subr_kcpuset.c,v 1.13 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: subr_kcpuset.c,v 1.14 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_kcpuset.c,v 1.13 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_kcpuset.c,v 1.14 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -262,11 +262,11 @@ kcpuset_unuse(kcpuset_t *kcp, kcpuset_t 
 	KASSERT(kc_initialised);
 	KASSERT(kc->kc_refcnt > 0);
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&kc->kc_refcnt) != 0) {
 		return;
 	}
-	membar_enter();
+	membar_acquire();
 	KASSERT(kc->kc_next == NULL);
 	if (lst == NULL) {
 		kcpuset_destroy(kcp);

Index: src/sys/kern/sys_futex.c
diff -u src/sys/kern/sys_futex.c:1.16 src/sys/kern/sys_futex.c:1.17
--- src/sys/kern/sys_futex.c:1.16	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/sys_futex.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: sys_futex.c,v 1.16 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: sys_futex.c,v 1.17 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2018, 2019, 2020 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_futex.c,v 1.16 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_futex.c,v 1.17 2022/04/09 23:38:33 riastradh Exp $");
 
 /*
  * Futexes
@@ -538,7 +538,7 @@ futex_rele(struct futex *f)
 		if (refcnt == 1)
 			goto trylast;
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-		membar_exit();
+		membar_release();
 #endif
 	} while (atomic_cas_ulong(&f->fx_refcnt, refcnt, refcnt - 1) != refcnt);
 	return;
@@ -547,7 +547,7 @@ trylast:
 	mutex_enter(&futex_tab.lock);
 	if (atomic_dec_ulong_nv(&f->fx_refcnt) == 0) {
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-		membar_enter();
+		membar_acquire();
 #endif
 		if (f->fx_on_tree) {
 			if (__predict_false(f->fx_shared))

Index: src/sys/kern/uipc_mbuf.c
diff -u src/sys/kern/uipc_mbuf.c:1.245 src/sys/kern/uipc_mbuf.c:1.246
--- src/sys/kern/uipc_mbuf.c:1.245	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/uipc_mbuf.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: uipc_mbuf.c,v 1.245 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: uipc_mbuf.c,v 1.246 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1999, 2001, 2018 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.245 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uipc_mbuf.c,v 1.246 2022/04/09 23:38:33 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_mbuftrace.h"
@@ -1915,7 +1915,7 @@ m_ext_free(struct mbuf *m)
 		refcnt = m->m_ext.ext_refcnt = 0;
 	} else {
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-		membar_exit();
+		membar_release();
 #endif
 		refcnt = atomic_dec_uint_nv(&m->m_ext.ext_refcnt);
 	}
@@ -1934,7 +1934,7 @@ m_ext_free(struct mbuf *m)
 		 * dropping the last reference
 		 */
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-		membar_enter();
+		membar_acquire();
 #endif
 		if (!embedded) {
 			m->m_ext.ext_refcnt++; /* XXX */

Index: src/sys/kern/vfs_cwd.c
diff -u src/sys/kern/vfs_cwd.c:1.7 src/sys/kern/vfs_cwd.c:1.8
--- src/sys/kern/vfs_cwd.c:1.7	Sat Mar 12 15:32:32 2022
+++ src/sys/kern/vfs_cwd.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_cwd.c,v 1.7 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: vfs_cwd.c,v 1.8 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2008, 2020 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_cwd.c,v 1.7 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_cwd.c,v 1.8 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -138,10 +138,10 @@ void
 cwdfree(struct cwdinfo *cwdi)
 {
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&cwdi->cwdi_refcnt) > 0)
 		return;
-	membar_enter();
+	membar_acquire();
 
 	vrele(cwdi->cwdi_cdir);
 	if (cwdi->cwdi_rdir)

Index: src/sys/kern/vfs_mount.c
diff -u src/sys/kern/vfs_mount.c:1.92 src/sys/kern/vfs_mount.c:1.93
--- src/sys/kern/vfs_mount.c:1.92	Mon Mar 28 12:37:46 2022
+++ src/sys/kern/vfs_mount.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_mount.c,v 1.92 2022/03/28 12:37:46 riastradh Exp $	*/
+/*	$NetBSD: vfs_mount.c,v 1.93 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1997-2020 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.92 2022/03/28 12:37:46 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.93 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -284,13 +284,13 @@ vfs_rele(struct mount *mp)
 {
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (__predict_true((int)atomic_dec_uint_nv(&mp->mnt_refcnt) > 0)) {
 		return;
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 
 	/*

Index: src/sys/kern/vfs_vnode.c
diff -u src/sys/kern/vfs_vnode.c:1.141 src/sys/kern/vfs_vnode.c:1.142
--- src/sys/kern/vfs_vnode.c:1.141	Mon Mar 28 12:37:56 2022
+++ src/sys/kern/vfs_vnode.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_vnode.c,v 1.141 2022/03/28 12:37:56 riastradh Exp $	*/
+/*	$NetBSD: vfs_vnode.c,v 1.142 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1997-2011, 2019, 2020 The NetBSD Foundation, Inc.
@@ -148,7 +148,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.141 2022/03/28 12:37:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.142 2022/04/09 23:38:33 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_pax.h"
@@ -355,7 +355,7 @@ vstate_assert_change(vnode_t *vp, enum v
 	/* Open/close the gate for vcache_tryvget(). */
 	if (to == VS_LOADED) {
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-		membar_exit();
+		membar_release();
 #endif
 		atomic_or_uint(&vp->v_usecount, VUSECOUNT_GATE);
 	} else {
@@ -398,10 +398,10 @@ vstate_change(vnode_t *vp, enum vnode_st
 {
 	vnode_impl_t *vip = VNODE_TO_VIMPL(vp);
 
-	/* Open/close the gate for vcache_tryvget(). */	
+	/* Open/close the gate for vcache_tryvget(). */
 	if (to == VS_LOADED) {
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-		membar_exit();
+		membar_release();
 #endif
 		atomic_or_uint(&vp->v_usecount, VUSECOUNT_GATE);
 	} else {
@@ -736,7 +736,7 @@ vtryrele(vnode_t *vp)
 	u_int use, next;
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	for (use = atomic_load_relaxed(&vp->v_usecount);; use = next) {
 		if (__predict_false((use & VUSECOUNT_MASK) == 1)) {
@@ -836,7 +836,7 @@ retry:
 		}
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 	if (vrefcnt(vp) <= 0 || vp->v_writecount != 0) {
 		vnpanic(vp, "%s: bad ref count", __func__);
@@ -1003,7 +1003,7 @@ out:
 		}
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 
 	if (VSTATE_GET(vp) == VS_RECLAIMED && vp->v_holdcnt == 0) {
@@ -1476,7 +1476,7 @@ vcache_tryvget(vnode_t *vp)
 		    use, (use + 1) | VUSECOUNT_VGET);
 		if (__predict_true(next == use)) {
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-			membar_enter();
+			membar_acquire();
 #endif
 			return 0;
 		}

Index: src/sys/kern/vfs_wapbl.c
diff -u src/sys/kern/vfs_wapbl.c:1.111 src/sys/kern/vfs_wapbl.c:1.112
--- src/sys/kern/vfs_wapbl.c:1.111	Mon Apr  4 19:33:46 2022
+++ src/sys/kern/vfs_wapbl.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_wapbl.c,v 1.111 2022/04/04 19:33:46 andvar Exp $	*/
+/*	$NetBSD: vfs_wapbl.c,v 1.112 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2003, 2008, 2009 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
 #define WAPBL_INTERNAL
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_wapbl.c,v 1.111 2022/04/04 19:33:46 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_wapbl.c,v 1.112 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/bitops.h>
@@ -2273,9 +2273,9 @@ wapbl_inodetrk_free(struct wapbl *wl)
 	/* XXX this KASSERT needs locking/mutex analysis */
 	KASSERT(wl->wl_inohashcnt == 0);
 	hashdone(wl->wl_inohash, HASH_LIST, wl->wl_inohashmask);
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&wapbl_ino_pool_refcount) == 0) {
-		membar_enter();
+		membar_acquire();
 		pool_destroy(&wapbl_ino_pool);
 	}
 }

Index: src/sys/net/if.c
diff -u src/sys/net/if.c:1.502 src/sys/net/if.c:1.503
--- src/sys/net/if.c:1.502	Sat Mar 12 15:32:32 2022
+++ src/sys/net/if.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: if.c,v 1.502 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: if.c,v 1.503 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -90,7 +90,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.502 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if.c,v 1.503 2022/04/09 23:38:33 riastradh Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_inet.h"
@@ -1820,12 +1820,12 @@ ifafree(struct ifaddr *ifa)
 	KASSERTMSG(ifa->ifa_refcnt > 0, "ifa_refcnt=%d", ifa->ifa_refcnt);
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (atomic_dec_uint_nv(&ifa->ifa_refcnt) != 0)
 		return;
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 	free(ifa, M_IFADDR);
 }

Index: src/sys/net/npf/npf_nat.c
diff -u src/sys/net/npf/npf_nat.c:1.51 src/sys/net/npf/npf_nat.c:1.52
--- src/sys/net/npf/npf_nat.c:1.51	Sat Mar 12 15:32:32 2022
+++ src/sys/net/npf/npf_nat.c	Sat Apr  9 23:38:33 2022
@@ -67,7 +67,7 @@
 
 #ifdef _KERNEL
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: npf_nat.c,v 1.51 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: npf_nat.c,v 1.52 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -280,13 +280,13 @@ npf_natpolicy_release(npf_natpolicy_t *n
 	KASSERT(atomic_load_relaxed(&np->n_refcnt) > 0);
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (atomic_dec_uint_nv(&np->n_refcnt) != 0) {
 		return;
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 	KASSERT(LIST_EMPTY(&np->n_nat_list));
 	mutex_destroy(&np->n_lock);

Index: src/sys/net/npf/npf_rproc.c
diff -u src/sys/net/npf/npf_rproc.c:1.21 src/sys/net/npf/npf_rproc.c:1.22
--- src/sys/net/npf/npf_rproc.c:1.21	Sat Mar 12 15:32:32 2022
+++ src/sys/net/npf/npf_rproc.c	Sat Apr  9 23:38:33 2022
@@ -33,7 +33,7 @@
 
 #ifdef _KERNEL
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: npf_rproc.c,v 1.21 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: npf_rproc.c,v 1.22 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -331,13 +331,13 @@ npf_rproc_release(npf_rproc_t *rp)
 	KASSERT(atomic_load_relaxed(&rp->rp_refcnt) > 0);
 
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (atomic_dec_uint_nv(&rp->rp_refcnt) != 0) {
 		return;
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 	/* XXXintr */
 	for (unsigned i = 0; i < rp->rp_ext_count; i++) {

Index: src/sys/net/npf/npf_tableset.c
diff -u src/sys/net/npf/npf_tableset.c:1.37 src/sys/net/npf/npf_tableset.c:1.38
--- src/sys/net/npf/npf_tableset.c:1.37	Sat Mar 12 15:32:32 2022
+++ src/sys/net/npf/npf_tableset.c	Sat Apr  9 23:38:33 2022
@@ -46,7 +46,7 @@
 
 #ifdef _KERNEL
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: npf_tableset.c,v 1.37 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: npf_tableset.c,v 1.38 2022/04/09 23:38:33 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -160,10 +160,10 @@ npf_tableset_destroy(npf_tableset_t *ts)
 
 		if (t == NULL)
 			continue;
-		membar_exit();
+		membar_release();
 		if (atomic_dec_uint_nv(&t->t_refcnt) > 0)
 			continue;
-		membar_enter();
+		membar_acquire();
 		npf_table_destroy(t);
 	}
 	kmem_free(ts, NPF_TABLESET_SIZE(ts->ts_nitems));

Index: src/sys/uvm/uvm_aobj.c
diff -u src/sys/uvm/uvm_aobj.c:1.154 src/sys/uvm/uvm_aobj.c:1.155
--- src/sys/uvm/uvm_aobj.c:1.154	Sat Mar 12 15:32:32 2022
+++ src/sys/uvm/uvm_aobj.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_aobj.c,v 1.154 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: uvm_aobj.c,v 1.155 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1998 Chuck Silvers, Charles D. Cranor and
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_aobj.c,v 1.154 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_aobj.c,v 1.155 2022/04/09 23:38:33 riastradh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_uvmhist.h"
@@ -605,14 +605,14 @@ uao_detach(struct uvm_object *uobj)
 	UVMHIST_LOG(maphist,"  (uobj=%#jx)  ref=%jd",
 	    (uintptr_t)uobj, uobj->uo_refs, 0, 0);
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_exit();
+	membar_release();
 #endif
 	if (atomic_dec_uint_nv(&uobj->uo_refs) > 0) {
 		UVMHIST_LOG(maphist, "<- done (rc>0)", 0,0,0,0);
 		return;
 	}
 #ifndef __HAVE_ATOMIC_AS_MEMBAR
-	membar_enter();
+	membar_acquire();
 #endif
 
 	/*

Index: src/sys/uvm/uvm_map.c
diff -u src/sys/uvm/uvm_map.c:1.392 src/sys/uvm/uvm_map.c:1.393
--- src/sys/uvm/uvm_map.c:1.392	Sat Mar 12 15:32:33 2022
+++ src/sys/uvm/uvm_map.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_map.c,v 1.392 2022/03/12 15:32:33 riastradh Exp $	*/
+/*	$NetBSD: uvm_map.c,v 1.393 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.392 2022/03/12 15:32:33 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_map.c,v 1.393 2022/04/09 23:38:33 riastradh Exp $");
 
 #include "opt_ddb.h"
 #include "opt_pax.h"
@@ -4235,10 +4235,10 @@ uvmspace_free(struct vmspace *vm)
 	UVMHIST_CALLARGS(maphist,"(vm=%#jx) ref=%jd", (uintptr_t)vm,
 	    vm->vm_refcnt, 0, 0);
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&vm->vm_refcnt) > 0)
 		return;
-	membar_enter();
+	membar_acquire();
 
 	/*
 	 * at this point, there should be no other references to the map.

Index: src/sys/uvm/pmap/pmap.c
diff -u src/sys/uvm/pmap/pmap.c:1.63 src/sys/uvm/pmap/pmap.c:1.64
--- src/sys/uvm/pmap/pmap.c:1.63	Sat Mar 12 15:32:32 2022
+++ src/sys/uvm/pmap/pmap.c	Sat Apr  9 23:38:33 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.63 2022/03/12 15:32:32 riastradh Exp $	*/
+/*	$NetBSD: pmap.c,v 1.64 2022/04/09 23:38:33 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.63 2022/03/12 15:32:32 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.64 2022/04/09 23:38:33 riastradh Exp $");
 
 /*
  *	Manages physical address maps.
@@ -690,13 +690,13 @@ pmap_destroy(pmap_t pmap)
 	UVMHIST_FUNC(__func__);
 	UVMHIST_CALLARGS(pmaphist, "(pmap=%#jx)", (uintptr_t)pmap, 0, 0, 0);
 
-	membar_exit();
+	membar_release();
 	if (atomic_dec_uint_nv(&pmap->pm_count) > 0) {
 		PMAP_COUNT(dereference);
 		UVMHIST_LOG(pmaphist, " <-- done (deref)", 0, 0, 0, 0);
 		return;
 	}
-	membar_enter();
+	membar_acquire();
 
 	PMAP_COUNT(destroy);
 	KASSERT(pmap->pm_count == 0);

Reply via email to