On Tue, Jan 10, 2012 at 11:58:03PM +0800, Hillf Danton wrote: > From: Hillf Danton <dhillf@xxxxxxxxx> > [PATCH] mm: vmscan: fix setting reclaim mode > > The comment says, initially assume we are entering either lumpy reclaim or > reclaim/compaction, and depending on the reclaim order, we will either set the > sync mode or just reclaim order-0 pages later. > > On other hand, order-0 reclaim, instead of sync reclaim, is expected when > under memory pressure, but the check for memory pressure is incorrect, > leading to sync reclaim at low reclaim priorities. > > And the result is sync reclaim is set for high priorities. > RECLAIM_MODE_SYNC is only set for RECLAIM_MODE_LUMPYRECLAIM. Even when using RECLAIM_MODE_LUMPYRECLAIM, it should only be set when reclaim is under memory pressure and failing to reclaim the necessry pages (priority < DEF_PRIORITY - 2). Once in symc reclaim, reclaim will call wait_on_page_writeback() on dirty pages which potentially leads to significant stalls (one of the reasons why RECLAIM_MODE_LUMPYRECLAIM sucks and why compaction is preferred). Your patch means sync reclaim is used even when priority == DEF_PRIORITY. This is unexpected. Your changelog really needs to explain what the problem is that you have encountered and why this patch fixes it. It's not like some of your other patches which were minor performance optimisations that were self-evident. -- Mel Gorman SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>