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