linux/Documentation
Christoph Lameter 0ff38490c8 [PATCH] zone_reclaim: dynamic slab reclaim
Currently one can enable slab reclaim by setting an explicit option in
/proc/sys/vm/zone_reclaim_mode.  Slab reclaim is then used as a final
option if the freeing of unmapped file backed pages is not enough to free
enough pages to allow a local allocation.

However, that means that the slab can grow excessively and that most memory
of a node may be used by slabs.  We have had a case where a machine with
46GB of memory was using 40-42GB for slab.  Zone reclaim was effective in
dealing with pagecache pages.  However, slab reclaim was only done during
global reclaim (which is a bit rare on NUMA systems).

This patch implements slab reclaim during zone reclaim.  Zone reclaim
occurs if there is a danger of an off node allocation.  At that point we

1. Shrink the per node page cache if the number of pagecache
   pages is more than min_unmapped_ratio percent of pages in a zone.

2. Shrink the slab cache if the number of the nodes reclaimable slab pages
   (patch depends on earlier one that implements that counter)
   are more than min_slab_ratio (a new /proc/sys/vm tunable).

The shrinking of the slab cache is a bit problematic since it is not node
specific.  So we simply calculate what point in the slab we want to reach
(current per node slab use minus the number of pages that neeed to be
allocated) and then repeately run the global reclaim until that is
unsuccessful or we have reached the limit.  I hope we will have zone based
slab reclaim at some point which will make that easier.

The default for the min_slab_ratio is 5%

Also remove the slab option from /proc/sys/vm/zone_reclaim_mode.

[akpm@osdl.org: cleanups]
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-09-26 08:48:51 -07:00
..
ABI [PATCH] Add kernel<->userspace ABI stability documentation 2006-06-21 12:40:47 -07:00
DocBook [PATCH] libata: change path to libata in libata.tmpl 2006-08-22 06:11:17 -04:00
RCU [PATCH] RCU Documentation fix 2006-07-10 13:24:15 -07:00
accounting [PATCH] delay accounting: temporarily enable by default 2006-07-31 13:28:37 -07:00
aoe [PATCH] aoe [2/8]: support dynamic resizing of AoE devices 2006-03-23 22:01:55 -08:00
arm typo fixes: disadvantadge -> disadvantage 2006-06-30 18:23:39 +02:00
block [PATCH] Document online io scheduler switching 2006-04-20 13:04:36 +02:00
cdrom [PATCH] remove verify_area(): remove or edit references to verify_area in Documentation/ 2005-09-07 16:57:35 -07:00
connector [CONNECTOR]: Add userspace example code into Documentation/connector/ 2006-08-26 18:42:00 -07:00
console [PATCH] VT binding: Update documentation 2006-06-26 09:58:33 -07:00
cpu-freq [CPUFREQ] return error when failing to set minfreq 2006-07-31 18:37:05 -04:00
cris Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
crypto [CRYPTO] doc: Update documentation for hash and me 2006-09-21 11:46:20 +10:00
device-mapper [PATCH] Fix dm-snapshot tutorial in Documentation 2005-11-07 07:53:54 -08:00
driver-model typo fixes 2006-06-26 19:05:40 +02:00
drivers/edac [PATCH] Fix and enable EDAC sysfs operation 2006-07-10 13:24:25 -07:00
dvb V4L/DVB (3832): Get_dvb_firmware: download nxt2002 firmware from new driver location 2006-05-12 19:55:17 -03:00
early-userspace earlyuserspace/README: fix homonym err 2005-11-08 17:16:50 +01:00
fb [PATCH] add imacfb documentation and detection 2006-08-14 12:54:28 -07:00
filesystems [PATCH] Documentation update for relay interface 2006-08-27 11:01:31 -07:00
firmware_class [PATCH] drivers/base/firmware_class.c: cleanups 2006-05-21 12:59:19 -07:00
fujitsu/frv Documentation: Make fujitsu/frv/kernel-ABI.txt 80 columns wide 2006-04-01 01:38:15 +02:00
hwmon [PATCH] hwmon: Documentation update for abituguru 2006-07-12 15:43:08 -07:00
i2c [PATCH] i2c: New mailing list 2006-07-12 15:43:07 -07:00
i2o spelling: s/retreive/retrieve/ 2006-01-10 00:10:13 +01:00
i386 [PATCH] x86: reserve a boot-loader ID number for Xen 2006-09-13 07:32:14 -07:00
ia64 [IA64] rework memory attribute aliasing 2006-05-08 16:32:05 -07:00
infiniband IB/ipoib: Remove broken link from Kconfig and documentation 2006-08-03 10:48:31 -07:00
input Input: remove dead URLs from Doclumentation/input/joystick.txt 2006-08-23 00:48:33 -04:00
ioctl spelling: s/appropiate/appropriate/ 2006-01-15 02:00:17 +01:00
isdn [PATCH] i4l gigaset: move sysfs entry to tty class device 2006-06-21 12:40:47 -07:00
kbuild kbuild: fixup Documentation/kbuild/modules.txt 2006-09-25 10:41:04 +02:00
kdump fix paniced->panicked typos 2006-06-26 18:30:00 +02:00
m68k [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
mips [MIPS] Replace board_timer_setup function pointer by plat_timer_setup. 2006-07-13 21:26:17 +01:00
netlabel [NetLabel]: documentation 2006-09-22 14:53:31 -07:00
networking Merge master.kernel.org:/pub/scm/linux/kernel/git/acme/net-2.6 2006-09-24 19:29:57 -07:00
parisc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcmcia [PATCH] pcmcia: expose tool in pcmcia/Documentation/pcmcia/ 2006-06-30 22:09:10 +02:00
power [PATCH] swsusp: documentation updates 2006-06-23 07:43:00 -07:00
powerpc [POWERPC] Fix MPIC sense codes in documentation 2006-08-30 10:36:18 +10:00
s390 [PATCH] s390: cio documentation update 2006-03-24 07:33:15 -08:00
scsi [SCSI] aacraid: README update 2006-09-23 20:10:32 -05:00
serial [SERIAL] Update parity handling documentation 2006-06-02 17:47:26 +01:00
sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sound [ALSA] hda-intel - Fix pci_disable_msi() call 2006-09-23 10:46:42 +02:00
sparc [Documentation]: Update probing info in sbus_drivers.txt 2006-06-23 23:16:17 -07:00
spi [PATCH] SPI: busnum == 0 needs to work 2006-05-16 14:33:57 -07:00
sysctl [PATCH] zone_reclaim: dynamic slab reclaim 2006-09-26 08:48:51 -07:00
telephony Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
uml [PATCH] Spelling fixes for Documentation/ 2005-09-10 10:06:28 -07:00
usb USB: doc: fixes devio.c location in proc_usb_info.txt. 2006-08-02 16:41:42 -07:00
video4linux V4L/DVB (4285): Cx88: add support for Geniatech Digistar / Digiwave 103g 2006-06-30 15:59:46 -03:00
vm [PATCH] page migration: sys_move_pages(): support moving of individual pages 2006-06-23 07:42:53 -07:00
w1 [PATCH] w1: Userspace communication protocol over connector. 2006-06-22 11:22:50 -07:00
watchdog [WATCHDOG] Documentation/watchdog update 2006-06-28 21:24:11 +02:00
x86_64 [PATCH] x86_64: Document backtracer selection options 2006-07-28 19:28:00 -07:00
00-INDEX [NetLabel]: documentation 2006-09-22 14:53:31 -07:00
BUG-HUNTING Documentation: Update to BUG-HUNTING 2006-03-22 00:37:42 +01:00
Changes Documentaion: update Documentation/Changes with minimum versions 2006-09-25 10:06:15 +02:00
CodingStyle [PATCH] CodingStyle: add typedefs chapter 2006-06-23 07:43:08 -07:00
DMA-API.txt [PATCH] dma doc updates 2006-04-14 12:25:26 -07:00
DMA-ISA-LPC.txt [PATCH] ISA DMA API documentation 2005-09-09 14:03:42 -07:00
DMA-mapping.txt [PATCH] Remove pci_dac_set_dma_mask() from Documentation/DMA-mapping.txt 2006-07-14 21:53:54 -07:00
HOWTO [PATCH] Added URI of "linux kernel development process" 2006-04-27 13:08:57 -07:00
IO-mapping.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
IPMI.txt [PATCH] Documentation/IPMI typos 2006-06-30 11:25:39 -07:00
IRQ-affinity.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
IRQ.txt [PATCH] genirq: irq: document what an IRQ is 2006-06-29 10:26:25 -07:00
MSI-HOWTO.txt [PATCH] Doc/MSI-HOWTO: cleanups 2005-11-07 07:53:55 -08:00
ManagementStyle Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
PCIEBUS-HOWTO.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
README.DAC960 [PATCH] devfs: Last little devfs cleanups throughout the kernel tree. 2006-06-26 12:25:09 -07:00
README.cycladesZ Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
SAK.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
SecurityBugs Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
SubmitChecklist [PATCH] checklist update 2006-07-10 13:24:27 -07:00
SubmittingDrivers [PATCH] docs: update some updated code docs 2006-01-14 10:39:53 -08:00
SubmittingPatches [PATCH] We can not allow anonymous contributions to the kernel 2006-09-13 07:32:14 -07:00
VGA-softcursor.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
acpi-hotkey.txt Fix minor documentation typo 2006-04-01 01:49:22 +02:00
applying-patches.txt [PATCH] Docs update: typos, corrections and additions to applying-patches.txt 2006-01-10 08:01:54 -08:00
atomic_ops.txt Spelling fixes for Documentation/atomic_ops.txt 2006-06-26 18:27:35 +02:00
basic_profiling.txt [PATCH] oprofile: report anonymous region samples 2005-06-24 00:06:27 -07:00
binfmt_misc.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cachetlb.txt [PATCH] Add flush_kernel_dcache_page() API 2006-03-26 08:56:53 -08:00
cciss.txt [PATCH] cciss: version update, new hw 2006-09-13 07:32:16 -07:00
cli-sti-removal.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
computone.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpqarray.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpu-hotplug.txt [PATCH] cpu hotplug: fix hotplug cpu documentation for proper usage 2006-07-31 13:28:39 -07:00
cpusets.txt [PATCH] cpuset: top_cpuset tracks hotplug changes to cpu_online_map 2006-08-27 11:01:32 -07:00
cputopology.txt [PATCH] trivial typos in Documentation/cputopology.txt 2006-03-28 09:16:08 -08:00
dcdbas.txt [PATCH] dcdbas: add Dell Systems Management Base Driver with sysfs support 2005-09-07 16:57:27 -07:00
debugging-modules.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dell_rbu.txt [PATCH] dell_rbu: changes in packet update mechanism 2005-10-11 09:46:53 -07:00
devices.txt [PATCH] Typo in ub clause of devices.txt 2006-07-31 13:28:42 -07:00
digiepca.txt typo fixes: aquire -> acquire 2006-06-30 18:23:04 +02:00
dnotify.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dontdiff dontdiff: add utsrelease.h 2006-09-25 13:33:04 +02:00
eisa.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
exception.txt [PATCH] remove verify_area(): remove or edit references to verify_area in Documentation/ 2005-09-07 16:57:35 -07:00
feature-removal-schedule.txt [NET]: Mark frame diverter for future removal. 2006-09-17 23:21:14 -07:00
floppy.txt [PATCH] kernel Doc/ URL corrections 2005-11-22 09:14:30 -08:00
ftape.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hayes-esp.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
highuid.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hpet.txt Documentation/hpet.txt typo 2006-01-15 02:09:54 +01:00
hrtimers.txt [PATCH] hrtimer: hrtimer documentation 2006-01-10 08:01:37 -08:00
hw_random.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ibm-acpi.txt [ACPI] IBM ThinkPad ACPI Extras Driver v0.12 2005-08-25 17:37:51 -04:00
ide.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
initrd.txt [PATCH] documentation: Documentation/initrd.txt 2006-07-31 13:28:44 -07:00
io_ordering.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl-number.txt [PATCH] devfs: Last little devfs cleanups throughout the kernel tree. 2006-06-26 12:25:09 -07:00
iostats.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irqflags-tracing.txt [PATCH] lockdep: irqtrace subsystem, docs 2006-07-03 15:27:03 -07:00
isapnp.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
java.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kernel-doc-nano-HOWTO.txt [PATCH] Doc/kernel-doc: add more usage info 2006-02-01 08:53:27 -08:00
kernel-docs.txt [PATCH] kernel Doc/ URL corrections 2005-11-22 09:14:30 -08:00
kernel-parameters.txt Revert mmiocfg heuristics and blacklist changes 2006-09-19 08:15:22 -07:00
keys-request-key.txt [PATCH] Keys: Allow in-kernel key requestor to pass auxiliary data to upcaller 2006-06-29 10:26:20 -07:00
keys.txt [PATCH] Keys: Allow in-kernel key requestor to pass auxiliary data to upcaller 2006-06-29 10:26:20 -07:00
kobject.txt genhd.c reference in Documentation/kobjects.txt 2006-08-11 14:06:05 -07:00
kprobes.txt [PATCH] kprobes: Update Documentation/kprobes.txt 2006-02-14 16:09:34 -08:00
kref.txt [PATCH] kref: add link to original documentation to the kref documentation. 2005-04-18 21:57:30 -07:00
laptop-mode.txt [PATCH] docs: laptop-mode.txt source file build 2006-04-11 06:18:44 -07:00
ldm.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
leds-class.txt [PATCH] LED: class documentation 2006-03-31 12:18:56 -08:00
lockdep-design.txt [PATCH] lockdep: design docs 2006-07-03 15:27:04 -07:00
locks.txt [PATCH] Docs update: remove obsolete patch from locks.txt 2006-01-10 08:01:54 -08:00
logo.gif Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
logo.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
magic-number.txt [PATCH] mm: rename kmem_cache_s to kmem_cache 2005-11-07 07:53:24 -08:00
mandatory.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mca.txt [PATCH] kernel Doc/ URL corrections 2005-11-22 09:14:30 -08:00
md.txt [PATCH] md: Allow the write_mostly flag to be set via sysfs 2006-06-26 09:58:40 -07:00
memory-barriers.txt [PATCH] remove set_wmb - doc update 2006-07-14 21:56:14 -07:00
memory.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mono.txt [PATCH] merge some from Rusty's trivial patches 2005-09-10 10:06:30 -07:00
moxa-smartio Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mtrr.txt [PATCH] Doc: fix mtrr userspace programs to build cleanly 2006-04-11 06:18:44 -07:00
mutex-design.txt [PATCH] mutex subsystem, documentation 2006-01-09 15:59:20 -08:00
nbd.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nfsroot.txt [PATCH] nfs: Update Documentation/nfsroot.txt to include dhcp, syslinux and isolinux 2006-07-10 13:24:13 -07:00
nmi_watchdog.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nommu-mmap.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
numastat.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
oops-tracing.txt [PATCH] doc: refer to kdump in oops-tracing.txt 2006-01-11 18:42:10 -08:00
paride.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
parport-lowlevel.txt [PATCH] parport: fix documentation 2006-02-03 08:32:06 -08:00
parport.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-error-recovery.txt [PATCH] Documentation: Updated PCI Error Recovery 2006-02-03 08:32:00 -08:00
pci.txt [PATCH] irq-flags: documentation: Use the new IRQF_ constants 2006-07-02 13:58:55 -07:00
pi-futex.txt [PATCH] pi-futex: rt mutex docs 2006-06-27 17:32:47 -07:00
pm.txt [ACPI] linux-acpi@vger.kernel.org replaces acpi-devel@lists.sourceforge.net 2006-01-06 16:19:26 -05:00
pnp.txt [PATCH] pnp: PNP: adjust pnp_register_driver signature 2006-03-27 08:44:53 -08:00
preempt-locking.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prio_tree.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ramdisk.txt [PATCH] Update ramdisk documentation 2006-07-14 21:53:53 -07:00
riscom8.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
robust-futex-ABI.txt [PATCH] lightweight robust futexes updates 2006-03-27 08:44:49 -08:00
robust-futexes.txt [PATCH] pi-futex: robust futex docs fix 2006-06-27 17:32:46 -07:00
rocket.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rpc-cache.txt [PATCH] knfsd: Update rpc-cache.txt to match recent changes 2006-03-27 08:44:43 -08:00
rt-mutex-design.txt [PATCH] pi-futex: rt mutex docs 2006-06-27 17:32:47 -07:00
rt-mutex.txt [PATCH] pi-futex: rt mutex docs 2006-06-27 17:32:47 -07:00
rtc.txt [PATCH] rtc: small documentation update 2006-06-25 10:01:14 -07:00
sched-arch.txt [PATCH] sched: resched and cpu_idle rework 2005-11-09 07:56:33 -08:00
sched-coding.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sched-design.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sched-domains.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sched-stats.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
seclvl.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
serial-console.txt [PATCH] doc: more serial-console info 2006-03-25 08:23:00 -08:00
sgi-ioc4.txt [PATCH] ioc4: Core driver rewrite 2005-06-21 18:46:32 -07:00
sgi-visws.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sharedsubtree.txt [PATCH] Complete description of shared subtrees. 2005-11-07 18:18:11 -08:00
smart-config.txt kbuild: remove checkconfig.pl 2006-02-19 09:51:22 +01:00
smp.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sonypi.txt [PATCH] sonypi SPIC initialisation fix 2005-09-07 16:57:24 -07:00
sparse.txt kbuild: clarify "make C=" build option 2006-09-25 10:10:56 +02:00
specialix.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
spinlocks.txt fix rwlock usage example 2006-03-22 00:19:39 +01:00
stable_api_nonsense.txt [PATCH] stable_api_nonsense.txt fixes 2005-07-29 13:12:49 -07:00
stable_kernel_rules.txt [PATCH] Docs update: small fixes to stable_kernel_rules.txt 2006-01-10 08:01:55 -08:00
stallion.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
svga.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sx.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysrq.txt [PATCH] Correct sa'K' description in sysrq.txt 2006-06-25 10:01:13 -07:00
time_interpolators.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tipar.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tty.txt [PATCH] Correct tty doc 2006-06-26 09:58:17 -07:00
unicode.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unshare.txt [PATCH] unshare system call -v5: Documentation file 2006-02-07 16:12:34 -08:00
voyager.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xterm-linux.xpm Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
zorro.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00

README.cycladesZ

The Cyclades-Z must have firmware loaded onto the card before it will
operate.  This operation should be performed during system startup,

The firmware, loader program and the latest device driver code are
available from Cyclades at
    ftp://ftp.cyclades.com/pub/cyclades/cyclades-z/linux/