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>