Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Aug 2015 13:22:05 -0700 (PDT)
From:      Don Lewis <truckman@FreeBSD.org>
To:        d@delphij.net
Cc:        freebsd-fs@FreeBSD.org, gibbs@freebsd.org, george.wilson@delphix.com
Subject:   Re: solaris assert: avl_is_empty(&dn -> dn_dbufs) panic
Message-ID:  <201508212022.t7LKM5Vg096499@gw.catspoiler.org>
In-Reply-To: <55D7700B.3080207@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 21 Aug, Xin Li wrote:
> Hi,
> 
> A quick glance at the changes suggests that Justin's changeset may be
> related.  The reasoning is here:
> 
> https://reviews.csiden.org/r/131/
> 
> Related Illumos ticket:
> 
> https://www.illumos.org/issues/5056
> 
> In dnode_evict_dbufs(), remove multiple passes over dn->dn_dbufs.
> This is possible now that objset eviction is asynchronously
> completed in a different context once dbuf eviction completes.
> 
> In the case of objset eviction, any dbufs held by children will
> be evicted via dbuf_rele_and_unlock() once their refcounts go
> to zero.  Even when objset eviction is not active, the ordering
> of the avl tree guarantees that children will be released before
> parents, allowing the parent's refcounts to naturally drop to
> zero before they are inspected in this single loop.

Thanks.  Changing USE_TMPFS in poudriere.conf from "data localbase" to
"all" has me temporarily up and running.  That my not work so well for
my larger package build runs that will now be a lot more RAM intensive.




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