linux/include
Christoph Lameter 9614634fe6 [PATCH] ZVC/zone_reclaim: Leave 1% of unmapped pagecache pages for file I/O
It turns out that it is advantageous to leave a small portion of unmapped file
backed pages if all of a zone's pages (or almost all pages) are allocated and
so the page allocator has to go off-node.

This allows recently used file I/O buffers to stay on the node and
reduces the times that zone reclaim is invoked if file I/O occurs
when we run out of memory in a zone.

The problem is that zone reclaim runs too frequently when the page cache is
used for file I/O (read write and therefore unmapped pages!) alone and we have
almost all pages of the zone allocated.  Zone reclaim may remove 32 unmapped
pages.  File I/O will use these pages for the next read/write requests and the
unmapped pages increase.  After the zone has filled up again zone reclaim will
remove it again after only 32 pages.  This cycle is too inefficient and there
are potentially too many zone reclaim cycles.

With the 1% boundary we may still remove all unmapped pages for file I/O in
zone reclaim pass.  However.  it will take a large number of read and writes
to get back to 1% again where we trigger zone reclaim again.

The zone reclaim 2.6.16/17 does not show this behavior because we have a 30
second timeout.

[akpm@osdl.org: rename the /proc file and the variable]
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-03 15:26:59 -07:00
..
acpi
asm-alpha [PATCH] irq-flags: ALPHA: Use the new IRQF_ constants 2006-07-02 13:58:46 -07:00
asm-arm [PATCH] ARM: fixup irqflags breakage after ARM genirq merge 2006-07-02 17:29:22 -07:00
asm-arm26 [PATCH] irq-flags: ARM26: Use the new IRQF_ constants 2006-07-02 13:58:46 -07:00
asm-cris [PATCH] irq-flags: CRIS: Use the new IRQF_ constants 2006-07-02 13:58:46 -07:00
asm-frv [PATCH] irq-flags: FRV: Use the new IRQF_ constants 2006-07-02 13:58:46 -07:00
asm-generic
asm-h8300 [PATCH] irq-flags: H8300: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-i386 [PATCH] irq-flags: i386: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-ia64 [PATCH] genirq ia64 cleanup 2006-07-03 15:26:58 -07:00
asm-m32r [PATCH] irq-flags: M32R: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-m68k [PATCH] irq-flags: M68K: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-m68knommu [PATCH] irq-flags: M68KNOMMU: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-mips [PATCH] irq-flags: MIPS: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-parisc [PATCH] irq-flags: PARISC: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-powerpc [PATCH] irq-flags: POWERPC: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
asm-ppc [PATCH] irq-flags: PPC: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
asm-s390 [PATCH] irq-flags: S390: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
asm-sh [PATCH] irq-flags: SH: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
asm-sh64 [PATCH] irq-flags: SH64: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
asm-sparc [PATCH] irq-flags: SPARC: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
asm-sparc64 [PATCH] irq-flags: SPARC64: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
asm-um
asm-v850 [PATCH] irq-flags: V850: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
asm-x86_64 [PATCH] irq-flags: x86_64: Use the new IRQF_ constants 2006-07-02 13:58:49 -07:00
asm-xtensa [PATCH] irq-flags: XTENSA: Use the new IRQF_ constants 2006-07-02 13:58:49 -07:00
keys
linux [PATCH] ZVC/zone_reclaim: Leave 1% of unmapped pagecache pages for file I/O 2006-07-03 15:26:59 -07:00
math-emu
media
mtd
net [PATCH] irq-flags: drivers/net: Use the new IRQF_ constants 2006-07-02 13:58:51 -07:00
pcmcia
rdma
rxrpc
scsi
sound [PATCH] irq-flags: sound: Use the new IRQF_ constants 2006-07-02 13:58:54 -07:00
video