panic on boot with fresh current

Konstantin Belousov kostikbel at gmail.com
Sat Aug 10 18:21:15 UTC 2013


On Sat, Aug 10, 2013 at 08:45:47PM +0300, Konstantin Belousov wrote:
> On Sat, Aug 10, 2013 at 08:44:07PM +0300, Konstantin Belousov wrote:
> > On Sat, Aug 10, 2013 at 12:15:35PM -0500, Bryan Drewery wrote:
> > > On 8/10/2013 11:44 AM, Bryan Drewery wrote:
> > > > On 8/10/2013 6:24 AM, Joel Dahl wrote:
> > > >> panic: witness_init: pending locks list is too small, increase
> > > >> WITNESS_PENDLIST
> > > > I also get this. The last stable revision for me was r254150
> > > 
> > > r254150 stable, r254171 panic.
> > > 
> > > backtrace: https://dl.dropboxusercontent.com/u/8732004/r254171-panic.jpg
> > 
> > So could you point to exact commit which causes panic ?
> It is r254167, right ?
> 
So I cannot reproduce it locally.  The problem is that r254167 moved sleepq
initialization before witness is operational, and witness has a backlog
of locks initialized before witness init.  The backlog overflown.

The right fix looks to be just what the panic message told, please try
this:

diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c
index 3b4d7a2..37e8cf2 100644
--- a/sys/kern/subr_witness.c
+++ b/sys/kern/subr_witness.c
@@ -135,7 +135,7 @@ __FBSDID("$FreeBSD$");
 #define	WITNESS_COUNT 		1024
 #define	WITNESS_CHILDCOUNT 	(WITNESS_COUNT * 4)
 #define	WITNESS_HASH_SIZE	251	/* Prime, gives load factor < 2 */
-#define	WITNESS_PENDLIST	768
+#define	WITNESS_PENDLIST	1024
 
 /* Allocate 256 KB of stack data space */
 #define	WITNESS_LO_DATA_COUNT	2048

If this does not help, try to increse PENDLIST even more.  But, sleepq
uses 256 elements, which means that my increase should be enough.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20130810/745ca417/attachment.sig>


More information about the freebsd-current mailing list