On Mon, May 16, 2011 at 12:59 AM, Andrew Lutomirski <luto@xxxxxxx> wrote: > I have no clue, but this patch (from Minchan, whitespace-damaged) seems to help: > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index f6b435c..4d24828 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -2251,6 +2251,10 @@ static bool sleeping_prematurely(pg_data_t > *pgdat, int order, long remaining, > Â Â Â unsigned long balanced = 0; > Â Â Â bool all_zones_ok = true; > > + Â Â Â /* If kswapd has been running too long, just sleep */ > + Â Â Â if (need_resched()) > + Â Â Â Â Â Â Â return false; > + > Â Â Â /* If a direct reclaimer woke kswapd within HZ/10, it's premature */ > Â Â Â if (remaining) > Â Â Â Â Â Â Â return true; > @@ -2286,7 +2290,7 @@ static bool sleeping_prematurely(pg_data_t > *pgdat, int order, long remaining, > Â Â Â Â* must be balanced > Â Â Â Â*/ > Â Â Â if (order) > - Â Â Â Â Â Â Â return pgdat_balanced(pgdat, balanced, classzone_idx); > + Â Â Â Â Â Â Â return !pgdat_balanced(pgdat, balanced, classzone_idx); > Â Â Â else > Â Â Â Â Â Â Â return !all_zones_ok; > Â} > > I haven't tested it very thoroughly, but it's survived much longer > than an unpatched kernel probably would have under moderate use. > > I have no idea what the patch does :) The reason I sent this is that I think your problem is similar to recent Jame's one. https://lkml.org/lkml/2011/4/27/361 What the patch does is [1] fix of "wrong pgdat_balanced return value" bug and [2] fix of "infinite kswapd bug of non-preemption kernel" on high-order page. About [1], kswapd have to sleep if zone balancing is completed but in 1741c877[mm: kswapd: keep kswapd awake for high-order allocations until a percentage of the node is balanced], we made a mistake that returns wrong return. Then, although we complete zone balancing, kswapd doesn't sleep and calls balance_pgdat. In this case, balance_pgdat rerurns without any work and kswapd could repeat this work infinitely. > > I'm happy to run any tests. ÂI'm also planning to upgrade from 2GB to > 8GB RAM soon, which might change something. > > --Andy > -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href