There's been several mail exchanges already on this thread.
Let me try to summarize:
1. The page cleaner should walk the dirty list of pages.
2. There are 2 reasons to start write-out earlier than on
just memory pressure/aging information alone. (a) to minimize
data lost due to delalloc pages not written to disk (b) to minimize
write pressure on the disk .. you don't want to fill-up a 1GB system
with delalloc pages & starting to write out at 20 MB/sec to disk.
3. Its almost tempting to make kswapd do the delalloc conversions,
since it walks the inactive dirty list through page_launder().
However, if you think about it, the conversion is an operation
that logically sits between make a page delalloc & writing it out to
disk. IMO, we need a seperate daemon to perform the conversions.
4. Another issue is proper write-throttling to avoid situations as in 2 (b).
Perhaps we can make balance_dirty() to synchronously perform some
conversions?
--
--------------------------------------------------------------------------
Rajagopal Ananthanarayanan ("ananth")
Member Technical Staff, SGI.
--------------------------------------------------------------------------
|