Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 May 2017 13:09:59 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Ryan Libby <rlibby@gmail.com>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r318285 - head/sys/kern
Message-ID:  <20170515100959.GB1622@kib.kiev.ua>
In-Reply-To: <201705151002.v4FA2jqi045123@repo.freebsd.org>
References:  <201705151002.v4FA2jqi045123@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 15, 2017 at 10:02:45AM +0000, Konstantin Belousov wrote:
> Author: kib
> Date: Mon May 15 10:02:45 2017
> New Revision: 318285
> URL: https://svnweb.freebsd.org/changeset/base/318285
> 
> Log:
>   mnt_vnode_next_active: use conventional lock order when trylock fails.
>   
>   Previously, when the VI_TRYLOCK failed, we would spin under the mutex
>   that protects the vnode active list until we either succeeded or
>   noticed that we had hogged the CPU. Since we were violating the lock
>   order, this would guarantee that we would become a hog under any
>   deadlock condition (e.g. a race with vdrop(9) on the same vnode). In
>   the presence of many concurrent threads in sync(2) or vdrop etc, the
>   victim could hang for a long time.
>   
>   Now, avoid spinning by dropping and reacquiring the locks in the
>   conventional lock order when the trylock fails. This requires a dance
>   with the vnode hold count.
>   
>   Submitted by:	Tom Rix <trix@juniper.net>
This must be Ryan Libby <rlibby@gmail.com>, I am sorry.

>   Tested by:	pho
>   Differential revision:	https://reviews.freebsd.org/D10692



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