From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [patch 2/8] update ctime and mtime for mmaped write Date: Tue, 06 Mar 2007 23:28:21 +0100 Message-ID: <1173220101.6374.118.camel@twins> References: <20070306180443.669036741@szeredi.hu> <20070306180549.312408559@szeredi.hu> <1173213151.4718.16.camel@lappy> <1173217621.4718.27.camel@lappy> <1173218843.4718.38.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, staubach@redhat.com, hugh@veritas.com To: Miklos Szeredi Return-path: Received: from amsfep17-int.chello.nl ([213.46.243.15]:15036 "EHLO amsfep18-int.chello.nl" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S932408AbXCFW3q (ORCPT ); Tue, 6 Mar 2007 17:29:46 -0500 In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Tue, 2007-03-06 at 23:18 +0100, Miklos Szeredi wrote: > > > None what so ever, but I always think of msync as a rare function > > > (infrequent when compared to (minor) faults overall). But I don't have > > > numbers backing that up either. > > > > > > Also, the radix tree scan you do isn't exactly cheap either. > > > > > > So what I was wondering is whether its worth optimizing this at the cost > > > of another rmap walker. (one with very dubious semantics at that - it > > > clears the pte dirty bit but doesn't particularly care about that nor > > > does it respect the PG_dirty / PTE dirty relation) > > > > What this functionality requires is that MS_ASYNC is a full barrier wrt. > > dirtyness. That is, we want to call set_page_dirty_mappig() as soon as > > we touch a page in a dirtying fashion after MS_{,A}SYNC gets called. > > > > Hence we need the full page_mkclean() functionality, otherwise we don't > > set AS_CMTIME again in time. > > AS_CMTIME is only for the case, when the "file modified since the last > msync" info is lost from the ptes, e.g. because of page reclaim. > > So it doesn't matter if AS_CMTIME is not set, is_page_modified() will > provide the necessary barrier. The trouble is, we went from a pull to a push model, and now you're adding pull code again. We have PG_dirty correct at all times, I think its no less reasonable to have AS_CMTIME correct in the same fashion.