From owner-freebsd-fs@freebsd.org Fri Aug 21 20:22:32 2015 Return-Path: Delivered-To: freebsd-fs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C54159BF5E3 for ; Fri, 21 Aug 2015 20:22:32 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (cl-1657.chi-02.us.sixxs.net [IPv6:2001:4978:f:678::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gw.catspoiler.org", Issuer "gw.catspoiler.org" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 710F6143F; Fri, 21 Aug 2015 20:22:32 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.15.2/8.15.2) with ESMTP id t7LKM5Vg096499; Fri, 21 Aug 2015 13:22:10 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <201508212022.t7LKM5Vg096499@gw.catspoiler.org> Date: Fri, 21 Aug 2015 13:22:05 -0700 (PDT) From: Don Lewis Subject: Re: solaris assert: avl_is_empty(&dn -> dn_dbufs) panic To: d@delphij.net cc: freebsd-fs@FreeBSD.org, gibbs@freebsd.org, george.wilson@delphix.com In-Reply-To: <55D7700B.3080207@delphij.net> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Aug 2015 20:22:32 -0000 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.