FreeBSD 10.0 adaptive mutex with strange mtx_lock value = panic
Mateusz Guzik
mjguzik at gmail.com
Sat Jun 14 08:48:53 UTC 2014
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>
More information about the freebsd-hackers
mailing list