Re: lowmem_reserve (replaces protection)
From: Andrea Arcangeli
Date: Tue Oct 26 2004 - 23:46:35 EST
On Tue, Oct 26, 2004 at 08:43:08PM -0700, Andrew Morton wrote:
> Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:
> >
> > It actually can overscan lower zones a little bit, because
> > whenever any higher zone in the pgdat is low on memory, then
> > it and all zones below it get scanned too.
>
> Because we know that all of the eligible zones are below pages_low. kswapd
> will then work to bring all the relevant zones back to pages_high.
entering the loop is easy and shrinking all zones is easy.
is how much to free from each zone in kswapd that won't work as 2.4 did
with only pages_high.
what we'll happen is that we'll blindly free a few pages from each zone,
but then we'll be allowed to allocate the highmem pages, and not the
normal/dma pages. So after allocating the highmem pages we invoke kswapd
again and it frees again some highmem/normal/dma pages but we keep only
using the highmem ones. So for a while we may be rolling over only the
highmem lru and ignoring all freed pages from the normal/dma zones.
2.4 would have freed all pages from the lower zones first (without
this additional rolling over the highmem zone). Though it's a bit hard
to compare since 2.4 had a global lru.
The bigger the highmem zone, the less it will matter the stuff that can
be cached in the low zones. And the smaller the highemm zone the less
imbalancing will be generated since the reservation will be minuscle on
the lower zones. So perhaps it already works fine, but this is not 2.4
was working (I'm sure to make it work like 2.4 you'd need to add the
lowmem_reserve in the when-to-stop-kswapd math). But maybe it works even
better this way?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/