Hi, Another attempt. With this patch I get noticeable improvements in streaming write +16%! (streaming write throughput is close to streaming read :-) dbench results are mixed - slightly worse than plain test5-1... It now survives mmap002, as opposed to vmfix-2.x :-) there were bugs of cause. * Basic idea in this patch is to keep free pages of zones in the range [pages_high ... pages_low]. Kswapd will only run until one zone gets pages_high. In this situation pages from all zones are free able. * In addition kswapd will run if any zone has less than pages_low. * Actually implemented by using three values in zone_wake_kswapd 0 = zone initially above pages_high, allocs allowed until zone gets < pages_low 1 = zone < pages_low -1 = additional alloc done after zone become < pages_low Most of the time there will only be one zone to with zone_wake_kswapd zero. This zone will get the allocs until it also gets < pages_low, then kswapd starts and runs until any zone gets > pages_high - it will probably be another zone. Now that one gets the allocs, ... * There are some additional stuff that needs cleaning / further investigations. /RogerL -- Home page: http://www.norran.net/nra02596/