Index: linux-2.6.8-rc4/mm/vmscan.c =================================================================== --- linux-2.6.8-rc4.orig/mm/vmscan.c 2004-08-10 20:43:51.856343817 +1000 +++ linux-2.6.8-rc4/mm/vmscan.c 2004-08-10 20:55:43.421952201 +1000 @@ -118,7 +118,7 @@ /* * From 0 .. 100. Higher means more swappy. */ -int vm_swappiness = 60; +int vm_swappiness = 33; static long total_memory; static LIST_HEAD(shrinker_list); @@ -683,9 +683,9 @@ /* * `distress' is a measure of how much trouble we're having reclaiming - * pages. 0 -> no problems. 100 -> great trouble. + * pages. Trouble is if zone->prev_priority == 0; */ - distress = 100 >> zone->prev_priority; + distress = 100 * !(zone->prev_priority); /* * The point of this algorithm is to decide when to start reclaiming @@ -703,7 +703,7 @@ * * A 100% value of vm_swappiness overrides this algorithm altogether. */ - swap_tendency = mapped_ratio / 2 + distress + vm_swappiness; + swap_tendency = mapped_ratio + distress + vm_swappiness; /* * Now use this metric to decide whether to start moving mapped memory