Messages in this thread | | | Date | Mon, 11 Jun 2012 18:21:08 -0700 | From | John Stultz <> | Subject | Re: [PATCH 3/3] [RFC] tmpfs: Add FALLOC_FL_MARK_VOLATILE/UNMARK_VOLATILE handlers |
| |
On 06/11/2012 11:35 AM, John Stultz wrote: > On 06/10/2012 02:47 PM, Rik van Riel wrote: >> On 06/08/2012 11:45 PM, John Stultz wrote: >> >>> I *think* ideally, the pages in a volatile range should be similar to >>> non-dirty file-backed pages. There is a cost to restore them, but >>> freeing them is very cheap. The trick is that volatile ranges >>> introduces >> >> Easier to mark them dirty. >> >>> a new relationship between pages. Since the neighboring virtual >>> pages in >>> a volatile range are in effect tied together, purging one effectively >>> ruins the value of keeping the others, regardless of which zone they >>> are >>> physically. >> >> Then the volatile ->writepage function can zap the whole >> object. >> > > What about the concern that if we don't have swap, we'll not call > writepage on tmpfs files?
So actually, a more concrete question might be: What is the value of the active/inactive split of anonymous memory on a system without swap?
Basically I'm looking at trying to allow the writepage function to zap the range as you suggest, but also changing the behavior when there is no swap so that all anonymous pages stay active, unless they are volatile. Then, in both cases with swap and without, we would still shrink the inactive list, call writepage and zap the volatile ranges. Its just without swap, the only anonymous pages on the inactive list would be volatile.
Does that make any sense?
Hopefully will have a hackish patch to demonstrate what I'm describing tomorrow.
thanks -john
| |