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);