lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 31 May 2017 17:20:07 +0200 From: Michal Hocko <mhocko@...nel.org> To: Andrew Morton <akpm@...ux-foundation.org> Cc: David Rientjes <rientjes@...gle.com>, Minchan Kim <minchan@...nel.org>, Johannes Weiner <hannes@...xchg.org>, Mel Gorman <mgorman@...hsingularity.net>, linux-kernel@...r.kernel.org, linux-mm@...ck.org Subject: Re: [patch v2] mm, vmscan: avoid thrashing anon lru when free + file is low Andrew, it seems that this patch fallen through cracks. I am sorry if this was due to my review feedback because it turned out that I missed the point and later added my Acked-by. Sorry about that On Mon 01-05-17 14:34:21, David Rientjes wrote: > The purpose of the code that commit 623762517e23 ("revert 'mm: vmscan: do > not swap anon pages just because free+file is low'") reintroduces is to > prefer swapping anonymous memory rather than trashing the file lru. > > If the anonymous inactive lru for the set of eligible zones is considered > low, however, or the length of the list for the given reclaim priority > does not allow for effective anonymous-only reclaiming, then avoid > forcing SCAN_ANON. Forcing SCAN_ANON will end up thrashing the small > list and leave unreclaimed memory on the file lrus. > > If the inactive list is insufficient, fallback to balanced reclaim so the > file lru doesn't remain untouched. > > Suggested-by: Minchan Kim <minchan@...nel.org> > Signed-off-by: David Rientjes <rientjes@...gle.com> > --- > to akpm: this issue has been possible since at least 3.15, so it's > probably not high priority for 4.12 but applies cleanly if it can sneak > in > > mm/vmscan.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -2204,8 +2204,17 @@ static void get_scan_count(struct lruvec *lruvec, struct mem_cgroup *memcg, > } > > if (unlikely(pgdatfile + pgdatfree <= total_high_wmark)) { > - scan_balance = SCAN_ANON; > - goto out; > + /* > + * Force SCAN_ANON if there are enough inactive > + * anonymous pages on the LRU in eligible zones. > + * Otherwise, the small LRU gets thrashed. > + */ > + if (!inactive_list_is_low(lruvec, false, sc, false) && > + lruvec_lru_size(lruvec, LRU_INACTIVE_ANON, sc->reclaim_idx) > + >> sc->priority) { > + scan_balance = SCAN_ANON; > + goto out; > + } > } > } > > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@...ck.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@...ck.org"> email@...ck.org </a> -- Michal Hocko SUSE Labs
Powered by blists - more mailing lists