From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Howells Subject: Re: [PATCH 23/43] CacheFiles: Permit the page lock state to be monitored [ver #46] Date: Thu, 02 Apr 2009 18:05:07 +0100 Message-ID: <7156.1238691907@redhat.com> References: <200904030335.13439.nickpiggin@yahoo.com.au> <200904030237.25893.nickpiggin@yahoo.com.au> <20090401230520.28177.61387.stgit@warthog.procyon.org.uk> <6638.1238688892@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: dhowells@redhat.com, linux-fsdevel@vger.kernel.org, nfsv4@linux-nfs.org, viro@zeniv.linux.org.uk, linux-kernel@vger.kernel.org To: Nick Piggin Return-path: In-Reply-To: <200904030335.13439.nickpiggin@yahoo.com.au> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nfsv4-bounces@linux-nfs.org Errors-To: nfsv4-bounces@linux-nfs.org List-Id: linux-fsdevel.vger.kernel.org Nick Piggin wrote: > Presumably: at the point where data is needed. But the point where the data is needed is where filemap.c is waiting on a netfs page. Maybe the sync_page() aop can deal with it There's also the problem of recording and pinning the backing page I'm waiting for. Currently I can do that by hooking the monitor block into the page unlock watching list. If I don't do that, I have to use up yet more memory to track those some other way. It's not impossible, but I'd like to keep memory usage down. > Or do you actually have numbers showing a problem if you just read the pages > then copy them? I did, years ago. It wasn't particularly good, but fscache_read_or_alloc_pages() was completely synchronous. > If there is a problem, then why doesn't fscache_read_or_alloc_pages caller > do the work itself, then you get as many threads as you have indivisible > work units, so completing some part of the request before another wouldn't > gain you anything anyway... (1) Trond stipulated FS-Cache had to be asynchronous, and it is, as far as I can make it. I still have to invoke bmap() synchronously, though, to find out whether I have a page in the cache to read:-/ (2) You lose the advantage of being able to process what you've got whilst the disk is fetching stuff in the background. David