On Thu, Aug 19, 2010 at 04:40:33PM +0100, Mel Gorman wrote: > The patch leader now reads as > > Ordinarily watermark checks are based on the vmstat NR_FREE_PAGES as it is > cheaper than scanning a number of lists. To avoid synchronization overhead, > counter deltas are maintained on a per-cpu basis and drained both periodically > and when the delta is above a threshold. On large CPU systems, the difference > between the estimated and real value of NR_FREE_PAGES can be very high. > If NR_FREE_PAGES is much higher than number of real free page in buddy, the VM > can allocate pages below min watermark, at worst reducing the real number of > pages to zero. Even if the OOM killer kills some victim for freeing memory, it > may not free memory if the exit path requires a new page resulting in livelock. > > This patch introduces zone_nr_free_pages() to take a slightly more accurate > estimate of NR_FREE_PAGES while kswapd is awake. The estimate is not perfect > and may result in cache line bounces but is expected to be lighter than the > IPI calls necessary to continually drain the per-cpu counters while kswapd > is awake. > > Is that better? Good! > > -- > Mel Gorman > Part-time Phd Student Linux Technology Center > University of Limerick IBM Dublin Software Lab -- Kind regards, Minchan Kim -- 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>