Re: [PATCH v11 00/21] Add support for NV-DIMMs to ext4

From: Valdis . Kletnieks
Date: Tue Sep 30 2014 - 17:52:59 EST

On Tue, 30 Sep 2014 15:25:17 -0600, Andreas Dilger said:

> I think you would be much better off having more aggressive "use once"
> semantics in the page cache, so that page cache pages for streaming
> writes are evicted more aggressively from cache rather than going down
> the "automatic O_DIRECT" hole.

Well, I'm open to convincing.. an inode bit that says "I/O for this file is
always first out of the page cache" would probably fix most of the thrashing
page cache problem (and avoid the "unexpected O_DIRECT kills the program"
issue), at the cost of a little more CPU when we turn around and evict it
from the page cache.

As long as we're at it, if we go that route we probably *also* want a
way for a program to specify it at open() time (for instance, for the
use of backup programs) - that should minimize the infamous "everything
runs like a pig after the backup finishes running because the *useful*
pages are all cache-cold".

(And yes, you really *do* want the ability in both places - one for a
program to be able to say "do this for any file I touch", and another for
the file to say "do this for any program that touches me").

Matthew - would that sort of approach make more sense to you? I admit
I originally posted only because I'd just finished fighting with a
similar issue, and code floated by that got filesystem pages into
core without trashing the page cache. I'm not at all tied to the specific
solution.. :)

Attachment: pgpfhWgNrw1jX.pgp
Description: PGP signature