On Tue, Nov 27, 2012 at 03:19:38PM -0800, Linus Torvalds wrote: > On Tue, Nov 27, 2012 at 2:26 PM, Johannes Weiner <hannes@xxxxxxxxxxx> wrote: > > On Tue, Nov 27, 2012 at 05:02:36PM -0500, Rik van Riel wrote: > >> > >> Kswapd going crazy is certainly a large part of the problem. > >> > >> However, that leaves the issue of page_alloc.c waking up > >> kswapd when the system is not actually low on memory. > >> > >> Instead, kswapd is woken up because memory compaction failed, > >> potentially even due to lock contention during compaction! > >> > >> Ideally the allocation code would only wake up kswapd if > >> memory needs to be freed, or in order for kswapd to do > >> memory compaction (so the allocator does not have to). > > > > Maybe I missed something, but shouldn't this be solved with my patch? > > Ok, guys. Cage fight! > > The rules are simple: two men enter, one man leaves. > I'm fairly scorch damaged from this whole cycle already. I won't need a prop master to look the part for a thunderdome match. > And the one who comes out gets to explain to me which patch(es) I > should apply, and which I should revert, if any. > Based on the reports I've seen I expect the following to work for 3.7 Keep 96710098 mm: revert "mm: vmscan: scale number of pages reclaimed by reclaim/compaction based on failures" ef6c5be6 fix incorrect NR_FREE_PAGES accounting (appears like memory leak) Revert 82b212f4 Revert "mm: remove __GFP_NO_KSWAPD" Merge mm: vmscan: fix kswapd endless loop on higher order allocation mm: Avoid waking kswapd for THP allocations when compaction is deferred or contended Johannes' patch should remove the necessity for __GFP_NO_KSWAPD revert but I think we should also avoid waking kswapd for THP allocations if compaction is deferred. Johannes' patch might mean that kswapd goes quickly go back to sleep but it's still busy work. 3.6 is still known to be screwed in terms of THP because of the amount of time it can spend in compaction after lumpy reclaim was removed. This is my old list of patches I felt needed to be backported after 3.7 came out. They are not tagged -stable, I'll be sending it to Greg manually. e64c523 mm: compaction: abort compaction loop if lock is contended or run too long 3cc668f mm: compaction: move fatal signal check out of compact_checklock_irqsave 661c4cb mm: compaction: Update try_to_compact_pages()kerneldoc comment 2a1402a mm: compaction: acquire the zone->lru_lock as late as possible f40d1e4 mm: compaction: acquire the zone->lock as late as possible 753341a revert "mm: have order > 0 compaction start off where it left" bb13ffe mm: compaction: cache if a pageblock was scanned and no pages were isolated c89511a mm: compaction: Restart compaction from near where it left off 6299702 mm: compaction: clear PG_migrate_skip based on compaction and reclaim activity 0db63d7 mm: compaction: correct the nr_strict va isolated check for CMA Only Johannes' patch needs to be added to this list. kswapd is not woken for THP in 3.6 but as it calls compaction for other high-order allocations it still makes sense. -- 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>