The patch titled memcg: lru scan fix has been added to the -mm tree. Its filename is vmscan-second-chance-replacement-for-anonymous-pages-memcg-lru-scan-fix.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 *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: memcg: lru scan fix From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Since rc5-mm3, memcg easily goes into OOM when limit was low. This is a fix to split-lru to fix OOM. Under memcg, active anon tend not to go to inactive anon. This will cause OOM in memcg easily when tons of anon was used at once. This check was lacked in split-lru. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Acked-by: Rik van Riel <riel@xxxxxxxxxx> Cc: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx> Cc: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/vmscan.c | 2 ++ 1 file changed, 2 insertions(+) diff -puN mm/vmscan.c~vmscan-second-chance-replacement-for-anonymous-pages-memcg-lru-scan-fix mm/vmscan.c --- a/mm/vmscan.c~vmscan-second-chance-replacement-for-anonymous-pages-memcg-lru-scan-fix +++ a/mm/vmscan.c @@ -1353,6 +1353,8 @@ static unsigned long shrink_zone(int pri */ if (!scan_global_lru(sc) || inactive_anon_is_low(zone)) shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0); + else if (!scan_global_lru(sc)) + shrink_active_list(SWAP_CLUSTER_MAX, zone, sc, priority, 0); throttle_vm_writeout(sc->gfp_mask); return nr_reclaimed; _ Patches currently in -mm which might be from kamezawa.hiroyu@xxxxxxxxxxxxxx are page-flags-record-page-flag-overlays-explicitly.patch page-flags-record-page-flag-overlays-explicitly-xen.patch memory-hotplugallocate-usemap-on-the-section-with-pgdat-take-4.patch memory-hotplug-dont-calculate-vm_total_pages-twice-when-rebuilding-zonelists-in-online_pages.patch memory-hotplug-add-sysfs-removable-attribute-for-hotplug-memory-remove.patch mark-res_counter_charge_locked-with-__must_check.patch cgroup-files-clean-up-whitespace-in-struct-cftype.patch cgroup-files-add-write_string-cgroup-control-file-method.patch cgroup-files-move-the-release_agent-file-to-use-typed-handlers.patch cgroups-misc-cleanups-to-write_string-patchset.patch cgroup-files-move-notify_on_release-file-to-separate-write-handler.patch cgroup-files-turn-attach_task_by_pid-directly-into-a-cgroup-write-handler.patch cgroup-files-remove-cpuset_common_file_write.patch cgroup-files-convert-devcgroup_access_write-into-a-cgroup-write_string-handler.patch cgroup-files-convert-res_counter_write-to-be-a-cgroups-write_string-handler.patch cgroup_clone-use-pid-of-newly-created-task-for-new-cgroup.patch cgroup_clone-use-pid-of-newly-created-task-for-new-cgroup-fix.patch cgroup_clone-use-pid-of-newly-created-task-for-new-cgroup-checkpatch-fixes.patch memcg-make-global-var-read_mostly.patch memcg-avoid-unnecessary-initialization.patch memcg-better-migration-handling.patch memcg-remove-refcnt-from-page_cgroup.patch memcg-remove-refcnt-from-page_cgroup-fix.patch memcg-remove-refcnt-from-page_cgroup-fix-2.patch memcg-remove-refcnt-from-page_cgroup-fix-memcg-fix-mem_cgroup_end_migration-race.patch memcg-remove-refcnt-from-page_cgroup-memcg-fix-shmem_unuse_inode-charging.patch memcg-helper-function-for-relcaim-from-shmem.patch memcg-helper-function-for-relcaim-from-shmem-memcg-shmem_getpage-release-page-sooner.patch memcg-helper-function-for-relcaim-from-shmem-memcg-mem_cgroup_shrink_usage-css_put.patch memcg-add-hints-for-branch.patch memcg-remove-a-redundant-check.patch memcg-clean-up-checking-of-the-disabled-flag.patch memcg-clean-up-checking-of-the-disabled-flag-memcg-further-checking-of-disabled-flag.patch res_counter-limit-change-support-ebusy.patch memcg-limit-change-shrink-usage.patch memcg-limit-change-shrink-usage-checkpatch-fixes.patch memrlimit-add-memrlimit-controller-documentation.patch memrlimit-setup-the-memrlimit-controller.patch memrlimit-setup-the-memrlimit-controller-memrlimit-correct-mremap-and-move_vma-accounting.patch memrlimit-cgroup-mm-owner-callback-changes-to-add-task-info.patch memrlimit-cgroup-mm-owner-callback-changes-to-add-task-info-memrlimit-fix-mmap_sem-deadlock.patch memrlimit-cgroup-mm-owner-callback-changes-to-add-task-info-memrlimit-fix-sleep-inside-sleeplock-in-mm_update_next_owner.patch memrlimit-add-memrlimit-controller-accounting-and-control.patch memrlimit-add-memrlimit-controller-accounting-and-control-memrlimit-improve-fork-and-error-handling.patch memrlimit-improve-error-handling.patch memrlimit-improve-error-handling-update.patch memrlimit-handle-attach_task-failure-add-can_attach-callback.patch memrlimit-handle-attach_task-failure-add-can_attach-callback-update.patch mm-speculative-page-references-fix-migration_entry_wait-for-speculative-page-cache.patch define-page_file_cache-function-fix-splitlru-shmem_getpage-setpageswapbacked-sooner.patch vmscan-split-lru-lists-into-anon-file-sets-splitlru-memcg-swapbacked-pages-active.patch vmscan-second-chance-replacement-for-anonymous-pages-fix.patch vmscan-second-chance-replacement-for-anonymous-pages-memcg-lru-scan-fix.patch unevictable-lru-infrastructure-putback_lru_page-unevictable-page-handling-rework.patch mlock-mlocked-pages-are-unevictable-fix-truncate-race-and-sevaral-comments.patch fix-double-unlock_page-in-2626-rc5-mm3-kernel-bug-at-mm-filemapc-575.patch restore-patch-failure-of-vmstat-unevictable-and-mlocked-pages-vm-eventspatch.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