1
linux/Documentation
KAMEZAWA Hiroyuki 0b7f569e45 memcg: fix OOM killer under memcg
This patch tries to fix OOM Killer problems caused by hierarchy.
Now, memcg itself has OOM KILL function (in oom_kill.c) and tries to
kill a task in memcg.

But, when hierarchy is used, it's broken and correct task cannot
be killed. For example, in following cgroup

	/groupA/	hierarchy=1, limit=1G,
		01	nolimit
		02	nolimit
All tasks' memory usage under /groupA, /groupA/01, groupA/02 is limited to
groupA's 1Gbytes but OOM Killer just kills tasks in groupA.

This patch provides makes the bad process be selected from all tasks
under hierarchy. BTW, currently, oom_jiffies is updated against groupA
in above case. oom_jiffies of tree should be updated.

To see how oom_jiffies is used, please check mem_cgroup_oom_called()
callers.

[akpm@linux-foundation.org: build fix]
[akpm@linux-foundation.org: const fix]
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Paul Menage <menage@google.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-04-02 19:04:55 -07:00
..
ABI Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 2009-04-01 10:57:49 -07:00
accounting Documentation/accounting/getdelays.c: fix endless loop 2009-01-15 16:39:37 -08:00
acpi
aoe
arm Merge branch 'next-s3c-pm' of git://aeryn.fluff.org.uk/bjdooks/linux into devel 2009-03-26 22:44:43 +00:00
auxdisplay
blackfin
block block: Repeated lines in switching-sched.txt 2009-03-26 11:01:28 +01:00
blockdev
cdrom
cgroups memcg: fix OOM killer under memcg 2009-04-02 19:04:55 -07:00
connector Documentation/connector/cn_test.c: don't use gfp_any() 2009-02-12 16:47:01 -08:00
console
cpu-freq [CPUFREQ] ondemand/conservative: sanitize sampling_rate restrictions 2009-02-24 22:47:31 -05:00
cpuidle
cris
crypto
development-process Fix a typo in the development process document. 2009-01-08 16:32:13 -07:00
device-mapper
DocBook documentation: ignore byproducts from latex 2009-04-02 19:04:53 -07:00
driver-model PATCH [1/2] Documentation/driver-model/device.txt: fix struct device_attribute 2009-02-22 09:27:15 -08:00
dvb V4L/DVB (11138): get_dvb_firmware: add support for downloading the cx2584x firmware for pvrusb2 2009-03-30 12:43:31 -03:00
early-userspace
fault-injection
fb fbdev: remove cyblafb driver 2009-04-01 08:59:33 -07:00
filesystems documentation: update Documentation/filesystem/proc.txt and Documentation/sysctls 2009-04-02 19:04:53 -07:00
firmware_class
frv
hwmon hwmon: Add LTC4215 driver 2009-04-01 08:59:21 -07:00
i2c Move the pcf8591 driver to hwmon 2009-03-30 21:46:43 +02:00
i2o
ia64
ide
infiniband
input
ioctl V4L/DVB (10870a): remove all references for video_decoder.h 2009-03-30 12:43:15 -03:00
isdn
ja_JP Sync patch for jp_JP/stable_kernel_rules.txt 2009-01-28 15:55:48 -08:00
kbuild kbuild: fix kbuild.txt typos 2009-01-14 21:42:51 +01:00
kdump
ko_KR
laptops ACPI: thinkpad-acpi: bump up version to 0.22 2009-01-15 13:48:24 -05:00
lguest lguest: barrier me harder 2009-03-30 21:55:26 +10:30
m68k
make
mips ide: remove unused CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ 2009-01-14 19:19:03 +01:00
misc-devices drivers/misc/isl29003.c: driver for the ISL29003 ambient light sensor 2009-04-01 08:59:18 -07:00
mn10300
mtd
namespaces
netlabel
networking ipv6: Fix incorrect disable_ipv6 behavior 2009-03-18 18:22:48 -07:00
parisc
PCI PCI MSI: Add example request loop to MSI-HOWTO.txt 2009-03-20 11:35:04 -07:00
pcmcia
power
powerpc powerpc: add mmc-spi-slot bindings 2009-04-01 08:59:23 -07:00
prctl
RCU rcu: documentation 1Q09 update 2009-03-10 15:55:11 -07:00
s390
scheduler sched, documentation: remove old O(1) scheduler document 2009-03-02 12:02:52 +01:00
scsi [SCSI] osd: Documentation for OSD library 2009-03-12 12:58:09 -05:00
serial
sh
sound Merge branch 'topic/oxygen' into for-linus 2009-03-24 00:36:17 +01:00
sparc
spi hwmon: (lm70) Code streamlining and cleanup 2009-01-07 16:37:34 +01:00
sysctl documentation: fix unix_dgram_qlen description 2009-04-02 19:04:53 -07:00
telephony
thermal
timers
tracers doc: mmiotrace.txt, buffer size control change 2009-02-15 20:05:13 +01:00
uml
usb USB: usbmon: Add binary API v1 2009-03-24 16:20:36 -07:00
video4linux V4L/DVB (11225): v4lgrab: fix compilation warnings 2009-03-30 12:43:41 -03:00
vm
w1 w1: send status messages after command processing 2009-01-08 08:31:14 -08:00
watchdog
wimax i2400m: documentation and instructions for usage 2009-01-07 10:00:18 -08:00
x86 Merge branch 'x86/doc' into x86/core 2009-03-05 21:49:44 +01:00
zh_CN
00-INDEX
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
BUG-HUNTING
c2port.txt
cachetlb.txt
Changes Documentation/Changes: add required versions for new filesystems 2009-01-29 18:19:30 -08:00
CodingStyle fix emacs indenting howto filename expansion 2009-01-29 18:19:29 -08:00
cpu-hotplug.txt
cpu-load.txt
cputopology.txt cpumask: Use topology_core_cpumask()/topology_thread_cpumask() 2009-01-11 19:12:49 +01:00
credentials.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt [SCSI] major.h: char-major number for OSD device driver 2009-03-12 12:58:05 -05:00
DMA-API.txt dma-debug: Documentation update 2009-03-17 12:56:47 +01:00
DMA-attributes.txt
DMA-ISA-LPC.txt
DMA-mapping.txt
dmaengine.txt
dontdiff dontdiff: Fix asm exclude 2009-03-26 15:45:43 -07:00
dynamic-debug-howto.txt Dynamic debug: allow simple quoting of words 2009-03-24 16:38:27 -07:00
edac.txt
eisa.txt
email-clients.txt
exception.txt
feature-removal-schedule.txt gpio: gpio_{request,free}() now required (feature removal) 2009-04-02 19:04:51 -07:00
ftrace.txt
gpio.txt gpio: gpio_{request,free}() now required (feature removal) 2009-04-02 19:04:51 -07:00
highuid.txt
HOWTO
hw_random.txt
ics932s401
initrd.txt
Intel-IOMMU.txt
io_ordering.txt
io-mapping.txt
IO-mapping.txt Documentation: move DMA-mapping.txt to Doc/PCI/ 2009-01-29 18:19:29 -08:00
iostats.txt
IPMI.txt
IRQ-affinity.txt
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt kernel-doc: preferred ending marker and examples 2009-02-11 14:25:36 -08:00
kernel-docs.txt
kernel-parameters.txt Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2009-04-01 09:47:12 -07:00
keys-request-key.txt
keys.txt
kobject.txt
kprobes.txt
kref.txt
ldm.txt
leds-class.txt
local_ops.txt
lockdep-design.txt lockdep: get_user_chars() redo 2009-02-14 23:28:22 +01:00
lockstat.txt
logo.svg linux.conf.au 2009: Tuz 2009-03-16 07:55:37 -07:00
logo.txt linux.conf.au 2009: Tuz 2009-03-16 07:55:37 -07:00
magic-number.txt
Makefile
ManagementStyle
markers.txt
mca.txt
md.txt
memory-barriers.txt
memory-hotplug.txt
memory.txt
mono.txt
mutex-design.txt
nmi_watchdog.txt
nommu-mmap.txt NOMMU: Make mmap allocation page trimming behaviour configurable. 2009-01-08 12:04:47 +00:00
numastat.txt
oops-tracing.txt
parport-lowlevel.txt
parport.txt
pi-futex.txt
pnp.txt
preempt-locking.txt
printk-formats.txt
prio_tree.txt
rbtree.txt
rfkill.txt
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
SAK.txt
SecurityBugs
SELinux.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
Smack.txt smack: Add a new '-CIPSO' option to the network address label configuration 2009-03-28 15:01:37 +11:00
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
SubmitChecklist
SubmittingDrivers
SubmittingPatches
svga.txt
sysfs-rules.txt
sysrq.txt filesystem freeze: allow SysRq emergency thaw to thaw frozen filesystems 2009-04-01 08:59:17 -07:00
tracepoints.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
VGA-softcursor.txt
video-output.txt
volatile-considered-harmful.txt
voyager.txt
zorro.txt