Date: Thu, 28 Mar 2002 09:45:09 -0500 (EST) From: John Baldwin <jhb@FreeBSD.org> To: Poul-Henning Kamp <phk@freebsd.org> Cc: current@freebsd.org Subject: RE: Surefire -current panic... Message-ID: <XFMail.20020328094509.jhb@FreeBSD.org> In-Reply-To: <43760.1017325790@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
On 28-Mar-2002 Poul-Henning Kamp wrote: > > On a diskless machine: > ktrace ntpdate -d $someserver > gives an sure-fire panic: > > ../../../kern/kern_synch.c:429: sleeping with "process lock" locked from > ../../. > ./kern/subr_trap.c:76 > Debugger("witness_sleep") > Stopped at Debugger+0x40: xorl %eax,%eax > db> trace > Debugger(c02f20c0) at Debugger+0x40 > witness_sleep(0,0,c02eeef8,1ad) at witness_sleep+0xfb > msleep(ccdfd2d8,0,4d,c02fbfce,0) at msleep+0x72 > nfs_flush(ccdfd294,cce37980,1,cce25700,1) at nfs_flush+0x663 > nfs_fsync(cce5cab4) at nfs_fsync+0x19 > vinvalbuf(ccdfd294,1,cce37980,cce25700,0,0) at vinvalbuf+0x9f > nfs_vinvalbuf(ccdfd294,1,cce37980,cce25700,1) at nfs_vinvalbuf+0x114 > nfs_write(cce5cbec,ccde6a40,cce25600,cce25888,cce5cbec) at nfs_write+0x120 > ktrwrite(ccdfd294,ccde6a40,0,5) at ktrwrite+0x101 > ktrpsig(ccdfd294,e,804a6b4,cce25888,0) at ktrpsig+0x78 > postsig(e) at postsig+0xaa > userret(cce25700,cce5cd48,11,0,0) at userret+0x4a > syscall(2f,2f,2f,0,0) at syscall+0x2b4 > syscall_with_err_pushed() at syscall_with_err_pushed+0x1b > --- syscall (4, FreeBSD ELF, write), eip = 0x280aac83, esp = 0xbfbffb50, ebp > = 0 > xbfbffb9c --- > db> Ktrace is evil and vile in this respect, so for now, don't use it. :) The fix is to move all the actual ktrwrite() stuff off into a worker async thread. I've done most of this (the ktrgenio needs some extra work still to properly synchronize so events don't get out of order) however, I need to finish the td_ucred stuff and then I can get back and finish it. It is next on the plate after td_ucred is done. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020328094509.jhb>