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:
pgpcbe_SLkBGj.pgp
Description: PGP signature