revert back to .14
[linux-2.6.git] / linux-2.6-540-oom-kill.patch
index d8e5a20..286d876 100644 (file)
@@ -1,7 +1,6 @@
-Index: linux-2.6.27.y/init/Kconfig
-===================================================================
---- linux-2.6.27.y.orig/init/Kconfig
-+++ linux-2.6.27.y/init/Kconfig
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/init/Kconfig linux-2.6.27.10-vs2.3.x-P540/init/Kconfig
+--- linux-2.6.27.10-vs2.3.x-P/init/Kconfig     2008-10-13 14:52:09.000000000 +0200
++++ linux-2.6.27.10-vs2.3.x-P540/init/Kconfig  2009-01-12 01:18:23.000000000 +0100
 @@ -306,6 +306,23 @@ config CGROUP_DEVICE
          Provides a cgroup implementing whitelists for devices which
          a process in the cgroup can mknod or open.
@@ -26,11 +25,10 @@ Index: linux-2.6.27.y/init/Kconfig
  config CPUSETS
        bool "Cpuset support"
        depends on SMP && CGROUPS
-Index: linux-2.6.27.y/mm/oom_kill.c
-===================================================================
---- linux-2.6.27.y.orig/mm/oom_kill.c
-+++ linux-2.6.27.y/mm/oom_kill.c
-@@ -177,6 +177,11 @@ unsigned long badness(struct task_struct
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/mm/oom_kill.c linux-2.6.27.10-vs2.3.x-P540/mm/oom_kill.c
+--- linux-2.6.27.10-vs2.3.x-P/mm/oom_kill.c    2008-10-13 14:54:20.000000000 +0200
++++ linux-2.6.27.10-vs2.3.x-P540/mm/oom_kill.c 2009-01-12 01:18:23.000000000 +0100
+@@ -176,6 +176,11 @@ unsigned long badness(struct task_struct
        return points;
  }
  
@@ -42,23 +40,7 @@ Index: linux-2.6.27.y/mm/oom_kill.c
  /*
   * Determine the type of allocation constraint.
   */
-@@ -454,6 +459,7 @@ out:
-       read_unlock(&tasklist_lock);
-       cgroup_unlock();
- }
-+
- #endif
- static BLOCKING_NOTIFIER_HEAD(oom_notify_list);
-@@ -519,6 +525,7 @@ void clear_zonelist_oom(struct zonelist 
-       }
-       spin_unlock(&zone_scan_mutex);
- }
-+EXPORT_SYMBOL_GPL(clear_zonelist_oom);
- /**
-  * out_of_memory - kill the "best" process when we run out of memory
-@@ -602,3 +609,47 @@ out:
+@@ -597,3 +602,37 @@ out:
        if (!test_thread_flag(TIF_MEMDIE))
                schedule_timeout_uninterruptible(1);
  }
@@ -95,21 +77,10 @@ Index: linux-2.6.27.y/mm/oom_kill.c
 +      }
 +      spin_unlock(&oom_lock);
 +}
-+
-+#ifdef CONFIG_CGROUP_MEM_RES_CTLR
-+void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask)
-+{
-+      cgroup_lock();
-+      panic("Memory cgroup out Of Memory");
-+      cgroup_unlock();
-+}
-+
-+#endif
 +#endif /*  CONFIG_OOM_PANIC */
-Index: linux-2.6.27.y/mm/oom_panic.c
-===================================================================
---- /dev/null
-+++ linux-2.6.27.y/mm/oom_panic.c
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-P/mm/oom_panic.c linux-2.6.27.10-vs2.3.x-P540/mm/oom_panic.c
+--- linux-2.6.27.10-vs2.3.x-P/mm/oom_panic.c   1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.27.10-vs2.3.x-P540/mm/oom_panic.c        2009-01-12 01:18:23.000000000 +0100
 @@ -0,0 +1,51 @@
 +/* 
 + * Just panic() instead of the default behavior of selecting processes
@@ -162,11 +133,46 @@ Index: linux-2.6.27.y/mm/oom_panic.c
 +out_unlock:
 +      spin_unlock(&oom_lock);
 +}
-Index: linux-2.6.27.y/mm/page_alloc.c
-===================================================================
---- linux-2.6.27.y.orig/mm/page_alloc.c
-+++ linux-2.6.27.y/mm/page_alloc.c
-@@ -1588,11 +1588,12 @@ nofail_alloc:
+
+; fixup
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-PS-02.0/mm/oom_kill.c linux-2.6.27.10-vs2.3.x-PS-02.1/mm/oom_kill.c
+--- linux-2.6.27.10-vs2.3.x-PS-02.0/mm/oom_kill.c      2009-01-25 02:29:32.000000000 +0100
++++ linux-2.6.27.10-vs2.3.x-PS-02.1/mm/oom_kill.c      2009-01-25 02:05:07.000000000 +0100
+@@ -454,6 +454,7 @@ out:
+       read_unlock(&tasklist_lock);
+       cgroup_unlock();
+ }
++
+ #endif
+ static BLOCKING_NOTIFIER_HEAD(oom_notify_list);
+@@ -519,6 +520,7 @@ void clear_zonelist_oom(struct zonelist 
+       }
+       spin_unlock(&zone_scan_mutex);
+ }
++EXPORT_SYMBOL_GPL(clear_zonelist_oom);
+ /**
+  * out_of_memory - kill the "best" process when we run out of memory
+@@ -635,4 +637,14 @@ void out_of_memory(struct zonelist *zone
+       }
+       spin_unlock(&oom_lock);
+ }
++
++#ifdef CONFIG_CGROUP_MEM_RES_CTLR
++void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask)
++{
++      cgroup_lock();
++      panic("Memory cgroup out Of Memory");
++      cgroup_unlock();
++}
++
++#endif
+ #endif /*  CONFIG_OOM_PANIC */
+diff -NurpP --exclude '*.orig' --exclude '*.rej' linux-2.6.27.10-vs2.3.x-PS-02.0/mm/page_alloc.c linux-2.6.27.10-vs2.3.x-PS-02.1/mm/page_alloc.c
+--- linux-2.6.27.10-vs2.3.x-PS-02.0/mm/page_alloc.c    2008-12-19 12:09:14.000000000 +0100
++++ linux-2.6.27.10-vs2.3.x-PS-02.1/mm/page_alloc.c    2009-01-25 00:37:42.000000000 +0100
+@@ -1583,11 +1583,12 @@ nofail_alloc:
                if (page)
                        goto got_pg;
        } else if ((gfp_mask & __GFP_FS) && !(gfp_mask & __GFP_NORETRY)) {
@@ -180,7 +186,7 @@ Index: linux-2.6.27.y/mm/page_alloc.c
                /*
                 * Go through the zonelist yet one more time, keep
                 * very high watermark here, this is only to catch
-@@ -1603,18 +1604,24 @@ nofail_alloc:
+@@ -1598,18 +1599,24 @@ nofail_alloc:
                        order, zonelist, high_zoneidx,
                        ALLOC_WMARK_HIGH|ALLOC_CPUSET);
                if (page) {