From owner-cvs-all@FreeBSD.ORG Thu Feb 14 08:20:59 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D55416A417; Thu, 14 Feb 2008 08:20:59 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 5DE5413C442; Thu, 14 Feb 2008 08:20:59 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 03A0046C79; Thu, 14 Feb 2008 03:20:59 -0500 (EST) Date: Thu, 14 Feb 2008 08:20:58 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Alfred Perlstein In-Reply-To: <20080214020203.GP99258@elvis.mu.org> Message-ID: <20080214081830.N13849@fledge.watson.org> References: <200802131545.m1DFjCq0092390@repoman.freebsd.org> <20080214020203.GP99258@elvis.mu.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/fs/coda cnode.h coda_subr.c coda_vnops.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Feb 2008 08:20:59 -0000 On Wed, 13 Feb 2008, Alfred Perlstein wrote: > * Robert Watson [080213 07:45] wrote: >> rwatson 2008-02-13 15:45:12 UTC >> >> FreeBSD src repository >> >> Modified files: >> sys/fs/coda cnode.h coda_subr.c coda_vnops.c >> Log: > ... >> Since the Coda module is agressive about not keeping around >> unopened cnodes, the utility of the cache is somewhat limited for >> files, but works will for directories. We should make Coda less >> agressive about GCing cnodes in VOP_INACTIVE() in order to improve >> the effectiveness of in-kernel caching of attributes and access >> rights. > > Move the GC to the VOP_RECLAIM VOP and you'll get what you want. It's not quite that simple, unfortunately -- it's not clear that the kernel gets reliable access to the link count of the object, so may not be able to make an informed decision about whether it's appropriate to vrecycle() in VOP_INACTIVE(). Also, there's a downcall to userspace for VOP_INACTIVE(), but not for VOP_RECLAIM(), and I need to think a bit about whether the two are sufficiently equivalent to move the inactive downcall to reclaim. I'm looking at making the VOP_RECLAIM change, but I think there's more legwork to be done first. Robert N M Watson Computer Laboratory University of Cambridge