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.
pgplJa4OJUjKh.pgp
Description: PGP signature