]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - mm/oom_kill.c
memcg: avoid unnecessary system-wide-oom-killer
[linux-2.6-omap-h63xx.git] / mm / oom_kill.c
index 6b9e758c98a59ebd46168ecf150db260988fd437..fd150e3a2567a137eef87c6c76772fd0c34fd112 100644 (file)
@@ -560,6 +560,13 @@ void pagefault_out_of_memory(void)
                /* Got some memory back in the last second. */
                return;
 
+       /*
+        * If this is from memcg, oom-killer is already invoked.
+        * and not worth to go system-wide-oom.
+        */
+       if (mem_cgroup_oom_called(current))
+               goto rest_and_return;
+
        if (sysctl_panic_on_oom)
                panic("out of memory from page fault. panic_on_oom is selected.\n");
 
@@ -571,6 +578,7 @@ void pagefault_out_of_memory(void)
         * Give "p" a good chance of killing itself before we
         * retry to allocate memory.
         */
+rest_and_return:
        if (!test_thread_flag(TIF_MEMDIE))
                schedule_timeout_uninterruptible(1);
 }