From 58a6f3bcbe0e4af14ee8a6ac95181f4bddc558c3 Mon Sep 17 00:00:00 2001 From: kib Date: Sat, 10 Aug 2013 21:42:14 +0000 Subject: The r254167 moved initialization of the sleepqueues before the witness is operational. init_sleepqueues() initializes 256 mutexes, which, due to witness still being cold, started to overflow the pending_locks array. As stated in the reported panic message, increase WITNESS_PENDLIST from 768 to 1024, which provides space for additional 256 locks. Reported by: many Tested by: rakuco, bdrewery --- sys/kern/subr_witness.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 -- cgit v1.1