diff --git a/TODO b/TODO index db301e61e..24e57f99a 100644 --- a/TODO +++ b/TODO @@ -4,7 +4,6 @@ Empty * linux-2.6-debug-taint-vm.patch -* linux-2.6-debug-vm-would-have-oomkilled.patch TODO: Push upstream * linux-2.6-acpi-video-dos.patch diff --git a/kernel.spec b/kernel.spec index fb1d6cbcc..83004f082 100644 --- a/kernel.spec +++ b/kernel.spec @@ -647,7 +647,6 @@ Patch09: linux-2.6-upstream-reverts.patch Patch161: linux-2.6-i386-nx-emulation.patch Patch202: linux-2.6-debug-taint-vm.patch -Patch203: linux-2.6-debug-vm-would-have-oomkilled.patch Patch383: linux-2.6-defaults-aspm.patch @@ -1238,7 +1237,6 @@ ApplyPatch linux-2.6-acpi-debug-infinite-loop.patch # Various low-impact patches to aid debugging. ApplyPatch linux-2.6-debug-taint-vm.patch -ApplyPatch linux-2.6-debug-vm-would-have-oomkilled.patch # # PCI @@ -2034,6 +2032,11 @@ fi # and build. %changelog +* Fri Aug 26 2011 Dave Jones +- Drop linux-2.6-debug-vm-would-have-oomkilled.patch + The oom-killer heuristics have improved enough that this should + never be necessary (and it probably doesn't dtrt any more) + * Fri Aug 26 2011 Dave Jones - Drop linux-2.6-32bit-mmap-exec-randomization.patch Outlived it's usefulness (and made of ugly) diff --git a/linux-2.6-debug-vm-would-have-oomkilled.patch b/linux-2.6-debug-vm-would-have-oomkilled.patch deleted file mode 100644 index 8bd05ab06..000000000 --- a/linux-2.6-debug-vm-would-have-oomkilled.patch +++ /dev/null @@ -1,69 +0,0 @@ -From beb764ac03e52eba1a654afb4273fab1f9de3cff Mon Sep 17 00:00:00 2001 -From: Kyle McMartin -Date: Mon, 29 Nov 2010 20:59:14 -0500 -Subject: [PATCH] linux-2.6-debug-vm-would_have_oomkilled - ---- - include/linux/oom.h | 1 + - kernel/sysctl.c | 7 +++++++ - mm/oom_kill.c | 8 ++++++++ - 3 files changed, 16 insertions(+), 0 deletions(-) - -diff --git a/include/linux/oom.h b/include/linux/oom.h -index 5e3aa83..79a27b4 100644 ---- a/include/linux/oom.h -+++ b/include/linux/oom.h -@@ -72,5 +72,6 @@ extern struct task_struct *find_lock_task_mm(struct task_struct *p); - extern int sysctl_oom_dump_tasks; - extern int sysctl_oom_kill_allocating_task; - extern int sysctl_panic_on_oom; -+extern int sysctl_would_have_oomkilled; - #endif /* __KERNEL__*/ - #endif /* _INCLUDE_LINUX_OOM_H */ -diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 5abfa15..a0fed6d 100644 ---- a/kernel/sysctl.c -+++ b/kernel/sysctl.c -@@ -1000,6 +1000,13 @@ static struct ctl_table vm_table[] = { - .proc_handler = proc_dointvec, - }, - { -+ .procname = "would_have_oomkilled", -+ .data = &sysctl_would_have_oomkilled, -+ .maxlen = sizeof(sysctl_would_have_oomkilled), -+ .mode = 0644, -+ .proc_handler = proc_dointvec, -+ }, -+ { - .procname = "overcommit_ratio", - .data = &sysctl_overcommit_ratio, - .maxlen = sizeof(sysctl_overcommit_ratio), -diff --git a/mm/oom_kill.c b/mm/oom_kill.c -index 7dcca55..281ac39 100644 ---- a/mm/oom_kill.c -+++ b/mm/oom_kill.c -@@ -35,6 +35,7 @@ - int sysctl_panic_on_oom; - int sysctl_oom_kill_allocating_task; - int sysctl_oom_dump_tasks = 1; -+int sysctl_would_have_oomkilled; - static DEFINE_SPINLOCK(zone_scan_lock); - - #ifdef CONFIG_NUMA -@@ -477,6 +478,13 @@ static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, - } - - task_lock(p); -+ if (sysctl_would_have_oomkilled) { -+ printk(KERN_ERR "%s: would have killed process %d (%s), but continuing instead...\n", -+ __func__, task_pid_nr(p), p->comm); -+ task_unlock(p); -+ return 0; -+ } -+ - pr_err("%s: Kill process %d (%s) score %d or sacrifice child\n", - message, task_pid_nr(p), p->comm, points); - task_unlock(p); --- -1.7.3.2 -