spin_unlock_irqrestore(&zone->lru_lock, flags);
}
}
-@@ -1982,24 +1986,25 @@ static void setup_per_zone_pages_min(voi
- * Initialise min_free_kbytes.
- *
- * For small machines we want it small (128k min). For large machines
-- * we want it large (16MB max). But it is not linear, because network
-+ * we want it large (64MB max). But it is not linear, because network
- * bandwidth does not increase linearly with machine size. We use
- *
-- * min_free_kbytes = sqrt(lowmem_kbytes)
-+ * min_free_kbytes = 4 * sqrt(lowmem_kbytes), for better accuracy
-+ * min_free_kbytes = sqrt(lowmem_kbytes * 16)
- *
- * which yields
- *
-- * 16MB: 128k
-- * 32MB: 181k
-- * 64MB: 256k
-- * 128MB: 362k
-- * 256MB: 512k
-- * 512MB: 724k
-- * 1024MB: 1024k
-- * 2048MB: 1448k
-- * 4096MB: 2048k
-- * 8192MB: 2896k
-- * 16384MB: 4096k
-+ * 16MB: 512k
-+ * 32MB: 724k
-+ * 64MB: 1024k
-+ * 128MB: 1448k
-+ * 256MB: 2048k
-+ * 512MB: 2896k
-+ * 1024MB: 4096k
-+ * 2048MB: 5792k
-+ * 4096MB: 8192k
-+ * 8192MB: 11584k
-+ * 16384MB: 16384k
- */
- static int __init init_per_zone_pages_min(void)
- {
-@@ -2007,11 +2012,11 @@ static int __init init_per_zone_pages_mi
-
- lowmem_kbytes = nr_free_buffer_pages() * (PAGE_SIZE >> 10);
-
-- min_free_kbytes = int_sqrt(lowmem_kbytes);
-+ min_free_kbytes = int_sqrt(lowmem_kbytes * 16);
- if (min_free_kbytes < 128)
- min_free_kbytes = 128;
-- if (min_free_kbytes > 16384)
-- min_free_kbytes = 16384;
-+ if (min_free_kbytes > 65536)
-+ min_free_kbytes = 65536;
- setup_per_zone_pages_min();
- setup_per_zone_protection();
- return 0;