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. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html