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

Attilio Rao attilio at freebsd.org
Sat May 11 14:31:41 UTC 2013


On Fri, May 10, 2013 at 3:52 PM, John Baldwin <jhb at freebsd.org> wrote:
> On Thursday, May 09, 2013 4:56:33 pm Marcel Moolenaar wrote:
>>
>> On May 9, 2013, at 9:46 AM, Attilio Rao <attilio at freebsd.org> wrote:
>>
>> > 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.
>>
>> I disagree. We have known LOR messages between VNODE locks that
>> pollute the console and so far we haven't fixed the root cause
>> in some form or shape. Silencing this known case is good to
>> maximize the attention LORs need to be given while still have
>> witness involved to catch locking problems with vnodes that are
>> of a different nature.
>>
>> >
>> > 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.
>>
>> This is worse. You want witness involved.
>
> Well, I disagree with both of you a bit.  I mostly agree with Attilio in
> that the committed change is a really large sledgehammer.  If we want to
> ignore all LORs for a large number of locks in the system we might as well
> remove WITNESS altogether.  However, I think LK_NOWITNESS is also too large
> of a sledgehammer for this as well.  AFAIK there are two vnode-related LORs
> that I can think of:

At this point I think that my e-mail is completely ambiguous because
what I'm proposing is the same way we shut down specific LOR with
mutexes using mtx_lock_flags().
I don't really understand what are you objecting about.

Attilio


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


More information about the svn-src-head mailing list