From owner-freebsd-current@FreeBSD.ORG Thu Jul 12 00:53:27 2007 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E0FD016A41F for ; Thu, 12 Jul 2007 00:53:27 +0000 (UTC) (envelope-from enderbsd@gmail.com) Received: from wx-out-0506.google.com (wx-out-0506.google.com [66.249.82.235]) by mx1.freebsd.org (Postfix) with ESMTP id 3AA7C13C457 for ; Thu, 12 Jul 2007 00:53:27 +0000 (UTC) (envelope-from enderbsd@gmail.com) Received: by wx-out-0506.google.com with SMTP id i29so1463499wxd for ; Wed, 11 Jul 2007 17:53:25 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=KphupzDGhTpIWz1IoKHp0GRgrPsJlxX5V8n2YPknasCio0jq8FV5S5pKBkeEg/lNZOoRJuL9XhghsaJK9/Bj66U6yqKeB53iPNxiesPwIyuBBWxHw1sEUP9I+3BV+bGeYfiQQ/lEJXM9j8uV4zy+xqw0I1beXVh+0J6pml48LNA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=CxVtMt0QuqhNeB6H3QzLCAc1/unYSrXQx2g/7SNLTWQj8TvX7tF9myj1tKRW9YPpDX2qbW5DyC8F258yz0mC25tZpVtNEQ5ZDQHhDDZdBMiH7sJdlGxNC7AOVyCSUB+XL9jCQYObzAEn/5Vj4bbGRXJPcYRmMmHGVtE4UzDT6V4= Received: by 10.90.99.20 with SMTP id w20mr14700agb.1184199881584; Wed, 11 Jul 2007 17:24:41 -0700 (PDT) Received: by 10.90.56.12 with HTTP; Wed, 11 Jul 2007 17:24:41 -0700 (PDT) Message-ID: <15d429c0707111724w76d47529v4c5fad6ac7892875@mail.gmail.com> Date: Wed, 11 Jul 2007 20:24:41 -0400 From: "Simon Dircks" To: "Huang wen hui" In-Reply-To: <46922D75.4010006@gddsn.org.cn> MIME-Version: 1.0 References: <200707071426.18202.dfr@rabson.org> <20070709000918.GD1208@garage.freebsd.pl> <46922D75.4010006@gddsn.org.cn> Content-Type: text/plain; charset=ISO-2022-JP; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Pawel Jakub Dawidek , current@freebsd.org Subject: Re: ZFS leaking vnodes (sort of) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jul 2007 00:53:28 -0000 On 7/9/07, Huang wen hui wrote: > > Pawel Jakub Dawidek 写道: > > On Sat, Jul 07, 2007 at 02:26:17PM +0100, Doug Rabson wrote: > > > >> I've been testing ZFS recently and I noticed some performance issues > >> while doing large-scale port builds on a ZFS mounted /usr/ports tree. > >> Eventually I realised that virtually nothing ever ended up on the vnode > >> free list. This meant that when the system reached its maximum vnode > >> limit, it had to resort to reclaiming vnodes from the various > >> filesystem's active vnode lists (via vlrureclaim). Since those lists > >> are not sorted in LRU order, this led to pessimal cache performance > >> after the system got into that state. > >> > >> I looked a bit closer at the ZFS code and poked around with DDB and I > >> think the problem was caused by a couple of extraneous calls to vhold > >> when creating a new ZFS vnode. On FreeBSD, getnewvnode returns a vnode > >> which is already held (not on the free list) so there is no need to > >> call vhold again. > >> > > > > Whoa! Nice catch... The patch works here - I did some pretty heavy > > tests, so please commit it ASAP. > > > > I also wonder if this can help with some of those 'kmem_map too small' > > panics. I was observing that ARC cannot reclaim memory and this may be > > because all vnodes and thus associated data are beeing held. > > > > To ZFS users having problems with performance and/or stability of ZFS: > > Can you test the patch and see if it helps? > > > my T60p notebook, -CURRENT amd64: > buildworld time before patch: 58xx second. > buildworld time after path: 28xx second. > > Thanks! With this patch i am still able to reproduce my ZFS crash. controllera# uname -a FreeBSD controllera.storage.ksdhost.com 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Thu Jul 12 02:28:52 UTC 2007 graff@controllera.storage.ksdhost.com:/usr/obj/usr/src/sys/CONTROLLERA amd64 panic: ZFS: bad checksum (read on off 0: zio 0xffffff001d729810 [LO SP A space map] 1000L/800P DVA[0]=<0:1600421800:800> DVA[1]=<0:2c000f7000:800> DVA[ 2]=<0:4200013800:800> fletcher4 lzjb LE contiguous birth=566 fill=1 chsum=5d3276 7b98:635ff7022f8b:4251 cpuid = 0 KDB: enter: panic [thread pid 802 tid 100066 ] stopped at kdb_enter+0x31: leave