Module Name: src Committed By: ad Date: Thu Sep 7 20:05:42 UTC 2023
Modified Files: src/sys/kern: kern_mutex.c kern_rwlock.c src/sys/sys: mutex.h rwlock.h Log Message: Remove dodgy and unused mutex_owner_running() & rw_owner_running(). To generate a diff of this commit: cvs rdiff -u -r1.108 -r1.109 src/sys/kern/kern_mutex.c cvs rdiff -u -r1.71 -r1.72 src/sys/kern/kern_rwlock.c cvs rdiff -u -r1.27 -r1.28 src/sys/sys/mutex.h cvs rdiff -u -r1.18 -r1.19 src/sys/sys/rwlock.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_mutex.c diff -u src/sys/kern/kern_mutex.c:1.108 src/sys/kern/kern_mutex.c:1.109 --- src/sys/kern/kern_mutex.c:1.108 Mon Jul 17 12:54:29 2023 +++ src/sys/kern/kern_mutex.c Thu Sep 7 20:05:42 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_mutex.c,v 1.108 2023/07/17 12:54:29 riastradh Exp $ */ +/* $NetBSD: kern_mutex.c,v 1.109 2023/09/07 20:05:42 ad Exp $ */ /*- * Copyright (c) 2002, 2006, 2007, 2008, 2019 The NetBSD Foundation, Inc. @@ -40,7 +40,7 @@ #define __MUTEX_PRIVATE #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_mutex.c,v 1.108 2023/07/17 12:54:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_mutex.c,v 1.109 2023/09/07 20:05:42 ad Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -752,6 +752,8 @@ mutex_vector_exit(kmutex_t *mtx) * Avoid having to take the turnstile chain lock every time * around. Raise the priority level to splhigh() in order * to disable preemption and so make the following atomic. + * This also blocks out soft interrupts that could set the + * waiters bit. */ { int s = splhigh(); @@ -842,31 +844,6 @@ mutex_owner(wchan_t wchan) } /* - * mutex_owner_running: - * - * Return true if an adaptive mutex is unheld, or held and the owner is - * running on a CPU. For the pagedaemon only - do not document or use - * in other code. - */ -bool -mutex_owner_running(const kmutex_t *mtx) -{ -#ifdef MULTIPROCESSOR - uintptr_t owner; - bool rv; - - MUTEX_ASSERT(mtx, MUTEX_ADAPTIVE_P(mtx->mtx_owner)); - kpreempt_disable(); - owner = mtx->mtx_owner; - rv = !MUTEX_OWNED(owner) || mutex_oncpu(MUTEX_OWNER(owner)); - kpreempt_enable(); - return rv; -#else - return mutex_owner(mtx) == curlwp; -#endif -} - -/* * mutex_ownable: * * When compiled with DEBUG and LOCKDEBUG defined, ensure that Index: src/sys/kern/kern_rwlock.c diff -u src/sys/kern/kern_rwlock.c:1.71 src/sys/kern/kern_rwlock.c:1.72 --- src/sys/kern/kern_rwlock.c:1.71 Mon Jul 17 12:54:29 2023 +++ src/sys/kern/kern_rwlock.c Thu Sep 7 20:05:42 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_rwlock.c,v 1.71 2023/07/17 12:54:29 riastradh Exp $ */ +/* $NetBSD: kern_rwlock.c,v 1.72 2023/09/07 20:05:42 ad Exp $ */ /*- * Copyright (c) 2002, 2006, 2007, 2008, 2009, 2019, 2020 @@ -45,7 +45,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_rwlock.c,v 1.71 2023/07/17 12:54:29 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_rwlock.c,v 1.72 2023/09/07 20:05:42 ad Exp $"); #include "opt_lockdebug.h" @@ -586,7 +586,7 @@ rw_vector_tryenter(krwlock_t *rw, const void rw_downgrade(krwlock_t *rw) { - uintptr_t owner, curthread, newown, next; + uintptr_t owner, newown, next, curthread __diagused; turnstile_t *ts; int rcnt, wcnt; lwp_t *l; @@ -597,9 +597,6 @@ rw_downgrade(krwlock_t *rw) RW_ASSERT(rw, (rw->rw_owner & RW_WRITE_LOCKED) != 0); RW_ASSERT(rw, RW_OWNER(rw) == curthread); RW_UNLOCKED(rw, RW_WRITER); -#if !defined(DIAGNOSTIC) - __USE(curthread); -#endif membar_release(); for (owner = rw->rw_owner;; owner = next) { @@ -801,26 +798,3 @@ rw_owner(wchan_t obj) return (void *)(owner & RW_THREAD); } - -/* - * rw_owner_running: - * - * Return true if a RW lock is unheld, or write held and the owner is - * running on a CPU. For the pagedaemon. - */ -bool -rw_owner_running(const krwlock_t *rw) -{ -#ifdef MULTIPROCESSOR - uintptr_t owner; - bool rv; - - kpreempt_disable(); - owner = rw->rw_owner; - rv = (owner & RW_THREAD) == 0 || rw_oncpu(owner); - kpreempt_enable(); - return rv; -#else - return rw_owner(rw) == curlwp; -#endif -} Index: src/sys/sys/mutex.h diff -u src/sys/sys/mutex.h:1.27 src/sys/sys/mutex.h:1.28 --- src/sys/sys/mutex.h:1.27 Wed Apr 12 06:35:40 2023 +++ src/sys/sys/mutex.h Thu Sep 7 20:05:41 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: mutex.h,v 1.27 2023/04/12 06:35:40 riastradh Exp $ */ +/* $NetBSD: mutex.h,v 1.28 2023/09/07 20:05:41 ad Exp $ */ /*- * Copyright (c) 2002, 2006, 2007, 2008, 2009, 2019 The NetBSD Foundation, Inc. @@ -199,7 +199,6 @@ int mutex_tryenter(kmutex_t *); int mutex_owned(const kmutex_t *); int mutex_ownable(const kmutex_t *); -bool mutex_owner_running(const kmutex_t *); void mutex_obj_init(void); kmutex_t *mutex_obj_alloc(kmutex_type_t, int); Index: src/sys/sys/rwlock.h diff -u src/sys/sys/rwlock.h:1.18 src/sys/sys/rwlock.h:1.19 --- src/sys/sys/rwlock.h:1.18 Sun Jul 9 16:32:28 2023 +++ src/sys/sys/rwlock.h Thu Sep 7 20:05:41 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rwlock.h,v 1.18 2023/07/09 16:32:28 riastradh Exp $ */ +/* $NetBSD: rwlock.h,v 1.19 2023/09/07 20:05:41 ad Exp $ */ /*- * Copyright (c) 2002, 2006, 2007, 2008, 2019, 2020 The NetBSD Foundation, Inc. @@ -84,7 +84,6 @@ typedef struct krwlock krwlock_t; void rw_vector_enter(krwlock_t *, const krw_t); void rw_vector_exit(krwlock_t *); int rw_vector_tryenter(krwlock_t *, const krw_t); -bool rw_owner_running(const krwlock_t *); #endif /* __RWLOCK_PRIVATE */ struct krwlock {