On Tue, 2007-08-14 at 07:21 -0700, Christoph Lameter wrote: > The following patchset implements recursive reclaim. Recursive reclaim > is necessary if we run out of memory in the writeout patch from reclaim. > > This is f.e. important for stacked filesystems or anything that does > complicated processing in the writeout path. > > Recursive reclaim works because it limits itself to only reclaim pages > that do not require writeout. It will only remove clean pages from the LRU. > The dirty throttling of the VM during regular reclaim insures that the amount > of dirty pages is limited.
No it doesn't. All memory can be tied up by anonymous pages - who are dirty by definition and are not clamped by the dirty limit. > If recursive reclaim causes too many clean pages > to be removed then regular reclaim will throttle all processes until the > dirty ratio is restored. This means that the amount of memory that can > be reclaimed via recursive reclaim is limited to clean memory. The default > ratio is 10%. This means that recursive reclaim can reclaim 90% of memory > before failing. Reclaiming excessive amounts of clean pages may have a > significant performance impact because this means that executable pages > will be removed. However, it ensures that we will no longer fail in the > writeout path. > > A patch is included to test this functionality. The test involved allocating > 12 Megabytes from the reclaim paths when __PF_MEMALLOC is set. This is enough > to exhaust the reserves. > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/