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.
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).
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.