David Rientjes
fef1bdd68c
oom: add sysctl to enable task memory dump
...
Adds a new sysctl, 'oom_dump_tasks', that enables the kernel to produce a
dump of all system tasks (excluding kernel threads) when performing an
OOM-killing. Information includes pid, uid, tgid, vm size, rss, cpu,
oom_adj score, and name.
This is helpful for determining why there was an OOM condition and which
rogue task caused it.
It is configurable so that large systems, such as those with several
thousand tasks, do not incur a performance penalty associated with dumping
data they may not desire.
If an OOM was triggered as a result of a memory controller, the tasklist
shall be filtered to exclude tasks that are not a member of the same
cgroup.
Cc: Andrea Arcangeli <andrea@suse.de>
Cc: Christoph Lameter <clameter@sgi.com>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-07 08:42:19 -08:00
..
irq
genirq: stackdump after the "Trying to free already-free IRQ" message
2008-01-30 13:33:24 +01:00
power
kernel/power/disk.c: make code static
2008-02-05 09:44:22 -08:00
time
time: fix sysfs_show_{available,current}_clocksources() buffer overflow problem
2008-02-06 10:41:03 -08:00
.gitignore
acct.c
acct: real_parent ppid
2008-01-07 14:55:37 -08:00
audit.c
[AUDIT] ratelimit printk messages audit
2008-02-01 14:25:04 -05:00
audit.h
[PATCH] audit: watching subtrees
2007-10-21 02:37:45 -04:00
audit_tree.c
[PATCH] audit: watching subtrees
2007-10-21 02:37:45 -04:00
auditfilter.c
[AUDIT] make audit=0 really stop audit messages
2008-02-01 14:24:33 -05:00
auditsc.c
[AUDIT] create context if auditing was ever enabled
2008-02-01 14:24:45 -05:00
backtracetest.c
x86: add a simple backtrace test module
2008-01-30 13:33:08 +01:00
capability.c
Add 64-bit capability support to the kernel
2008-02-05 09:44:20 -08:00
cgroup.c
kernel/cgroup.c: make 2 functions static
2008-02-07 08:42:18 -08:00
cgroup_debug.c
compat.c
configs.c
cpu.c
cpu-hotplug: replace per-subsystem mutexes with get_online_cpus()
2008-01-25 21:08:02 +01:00
cpuset.c
cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()
2008-01-25 21:08:02 +01:00
delayacct.c
dma.c
exec_domain.c
exit.c
do_wait: remove one "else if" branch
2008-02-06 10:41:04 -08:00
extable.c
module: Don't report discarded init pages as kernel text.
2008-01-29 17:13:18 +11:00
fork.c
Memory controller: accounting setup
2008-02-07 08:42:18 -08:00
futex.c
futex: Add bitset conditional wait/wakeup functionality
2008-02-01 17:45:14 +01:00
futex_compat.c
futex: Add bitset conditional wait/wakeup functionality
2008-02-01 17:45:14 +01:00
hrtimer.c
timerfd: new timerfd API
2008-02-05 09:44:07 -08:00
itimer.c
kallsyms.c
remove support for un-needed _extratext section
2008-02-06 10:41:01 -08:00
Kconfig.hz
sched: high-res preemption tick
2008-01-25 21:08:29 +01:00
Kconfig.preempt
sched: remove the !PREEMPT_BKL code
2008-01-25 21:08:33 +01:00
kexec.c
vmcoreinfo: add the array length of "free_list" for filtering free pages
2008-01-08 16:10:36 -08:00
kfifo.c
kmod.c
Fix unbalanced helper_lock in kernel/kmod.c
2008-01-17 15:38:59 -08:00
kprobes.c
kprobes: kretprobe user entry-handler
2008-02-06 10:41:11 -08:00
ksysfs.c
Kobject: convert remaining kobject_unregister() to kobject_put()
2008-01-24 20:40:40 -08:00
kthread.c
sched: fix, always create kernel threads with normal priority
2008-01-25 21:08:33 +01:00
latencytop.c
sched: latencytop support
2008-01-25 21:08:34 +01:00
lockdep.c
softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks
2008-01-25 21:08:02 +01:00
lockdep_internals.h
lockdep_proc.c
Makefile
Memory controller: resource counters
2008-02-07 08:42:18 -08:00
marker.c
Linux Kernel Markers: fix marker mutex not taken upon module load
2007-11-14 18:45:40 -08:00
module.c
x86/non-x86: percpu, node ids, apic ids x86.git fixup
2008-01-30 13:33:32 +01:00
mutex-debug.c
mutex-debug.h
mutex.c
Add mutex_lock_killable
2007-12-06 17:37:59 -05:00
mutex.h
notifier.c
kernel/notifier.c should #include <linux/reboot.h>
2008-02-06 10:41:02 -08:00
ns_cgroup.c
nsproxy.c
panic.c
debug: add the end-of-trace marker and the module list to
2008-01-30 13:32:50 +01:00
params.c
kernel/params.c: remove sparse-warning (different signedness)
2008-02-06 10:41:08 -08:00
pid.c
gfs2: make gfs2_glock.gl_owner_pid be a struct pid *
2008-02-07 08:42:06 -08:00
pm_qos_params.c
pm qos infrastructure and interface
2008-02-05 09:44:22 -08:00
posix-cpu-timers.c
sched: rt-watchdog: fix .rlim_max = RLIM_INFINITY
2008-01-25 21:08:32 +01:00
posix-timers.c
timerfd: new timerfd API
2008-02-05 09:44:07 -08:00
printk.c
printk.c: use unsigned ints instead of longs for logbuf index
2008-02-06 10:41:04 -08:00
profile.c
debug: clean up kernel/profile.c
2008-01-25 21:08:33 +01:00
ptrace.c
kernel/ptrace.c should #include <linux/syscalls.h>
2008-02-06 10:41:02 -08:00
rcuclassic.c
Preempt-RCU: implementation
2008-01-25 21:08:24 +01:00
rcupdate.c
Preempt-RCU: fix rcu_barrier for preemptive environment.
2008-01-25 21:08:24 +01:00
rcupreempt.c
Preempt-RCU: CPU Hotplug handling
2008-01-25 21:08:25 +01:00
rcupreempt_trace.c
Preempt-RCU: implementation
2008-01-25 21:08:24 +01:00
rcutorture.c
cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()
2008-01-25 21:08:02 +01:00
relay.c
relay: nopage
2008-02-06 10:41:07 -08:00
res_counter.c
Memory controller improve user interface
2008-02-07 08:42:18 -08:00
resource.c
Add IORESOUCE_BUSY flag for System RAM
2007-11-14 18:45:39 -08:00
rtmutex-debug.c
Use helpers to obtain task pid in printks
2007-10-19 11:53:43 -07:00
rtmutex-debug.h
rtmutex-tester.c
Driver core: change sysdev classes to use dynamic kobject names
2008-01-24 20:40:40 -08:00
rtmutex.c
Use helpers to obtain task pid in printks
2007-10-19 11:53:43 -07:00
rtmutex.h
rtmutex_common.h
rwsem.c
sched: mark rwsem functions as __sched for wchan/profiling
2007-12-18 15:21:13 +01:00
sched.c
Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
2008-02-01 11:45:47 +11:00
sched_debug.c
sched: keep total / count stats in addition to the max for
2008-01-25 21:08:35 +01:00
sched_fair.c
sched: let +nice tasks have smaller impact
2008-01-31 22:45:22 +01:00
sched_idletask.c
sched: high-res preemption tick
2008-01-25 21:08:29 +01:00
sched_rt.c
sched: fix goto retry in pick_next_task_rt()
2008-01-25 21:08:34 +01:00
sched_stats.h
sched: clean up kernel/sched_stat.h
2007-11-28 15:52:56 +01:00
seccomp.c
signal.c
Add arch_ptrace_stop
2008-02-06 10:41:07 -08:00
softirq.c
time: track accurate idle time with tick_sched.idle_sleeptime
2008-01-30 13:30:04 +01:00
softlockup.c
debug: softlockup looping fix
2008-02-02 14:27:45 +11:00
spinlock.c
spinlock: lockbreak cleanup
2008-01-30 13:31:20 +01:00
srcu.c
make srcu_readers_active() static
2008-02-06 10:41:02 -08:00
stacktrace.c
stop_machine.c
stopmachine: semaphore to mutex
2008-02-06 10:41:08 -08:00
sys.c
kernel/sys.c: get rid of expensive divides in groups_sort()
2008-02-06 10:41:09 -08:00
sys_ni.c
timerfd: new timerfd API
2008-02-05 09:44:07 -08:00
sysctl.c
oom: add sysctl to enable task memory dump
2008-02-07 08:42:19 -08:00
sysctl_check.c
capabilities: introduce per-process capability bounding set
2008-02-05 09:44:20 -08:00
taskstats.c
kernel/taskstats.c: fix bogus nlmsg_free()
2007-11-14 18:45:44 -08:00
test_kprobes.c
kprobes: kretprobe user entry-handler
2008-02-06 10:41:11 -08:00
time.c
speed up jiffies conversion functions if HZ==USER_HZ
2008-02-06 10:41:10 -08:00
timer.c
taskstats scaled time cleanup
2008-02-06 10:41:00 -08:00
tsacct.c
uid16.c
user.c
uids: merge multiple error paths in alloc_uid() into one
2008-01-25 21:08:26 +01:00
user_namespace.c
utsname.c
utsname_sysctl.c
Isolate the UTS namespace's domainname and hostname back
2007-11-29 09:24:53 -08:00
wait.c
wait: Use TASK_NORMAL
2007-12-06 17:34:36 -05:00
workqueue.c
cpu-hotplug: replace per-subsystem mutexes with get_online_cpus()
2008-01-25 21:08:02 +01:00