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 {