Messages in this thread | | | Subject | Re: [PATCH] mm,vmscan: only loop back if compaction would fail in all zones | From | Valdis.Kletnieks@vt ... | Date | Tue, 27 Nov 2012 17:35:56 -0500 |
| |
On Sun, 25 Nov 2012 23:10:41 -0500, Johannes Weiner said:
> From: Johannes Weiner <hannes@cmpxchg.org> > Subject: [patch] mm: vmscan: fix endless loop in kswapd balancing > > Kswapd does not in all places have the same criteria for when it > considers a zone balanced. This leads to zones being not reclaimed > because they are considered just fine and the compaction checks to > loop over the zonelist again because they are considered unbalanced, > causing kswapd to run forever. > > Add a function, zone_balanced(), that checks the watermark and if > compaction has enough free memory to do its job. Then use it > uniformly for when kswapd needs to check if a zone is balanced. > > Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> > --- > mm/vmscan.c | 27 ++++++++++++++++++--------- > 1 file changed, 18 insertions(+), 9 deletions(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 48550c6..3b0aef4 100644
> + if (COMPACTION_BUILD && order && !compaction_suitable(zone, order)) > + return false;
Applying to next-20121117,I had to hand-patch for this other apkm patch:
./Next/merge.log:Applying: mm: use IS_ENABLED(CONFIG_COMPACTION) instead of COMPACTION_BUILD
Probably won't be till tomorrow before I know if this worked, it seems to take a while before the kswapd storms start hitting (appears to be a function of uptime - see almost none for 8-16 hours, after 24-30 hours I'll be having a spinning kswapd most of the time). [unhandled content-type:application/pgp-signature] | |