Hi, [Intermediate release - indicator of problem with previous] Since I am responsible for messing up some aspects of vm (when fixing others) here is a patch that tries to solve the introduced problems. * no more periodic wake up of kswapd - not needed anymore * no more freeing all zones to (free_pages > pages_high) * always wakes kswapd up after try_to_free_pages * kswapd starts when all zones gets zone_wake_kswapd (runs once for each zone that hits zone_wake_kswapd) * removed test for more than pages_high in alloc_pages, zones will mostly be in the range [pages_high...pages_low] * Up to 10% better throughput than 2.4.0-test4, YMMV * Tested mostly with streaming tests. On a non HIGHMEM config. + New: zone_wake_kswapd == 2 indicates a situation where free_pages < pages_low another alloc is done. + New-BUGFIX: runs kswapd while zone_wake_kswapd == 2 or low_on_memory (Quintela) + New-BUGFIX? checks if __GFP_IO before rescheduling (will become separate patch if correct, thanks Quintela) - Kills mmap002, did not in the previously released that should have this problem (but did not) - why? Will investigate further... - Since kswapd does not wake up periodic anymore, the latencies might be worse... Will investigate it further when other stuff works. Note: logic of function keep_kswapd_awake has changed. /RogerL -- Home page: http://www.norran.net/nra02596/