svn commit: r250411 - in head/sys: conf kern sys

Attilio Rao attilio at freebsd.org
Thu May 9 16:46:28 UTC 2013


On Thu, May 9, 2013 at 6:28 PM, Marcel Moolenaar <marcel at freebsd.org> wrote:
> Author: marcel
> Date: Thu May  9 16:28:18 2013
> New Revision: 250411
> URL: http://svnweb.freebsd.org/changeset/base/250411
>
> Log:
>   Add option WITNESS_NO_VNODE to suppress printing LORs between VNODE
>   locks. To support this, VNODE locks are created with the LK_IS_VNODE
>   flag. This flag is propagated down using the LO_IS_VNODE flag.
>
>   Note that WITNESS still records the LOR. Only the printing and the
>   optional entering into the kernel debugger is bypassed with the
>   WITNESS_NO_VNODE option.

This is the wrong way to deal with such problem and I avoided to do
something like that on purpose.

The way to fix this is to implement LK_NOWITNESS on a per-lock basis
into lockmgr, propagate the same concept to the vn_lock() (which
should be basically done automatically) and finally identify the
false-positive case and commit for them explicitely LK_NOWITNESS on a
per-call basis, explaining in detail why the single case reported is a
false-positive.

Please revert this patch asap.

Attilio


--
Peace can only be achieved by understanding - A. Einstein


More information about the svn-src-head mailing list