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