summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMerlin Scholz <merlin@scholz.ruhr>2023-07-27 13:32:02 +0200
committerMerlin Scholz <merlin@scholz.ruhr>2023-07-27 13:32:02 +0200
commit365daf5cefc0591283d5625e2e15b7e532568c33 (patch)
tree63d420953853ccb939a0a1f8afaee685921a365a
parentdd242573de8cb41e160a4ac9f742319cf4064e97 (diff)
Add separate kernel flag for VFS testslockdoc-10.99.5-vfs-0.2
-rw-r--r--sys/arch/i386/conf/LOCKDOC1
-rw-r--r--sys/kern/vfs_vnode.c18
2 files changed, 10 insertions, 9 deletions
diff --git a/sys/arch/i386/conf/LOCKDOC b/sys/arch/i386/conf/LOCKDOC
index e8efed405b0..f805274a542 100644
--- a/sys/arch/i386/conf/LOCKDOC
+++ b/sys/arch/i386/conf/LOCKDOC
@@ -114,6 +114,7 @@ options BUFQ_PRIOCSCAN
options DEBUG # expensive debugging checks/support
#options LOCKDEBUG # expensive locking checks/support
options LOCKDOC # LOCKDOC test support
+options LOCKDOC_VFS # LOCKDOC VFS intrumentation
#options DDB # in-kernel debugger
#options DDB_ONPANIC=1 # see also sysctl(7): `ddb.onpanic'
#options DDB_HISTORY_SIZE=512 # enable history editing in DDB
diff --git a/sys/kern/vfs_vnode.c b/sys/kern/vfs_vnode.c
index df74282dff0..cc756763357 100644
--- a/sys/kern/vfs_vnode.c
+++ b/sys/kern/vfs_vnode.c
@@ -183,7 +183,7 @@ __KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.149 2023/02/24 11:02:27 riastradh Ex
#include <uvm/uvm_readahead.h>
#include <uvm/uvm_stat.h>
-#ifdef LOCKDOC
+#ifdef LOCKDOC_VFS
/*
* LOCKDOC TODO: Right now, only completely free'd vnodes are being logged
* as free'd by FAIL*. Evaluate, whether recycled vnodes need to be handled
@@ -460,10 +460,10 @@ vnalloc_marker(struct mount *mp)
vp->v_klist = &vip->vi_klist;
vip->vi_state = VS_MARKER;
-#ifdef LOCKDOC
+#ifdef LOCKDOC_VFS
lockdoc_log_memory(1, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(1, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
- lockdoc_log_memory(1, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
+ lockdoc_log_memory(1, "krwlock_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
return vp;
@@ -480,10 +480,10 @@ vnfree_marker(vnode_t *vp)
vip = VNODE_TO_VIMPL(vp);
KASSERT(vip->vi_state == VS_MARKER);
-#ifdef LOCKDOC
+#ifdef LOCKDOC_VFS
lockdoc_log_memory(0, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(0, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
- lockdoc_log_memory(0, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
+ lockdoc_log_memory(0, "krwlock_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
mutex_obj_free(vp->v_interlock);
@@ -1412,10 +1412,10 @@ vcache_alloc(void)
lru_requeue(vp, &lru_list[LRU_FREE]);
-#ifdef LOCKDOC
+#ifdef LOCKDOC_VFS
lockdoc_log_memory(1, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(1, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
- lockdoc_log_memory(1, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
+ lockdoc_log_memory(1, "krwlock_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
return vip;
@@ -1470,10 +1470,10 @@ vcache_free(vnode_impl_t *vip)
if (vp->v_type == VBLK || vp->v_type == VCHR)
spec_node_destroy(vp);
-#ifdef LOCKDOC
+#ifdef LOCKDOC_VFS
lockdoc_log_memory(0, "vnode_impl", vip, sizeof(*vip));
lockdoc_log_memory(0, "kmutex_t", vp->v_interlock, sizeof(*(vp->v_interlock)));
- lockdoc_log_memory(0, "kmutex_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
+ lockdoc_log_memory(0, "krwlock_t", vp->v_uobj.vmobjlock, sizeof(*(vp->v_uobj.vmobjlock)));
#endif
mutex_obj_free(vp->v_interlock);