Re: [patch 2/8] update ctime and mtime for mmaped write

Miklos Szeredi
2007-03-06T22:19:20Z

> > 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.

Thanks,
Miklos