The patch titled Subject: mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5 has been added to the -mm tree. Its filename is mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Yisheng Xie <xieyisheng1@xxxxxxxxxx> Subject: mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5 - remove may_thrash field in scan_control, and introduce mem_cgroup_reclaim and memcg_low_skipped to make code more readable. - Johannes Link: http://lkml.kernel.org/r/1490191893-5923-1-git-send-email-ysxie@xxxxxxxxxxx Signed-off-by: Yisheng Xie <xieyisheng1@xxxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> Suggested-by: Johannes Weiner <hannes@xxxxxxxxxxx> Suggested-by: Michal Hocko <mhocko@xxxxxxxxxx> Suggested-by: Shakeel Butt <shakeelb@xxxxxxxxxx> Reviewed-by: Shakeel Butt <shakeelb@xxxxxxxxxx> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Rik van Riel <riel@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/vmscan.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff -puN mm/vmscan.c~mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5 mm/vmscan.c --- a/mm/vmscan.c~mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5 +++ a/mm/vmscan.c @@ -97,11 +97,13 @@ struct scan_control { /* Can pages be swapped as part of reclaim? */ unsigned int may_swap:1; - /* Can cgroups be reclaimed below their normal consumption range? */ - unsigned int may_thrash:1; - - /* Did we have any memcg protected by the low limit */ - unsigned int memcg_low_protection:1; + /* + * Cgroups are not reclaimed below their configured memory.low, + * unless we threaten to OOM. If any cgroups are skipped due to + * memory.low and nothing was reclaimed, go back for memory.low. + */ + unsigned int memcg_low_reclaim:1; + unsigned int memcg_low_skipped:1; unsigned int hibernation_mode:1; @@ -2515,10 +2517,10 @@ static bool shrink_node(pg_data_t *pgdat unsigned long scanned; if (mem_cgroup_low(root, memcg)) { - sc->memcg_low_protection = 1; - - if (!sc->may_thrash) + if (!sc->memcg_low_reclaim) { + sc->memcg_low_skipped = 1; continue; + } mem_cgroup_events(memcg, MEMCG_LOW, 1); } @@ -2773,9 +2775,10 @@ retry: return 1; /* Untapped cgroup reserves? Don't OOM, retry. */ - if (sc->memcg_low_protection && !sc->may_thrash) { + if (sc->memcg_low_skipped) { sc->priority = initial_priority; - sc->may_thrash = 1; + sc->memcg_low_reclaim = 1; + sc->memcg_low_skipped = 0; goto retry; } _ Patches currently in -mm which might be from xieyisheng1@xxxxxxxxxx are mm-compaction-ignore-block-suitable-after-check-large-free-page.patch mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages.patch mm-vmscan-more-restrictive-condition-for-retry-in-do_try_to_free_pages-v5.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html