Index: linux-2.6.8.1-mm1/mm/vmscan.c
===================================================================
--- linux-2.6.8.1-mm1.orig/mm/vmscan.c	2004-08-17 20:18:54.862772496 +1000
+++ linux-2.6.8.1-mm1/mm/vmscan.c	2004-08-17 20:35:53.255953200 +1000
@@ -119,7 +119,7 @@ struct shrinker {
 /*
  * From 0 .. 100.  Higher means more swappy.
  */
-int vm_swappiness = 60;
+int vm_swappiness = 33;
 static long total_memory;
 
 static LIST_HEAD(shrinker_list);
@@ -680,9 +680,9 @@ refill_inactive_zone(struct zone *zone, 
 
 	/*
 	 * `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
@@ -700,7 +700,7 @@ refill_inactive_zone(struct zone *zone, 
 	 *
 	 * 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

