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
