lkml.org 
[lkml]   [2007]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [RFC 0/3] Recursive reclaim (on __PF_MEMALLOC)
    From
    Date
    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 majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-08-14 16:39    [W:0.047 / U:0.768 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site