Re: invalidate_inode_pages in 2.5.32/3

Daniel Phillips
2002-09-11T00:30:09Z

On Wednesday 11 September 2002 02:07, Andrew Morton wrote:
> Daniel Phillips wrote:
> >
> > ...
> > Andrew, did I miss something, or does the current code really ignore
> > the pte dirty bits?
>
> Sure. pte_dirty -> PageDirty propagation happens in page reclaim,
> and in msync.
>
> We _could_ walk the pte chain in writeback. But that would involve
> visiting every page in the mapping, basically. That could hurt.

I wasn't suggesting that, I was confirming you're not going looking at
the ptes somewhere I didn't notice.

> But if a page is already dirty, and we're going to write it anyway,
> it makes tons of sense to run around and clean all the ptes which
> point at it.

Really. Since that is what the PG_dirty bit is supposed to be telling us.

> It especially makes sense for fielmap_sync() to do that. (quickly
> edits the todo file).
>
> I'm not sure that MAP_SHARED is a good way of performing file writing,
> really.

It sure isn't just now, and it's likely to remain that way for quite some
time.

> And not many things seem to use it for that. It's more there
> as a way for unrelated processes to find a chunk of common memory via
> the usual namespace. Not sure about that, but I am sure that it's a
> damn pest.

One day, in a perfect world, you will dirty a mmap, fsync it, and the data
will appear in the blink of an eye, somewhere else. Till then it would be
nice just to get mmaps of NFS files doing something reasonable. We do get
around to walking the ptes at file close I believe. Is that not driven by
zap_page_range, which moves any orphaned pte dirty bits down into the struct
page?

--
Daniel