NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/52364: System hangs not much before showing the login prompt; changes in VFS suspected
The following reply was made to PR kern/52364; it has been noted by GNATS.
From: "J. Hannken-Illjes" <hannken%eis.cs.tu-bs.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/52364: System hangs not much before showing the login
prompt; changes in VFS suspected
Date: Tue, 4 Jul 2017 10:28:17 +0200
--Apple-Mail=_0CDE0FE9-5A71-4849-B082-21827C920AA6
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=us-ascii
First, this has nothing to do with fs/unionfs, it is dead code and
we use fs/union.
As you are not able to enter commands at the ddb prompt please apply
the attached diff to sys/kern/vfs_vnode.c Rev 1.88. It will now
print diagnostics for every call to vrevoke() like this:
revoke: vnode 0xfffffe8438244e70 flags 0x30<MPSAFE,LOCKSWORK>
<...>
Fstrans locks by lwp:
Fstrans state by mount:
revoke 0xfffffe8438244e70 done
The printout starting at the last "revoke: vnode..." is interesting.
Maybe putting "ddb.commandonenter=trace" into /etc/sysctl.conf would
help too ...
--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig (Germany)
--Apple-Mail=_0CDE0FE9-5A71-4849-B082-21827C920AA6
Content-Disposition: attachment;
filename=vfs_vnode.c.diff
Content-Type: application/octet-stream;
x-unix-mode=0644;
name="vfs_vnode.c.diff"
Content-Transfer-Encoding: 7bit
Index: vfs_vnode.c
===================================================================
RCS file: /cvsroot/src/sys/kern/vfs_vnode.c,v
retrieving revision 1.88
diff -p -u -2 -r1.88 vfs_vnode.c
--- vfs_vnode.c 17 May 2017 12:46:14 -0000 1.88
+++ vfs_vnode.c 4 Jul 2017 08:18:36 -0000
@@ -956,7 +956,11 @@ vrevoke(vnode_t *vp)
enum vtype type;
dev_t dev;
+ extern void fstrans_dump(int);
KASSERT(vp->v_usecount > 0);
+ vprint("revoke", vp);
+ fstrans_dump(0);
+
mp = vp->v_mount;
error = vfs_suspend(mp, 0);
@@ -982,5 +986,7 @@ vrevoke(vnode_t *vp)
if (mp)
vfs_resume(mp);
- mp = vp->v_mount;
+ vprint("revoke2", vq);
+ fstrans_dump(0);
+ mp = vq->v_mount;
error = vfs_suspend(mp, 0);
KASSERT(error == 0 || error == EOPNOTSUPP);
@@ -993,4 +999,5 @@ vrevoke(vnode_t *vp)
if (mp)
vfs_resume(mp);
+ printf("revoke %p done\n", vp);
}
--Apple-Mail=_0CDE0FE9-5A71-4849-B082-21827C920AA6--
Home |
Main Index |
Thread Index |
Old Index