Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Jun 2014 10:48:47 +0200
From:      Mateusz Guzik <mjguzik@gmail.com>
To:        Darren Reed <darrenr@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: FreeBSD 10.0 adaptive mutex with strange mtx_lock value = panic
Message-ID:  <20140614084847.GA8122@dft-labs.eu>
In-Reply-To: <539BFEC4.1020103@freebsd.org>
References:  <539BFEC4.1020103@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Jun 14, 2014 at 05:50:28PM +1000, Darren Reed wrote:
> In debugging a kernel panic running inside a VM, I found the following:
> 
> (kgdb) p *$15
> $16 = {lock_object = {lo_name = 0xffffffff81a8a224 "filter rule lock",
>     lo_flags = 16908288, lo_data = 0, lo_witness = 0x0}, mtx_lock = 6}
> 
> 16908288 = 0x1020000 (CLASS=1|LO_WITNESS)
> 
> While everything "looks" normal, mtx_lock = MTX_UNOWNED|MTX_CONTESTED
> 
> And kern_mutex.c cannot deal with that.
> 
> This is 100% repeatable/reproducible ...
> 
> Am I dealing with a VM bug or a FreeBSD bug?
> 

This is a 'destroyed mutex' state, i.e. you are doing mtx_lock after
mtx_destroy.

A kernel with INVARIANTS enabled wold tell you that straight away.

-- 
Mateusz Guzik <mjguzik gmail.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140614084847.GA8122>