On Wed, Aug 18, 2010 at 05:19:21PM +0900, Iram Shahzad wrote: > >>In other words, what is it that is supposed to increase the "inactive" > >>or decrease the "isolated" so that isolated > inactive becomes false? > >> > > > >See places that update the NR_ISOLATED_ANON and NR_ISOLATED_FILE > >counters. > > Many thanks for the advice. > So far as I understand, to come out of the loop, somehow NR_ISOLATED_* > has to be decremented. And the code that decrements it is called here: > mm/migrate.c migrate_pages() -> unmap_and_move() > > In compaction.c, migrate_pages() is called only after returning from > isolate_migratepages(). > So if it is looping inside isolate_migratepages() function, migrate_pages() > will not be called and hence there is no chance for NR_ISOLATED_* > to be decremented. Am I wrong? The loop should be waiting for the _other_ processes (doing direct reclaims) to proceed. When there are _lots of_ ongoing page allocations/reclaims, it makes sense to wait for them to calm down a bit? Thanks, Fengguang -- 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>