Date: Fri, 14 Jul 1995 16:07:49 +1000 From: Bruce Evans <bde@zeta.org.au> To: bugs@FreeBSD.ORG, dillon@blob.best.net Subject: Re: Think we finally found the 'all processes block' bug Message-ID: <199507140607.QAA32577@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
> The ps shows up with a whole bunch of processes waiting on newbuf > and an even larger contingent of processes waiting on ufslk2. > Delving into the nbuf initialization code, in i386/i386/machdep.c, > I noticed: > if (nbuf == 0) { > nbuf = 30; > if( physmem > 1024) > nbuf += min((physmem - 1024) / 12, 1024); > } > nswbuf = min(nbuf, 128); > I believe the min is supposed to be a max, though this does not really > solve the lockout condition... I have no idea how the lockout is occuring, The min really is supposed to be a min (it should be imin - min is for unsigned variables). There has to be a limit and the system should recover gracefully when the limit is reached. > but I believe that increasing the number of buffers will reduce the > rate of occurance (currently the machine crashes about once a day with > this bug). To debug the problem you might want to decrease the limit so that the system crashes once per second :-). > Could the clustering code have something to do with the lockout? It > could also be that the processes waiting on ufslk2 are creating the buffer > shortfall and causding the 'newbuf' sleep problem. The latter is more likely. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507140607.QAA32577>