Re: lowmem_reserve (replaces protection)

From: Nick Piggin
Date: Tue Oct 26 2004 - 22:06:49 EST


Andrea Arcangeli wrote:
On Wed, Oct 27, 2004 at 12:05:19PM +1000, Nick Piggin wrote:

Andrea Arcangeli wrote:


the per-classzone kswapd treshold was very well taken care of in 2.4,
thanks the watermarks embedding the low/min/high and the classzone being
passed up to the kswapd wakeup function.


Kswapd actually should take care of this properly: see the
initial loop before the real scanning loop.


I don't see how it can take care of it, if it doesn't even get a wakeup?
kswapd just sleeps.

kswapd is just an optimization, we try provide async allocation if the
kswapd watermarks can it keep up between low and high (and we hang
synchronosly while hitting the wall at min), so it's not fatal that
kswapd sleeps, but it can be fixed easily with the patch I just posted
some minute ago.


See my reply.


I thought this was a bit subtle, but it seems to work fine,
and Andrew likes it.

I have a patch to explicitly have kswapd use the lower zone
protection watermarks but I haven't really demonstrated it is
better than what is currently there (other than being simpler).


[snip]

shouldn't we take the full watermarks into account in the above too?
I think so, otherwise we wakeup but it goes back to sleep, i.e.
overscheduling but nothing done still, so I'm going to fixup the stop as
well.


Please don't just yet. I've already got this patch to do it, but
I've got more kswapd work underneath that (which makes kswapd
work properly with higher order allocations).

Currently it does not overschedule, because one zone is always
going to be low by the time kswapd wakes up. This causes all zones
below to be scanned as well.
-
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/