kernel-hacking-2024-linux-s.../Documentation
Johannes Weiner 9b272977e3 memcg: skip scanning active lists based on individual size
Reclaim decides to skip scanning an active list when the corresponding
inactive list is above a certain size in comparison to leave the assumed
working set alone while there are still enough reclaim candidates around.

The memcg implementation of comparing those lists instead reports whether
the whole memcg is low on the requested type of inactive pages,
considering all nodes and zones.

This can lead to an oversized active list not being scanned because of the
state of the other lists in the memcg, as well as an active list being
scanned while its corresponding inactive list has enough pages.

Not only is this wrong, it's also a scalability hazard, because the global
memory state over all nodes and zones has to be gathered for each memcg
and zone scanned.

Make these calculations purely based on the size of the two LRU lists
that are actually affected by the outcome of the decision.

Signed-off-by: Johannes Weiner <jweiner@redhat.com>
Reviewed-by: Rik van Riel <riel@redhat.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: Balbir Singh <bsingharora@gmail.com>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Reviewed-by: Ying Han <yinghan@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-02 16:07:00 -07:00
..
ABI Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 2011-10-31 16:10:33 -07:00
accounting
acpi
aoe
arm
auxdisplay
blackfin doc: fix broken references 2011-09-27 18:08:04 +02:00
block doc: fix broken references 2011-09-27 18:08:04 +02:00
blockdev
cdrom doc: fix broken references 2011-09-27 18:08:04 +02:00
cgroups memcg: skip scanning active lists based on individual size 2011-11-02 16:07:00 -07:00
connector
console
cpu-freq
cpuidle
cris
crypto
development-process doc: fix broken references 2011-09-27 18:08:04 +02:00
device-mapper
devicetree Merge branch 'next/soc' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 21:08:03 -07:00
DocBook Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2011-10-31 15:42:54 -07:00
driver-model
dvb [media] update az6027 firmware URL 2011-10-14 10:29:45 -03:00
early-userspace
fault-injection fault-injection: update documentation with the mmc module param 2011-10-26 16:32:13 -04:00
fb
filesystems Merge branch 'for-linus' of git://github.com/ericvh/linux 2011-10-26 14:20:53 +02:00
firmware_class
frv doc: fix broken references 2011-09-27 18:08:04 +02:00
hid
hwmon hwmon: (lm75) Document why clones are not detected 2011-10-24 11:09:47 -07:00
i2c i2c: Functions for byte-swapped smbus_write/read_word_data 2011-10-30 13:47:25 +01:00
i2o
ia64
ide
infiniband
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2011-10-27 08:44:20 +02:00
ioctl
isdn
ja_JP
kbuild
kdump
ko_KR
laptops doc: fix broken references 2011-09-27 18:08:04 +02:00
leds
m68k
make
mips
misc-devices
mmc
mn10300
mtd
namespaces
netlabel
networking qlcnic: Updated License file 2011-10-30 03:09:40 -04:00
nfc
parisc
PCI doc: fix broken references 2011-09-27 18:08:04 +02:00
pcmcia
power Merge branch 'for-linus' of git://opensource.wolfsonmicro.com/regulator 2011-11-01 15:06:20 -07:00
powerpc
pps
prctl
pti
ptp
rapidio
RCU rcu: Document interpretation of RCU-lockdep splats 2011-09-28 21:38:28 -07:00
s390
scheduler
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2011-10-28 16:44:18 -07:00
security doc: fix broken references 2011-09-27 18:08:04 +02:00
serial tty/serial: RS485 bindings for device tree 2011-10-18 16:40:33 -07:00
sh
sound Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound 2011-10-28 14:25:01 -07:00
sparc
spi doc: fix broken references 2011-09-27 18:08:04 +02:00
sysctl kernel/sysctl.c: add cap_last_cap to /proc/sys/kernel 2011-10-31 17:30:53 -07:00
target
telephony
thermal
timers doc: fix broken references 2011-09-27 18:08:04 +02:00
trace mm: change isolate mode from #define to bitwise type 2011-10-31 17:30:44 -07:00
usb Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm 2011-10-25 15:18:39 +02:00
vDSO
video4linux [media] gspca - zc3xx: New webcam 03f0:1b07 HP Premium Starter Cam 2011-09-23 23:31:12 -03:00
virtual Merge branch 'kvm-updates/3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm 2011-10-30 15:36:45 -07:00
vm Merge branches 'slab/next' and 'slub/partial' into slab/for-linus 2011-10-26 18:09:12 +03:00
w1
watchdog
wimax
x86
zh_CN remove the messy code file Documentation/zh_CN/SubmitChecklist 2011-09-26 16:18:41 -07:00
.gitignore
00-INDEX
applying-patches.txt
atomic_ops.txt
bad_memory.txt
basic_profiling.txt
binfmt_misc.txt
braille-console.txt
bt8xxgpio.txt
btmrvl.txt
BUG-HUNTING
bus-virt-phys-mapping.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
cachetlb.txt
Changes
circular-buffers.txt
coccinelle.txt
CodingStyle
cpu-hotplug.txt
cpu-load.txt
cputopology.txt
dcdbas.txt
debugging-modules.txt
debugging-via-ohci1394.txt
dell_rbu.txt
devices.txt
DMA-API-HOWTO.txt
DMA-API.txt
DMA-attributes.txt
DMA-ISA-LPC.txt
dmaengine.txt
dontdiff
dynamic-debug-howto.txt
edac.txt
eisa.txt
email-clients.txt
feature-removal-schedule.txt Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2011-10-31 15:42:54 -07:00
flexible-arrays.txt
futex-requeue-pi.txt
gcov.txt
gpio.txt
highuid.txt
HOWTO
hw_random.txt
hwspinlock.txt
init.txt
initrd.txt
Intel-IOMMU.txt
intel_txt.txt
io-mapping.txt
io_ordering.txt
iostats.txt
IPMI.txt
IRQ-affinity.txt
IRQ.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
kernel-parameters.txt Merge branch 'akpm' (Andrew's incoming) 2011-10-31 17:46:07 -07:00
kmemcheck.txt
kmemleak.txt
kobject.txt
kprobes.txt
kref.txt
ldm.txt
local_ops.txt
lockdep-design.txt
lockstat.txt
logo.gif
logo.txt
magic-number.txt
Makefile
ManagementStyle
mca.txt
md.txt
media-framework.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
memory-barriers.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
memory-hotplug.txt
memory.txt
mono.txt
mutex-design.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
padata.txt
parport-lowlevel.txt
parport.txt
pi-futex.txt
pinctrl.txt drivers: create a pin control subsystem 2011-10-13 12:49:17 +02:00
pnp.txt
preempt-locking.txt
printk-formats.txt
prio_tree.txt
ramoops.txt
rbtree.txt
rfkill.txt doc: fix broken references 2011-09-27 18:08:04 +02:00
robust-futex-ABI.txt
robust-futexes.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
SAK.txt
SecurityBugs
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
SM501.txt
sparse.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt Update email address for stable patch submission 2011-10-18 13:58:59 -07:00
SubmitChecklist
SubmittingDrivers
SubmittingPatches
svga.txt
sysfs-rules.txt
sysrq.txt
unaligned-memory-access.txt
unicode.txt
unshare.txt
VGA-softcursor.txt
vgaarbiter.txt
video-output.txt
volatile-considered-harmful.txt
workqueue.txt
xz.txt
zorro.txt