original_kernel/Documentation
Paul Jackson 9bf2229f88 [PATCH] cpusets: formalize intermediate GFP_KERNEL containment
This patch makes use of the previously underutilized cpuset flag
'mem_exclusive' to provide what amounts to another layer of memory placement
resolution.  With this patch, there are now the following four layers of
memory placement available:

 1) The whole system (interrupt and GFP_ATOMIC allocations can use this),
 2) The nearest enclosing mem_exclusive cpuset (GFP_KERNEL allocations can use),
 3) The current tasks cpuset (GFP_USER allocations constrained to here), and
 4) Specific node placement, using mbind and set_mempolicy.

These nest - each layer is a subset (same or within) of the previous.

Layer (2) above is new, with this patch.  The call used to check whether a
zone (its node, actually) is in a cpuset (in its mems_allowed, actually) is
extended to take a gfp_mask argument, and its logic is extended, in the case
that __GFP_HARDWALL is not set in the flag bits, to look up the cpuset
hierarchy for the nearest enclosing mem_exclusive cpuset, to determine if
placement is allowed.  The definition of GFP_USER, which used to be identical
to GFP_KERNEL, is changed to also set the __GFP_HARDWALL bit, in the previous
cpuset_gfp_hardwall_flag patch.

GFP_ATOMIC and GFP_KERNEL allocations will stay within the current tasks
cpuset, so long as any node therein is not too tight on memory, but will
escape to the larger layer, if need be.

The intended use is to allow something like a batch manager to handle several
jobs, each job in its own cpuset, but using common kernel memory for caches
and such.  Swapper and oom_kill activity is also constrained to Layer (2).  A
task in or below one mem_exclusive cpuset should not cause swapping on nodes
in another non-overlapping mem_exclusive cpuset, nor provoke oom_killing of a
task in another such cpuset.  Heavy use of kernel memory for i/o caching and
such by one job should not impact the memory available to jobs in other
non-overlapping mem_exclusive cpusets.

This patch enables providing hardwall, inescapable cpusets for memory
allocations of each job, while sharing kernel memory allocations between
several jobs, in an enclosing mem_exclusive cpuset.

Like Dinakar's patch earlier to enable administering sched domains using the
cpu_exclusive flag, this patch also provides a useful meaning to a cpuset flag
that had previously done nothing much useful other than restrict what cpuset
configurations were allowed.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-07 16:57:40 -07:00
..
DocBook [PATCH] Minor libata documentation patch 2005-06-27 23:21:00 -04:00
RCU [PATCH] NMI: Update NMI users of RCU to use new API 2005-09-07 16:57:19 -07:00
aoe [PATCH] aoe: update the documentation to mention aoetools 2005-05-03 23:34:54 -07:00
arm [PATCH] ARM: 2847/1: S3C24XX - Documentation for USB OHCI host 2005-08-10 16:45:14 +01:00
block [PATCH] CFQ io scheduler, add ioprio documentation 2005-06-27 14:33:30 -07:00
cdrom [PATCH] remove verify_area(): remove or edit references to verify_area in Documentation/ 2005-09-07 16:57:35 -07:00
cpu-freq
cris
crypto
device-mapper
driver-model
dvb
early-userspace
fb
filesystems [PATCH] relayfs 2005-09-07 16:57:18 -07:00
firmware_class
fujitsu/frv
hwmon [PATCH] I2C: W83792D documentation 3/3 2005-09-05 09:14:14 -07:00
i2c [PATCH] I2C: Centralize 24RF08 corruption prevention 2005-09-05 09:14:25 -07:00
i2o
i386 [PATCH] Make the bzImage format self-terminating 2005-09-07 16:57:29 -07:00
ia64
infiniband
input Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl
isdn
kbuild
kdump
m68k
mips Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
networking
parisc Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcmcia [PATCH] pcmcia: update documentation 2005-07-28 08:39:00 -07:00
power [PATCH] swsusp: update documentation 2005-09-07 16:57:16 -07:00
powerpc
s390
scsi
serial
sh Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sound [ALSA] ad1816a - Add clockfreq module option 2005-08-30 08:43:32 +02:00
sparc
sysctl [PATCH] setuid core dump 2005-06-23 09:45:26 -07:00
telephony
uml
usb
video4linux
vm [PATCH] swap: swap_lock replace list+device 2005-09-05 00:05:42 -07:00
w1 [PATCH] w1: Updates the w1 documentation (w1.generic) 2005-06-21 21:43:12 -07:00
watchdog
x86_64 [PATCH] x86_64: ignore machine checks from boot time 2005-08-07 10:00:37 -07:00
00-INDEX
BUG-HUNTING
Changes [PATCH] Documentation/Changes: document the required udev version 2005-07-27 16:26:07 -07:00
CodingStyle
DMA-API.txt
DMA-mapping.txt
IO-mapping.txt
IPMI.txt
IRQ-affinity.txt
MSI-HOWTO.txt
ManagementStyle
PCIEBUS-HOWTO.txt
README.DAC960
README.cycladesZ
SAK.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
SecurityBugs
SubmittingDrivers
SubmittingPatches
VGA-softcursor.txt
acpi-hotkey.txt
atomic_ops.txt
basic_profiling.txt
binfmt_misc.txt
cachetlb.txt
cciss.txt
cli-sti-removal.txt
computone.txt
cpqarray.txt
cpusets.txt [PATCH] cpusets: formalize intermediate GFP_KERNEL containment 2005-09-07 16:57:40 -07: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
dell_rbu.txt [PATCH] dell_rbu: new Dell BIOS update driver 2005-09-07 16:57:27 -07:00
devices.txt
digiepca.txt
dnotify.txt
dontdiff
eisa.txt
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 [PATCH] remove verify_area(): remove or edit references to verify_area in Documentation/ 2005-09-07 16:57:35 -07:00
floppy.txt
ftape.txt
hayes-esp.txt
highuid.txt
hpet.txt
hw_random.txt
ibm-acpi.txt
ide.txt
initrd.txt
io_ordering.txt
ioctl-number.txt
iostats.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt [PATCH] Add rdinit parameter to pick early userspace init 2005-09-07 16:57:28 -07:00
keys.txt
kobject.txt
kprobes.txt
kref.txt
laptop-mode.txt
ldm.txt
locks.txt
logo.gif
logo.txt
magic-number.txt
mandatory.txt
mca.txt
md.txt
memory.txt
mono.txt
moxa-smartio
mtrr.txt
nbd.txt
nfsroot.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
paride.txt
parport-lowlevel.txt
parport.txt
pci.txt
pm.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pnp.txt
preempt-locking.txt
prio_tree.txt
ramdisk.txt
riscom8.txt
rocket.txt
rpc-cache.txt
rtc.txt
sched-coding.txt
sched-design.txt
sched-domains.txt
sched-stats.txt
seclvl.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
smart-config.txt
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
specialix.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
stallion.txt
svga.txt
sx.txt Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sysrq.txt
time_interpolators.txt
tipar.txt
tty.txt [PATCH] Introduce tty_unregister_ldisc() 2005-06-23 09:45:35 -07:00
unicode.txt
voyager.txt
xterm-linux.xpm
zorro.txt

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/