On Fri, Jan 28, 2011 at 02:34:31PM -0500, Rik van Riel wrote: > It will block at high+gap only when one zone has really > easily reclaimable memory, and another zone has difficult > to free memory. The other zone doesn't need to be difficult to free up. All ram in immediately freeable clean cache is the most common case there is. And it's more than enough to trigger the scenario in prev email. > That creates a free memory differential between the > easy to free and difficult to free memory zones. There's no difficult to free zone in this scenario. > If memory in all zones is equally easy to free, kswapd > will go to sleep once the high watermark is reached in > every zone. Yes, at that point the high wmark is reached for all zones. Then cp or any file read allocates another high-low amount of clean cache, and kswapd will be waken again. Then when it goes to sleep the over4g tiny zone will be at "high" again but the below zones will be at high+(high_over4gwmark-low_over4gwmark), in about 5 seconds the over4g zone will be at "high" and the other two zones will be at "high+gap". All when there's zero memory pressure in the below zones, and there's just some clean cache shrinking required to allocate the new cache from the over4g zone. Then the below zones lru stops rotating regardless of the size of the gap (0 or 600M makes no difference). -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>