linux-stable-rt/include/linux
Mel Gorman b377fd3982 Apply memory policies to top two highest zones when highest zone is ZONE_MOVABLE
The NUMA layer only supports NUMA policies for the highest zone.  When
ZONE_MOVABLE is configured with kernelcore=, the the highest zone becomes
ZONE_MOVABLE.  The result is that policies are only applied to allocations
like anonymous pages and page cache allocated from ZONE_MOVABLE when the
zone is used.

This patch applies policies to the two highest zones when the highest zone
is ZONE_MOVABLE.  As ZONE_MOVABLE consists of pages from the highest "real"
zone, it's always functionally equivalent.

The patch has been tested on a variety of machines both NUMA and non-NUMA
covering x86, x86_64 and ppc64.  No abnormal results were seen in
kernbench, tbench, dbench or hackbench.  It passes regression tests from
the numactl package with and without kernelcore= once numactl tests are
patched to wait for vmstat counters to update.

akpm: this is the nasty hack to fix NUMA mempolicies in the presence of
ZONE_MOVABLE and kernelcore= in 2.6.23.  Christoph says "For .24 either merge
the mobility or get the other solution that Mel is working on.  That solution
would only use a single zonelist per node and filter on the fly.  That may
help performance and also help to make memory policies work better."

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Acked-by:  Lee Schermerhorn <lee.schermerhorn@hp.com>
Tested-by:  Lee Schermerhorn <lee.schermerhorn@hp.com>
Acked-by: Christoph Lameter <clameter@sgi.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-08-22 19:52:47 -07:00
..
amba
byteorder
dvb V4L/DVB (5893): DVB: fix includes of video.h when __KERNEL__ is undefined 2007-07-30 16:26:27 -03:00
hdlc
isdn
lockd
mlx4
mmc mmc: update kerneldoc 2007-07-26 01:53:39 +02:00
mtd
netfilter [NETFILTER]: Add xt_statistic.h to the header list for usermode programs 2007-08-04 21:18:16 -07:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid
rtc
spi spi kerneldoc update 2007-07-31 15:39:44 -07:00
sunrpc
tc_act
tc_ematch
usb
8250_pci.h
Kbuild Include serial_reg.h with userspace headers 2007-07-31 15:39:40 -07:00
a.out.h
ac97_codec.h
acct.h
acpi.h
acpi_pmtmr.h
adb.h
adfs_fs.h
adfs_fs_i.h
adfs_fs_sb.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio.h
aio_abi.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h [x86 setup] Make struct apm_bios_info cross-architecture 2007-07-25 12:02:21 -07:00
arcdevice.h
arcfb.h
async_tx.h
ata.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmel_pdc.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h
auto_fs.h
auto_fs4.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h
bio.h BLOCK: Hide the contents of linux/bio.h if CONFIG_BLOCK=n 2007-08-11 22:34:49 +02:00
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blkdev.h [patch] QUEUE_FLAG_READFULL QUEUE_FLAG_WRITEFULL comment fix 2007-07-27 08:08:24 +02:00
blkpg.h
blktrace_api.h Fix remap handling by blktrace 2007-08-11 22:34:48 +02:00
blockgroup_lock.h
bootmem.h
bottom_half.h
bpqether.h
bsg.h [SCSI] bsg: update sg_io_v4 structure 2007-07-31 10:43:05 -05:00
buffer_head.h
bug.h
cache.h
calc64.h
capability.h
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
chio.h
circ_buf.h
clk.h
clockchips.h timer: remove clockevents_unregister_notifier 2007-08-11 15:47:42 -07:00
clocksource.h
cm4000_cs.h
cn_proc.h
coda.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_psdev.h
coff.h
com20020.h
compat.h
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h make __chk_{user,io}_ptr() accept pointers to volatile 2007-07-26 11:11:57 -07:00
completion.h
comstats.h
concap.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
cpu.h sched: make global code static 2007-08-12 18:08:19 +02:00
cpufreq.h
cpumask.h
cpuset.h
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc7.h
crc16.h
crc32.h
crc32c.h
crypto.h
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
delay.h
delayacct.h
device-mapper.h
device.h Fix ThinkPad T42 poweroff failure introduced by by "PM: Introduce pm_power_off_prepare" 2007-07-26 12:13:06 -07:00
devpts_fs.h
dio.h
dirent.h
display.h
dlm.h
dlm_device.h
dlm_netlink.h
dm-ioctl.h
dm9000.h
dma-mapping.h
dmaengine.h
dmapool.h
dmi.h
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1wm.h
ds1286.h
ds17287rtc.h
dtlk.h
edac.h
edd.h
eeprom_93cx6.h
efi.h
efs_dir.h
efs_fs.h
efs_fs_i.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h
elfcore.h
elfnote.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h [NET]: ethtool_perm_addr only has one implementation 2007-07-31 14:00:29 -07:00
eventfd.h
eventpoll.h
exportfs.h
ext2_fs.h
ext2_fs_sb.h
ext3_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_jbd.h
ext4_fs.h
ext4_fs_extents.h
ext4_fs_i.h
ext4_fs_sb.h
ext4_jbd2.h
fadvise.h
falloc.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fd1772.h
fddidevice.h
fdreg.h
fib_rules.h
file.h
filter.h
firewire-cdev.h
firewire-constants.h
firmware.h
flat.h
font.h
freezer.h Introduce CONFIG_SUSPEND for suspend-to-Ram and standby 2007-07-29 16:45:38 -07:00
fs.h [PATCH] remove mm/filemap.c:file_send_actor() 2007-08-11 22:34:47 +02:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fsl_devices.h
fsnotify.h
fuse.h
futex.h
gameport.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h [PARTITION] MSDOS: Fix Sun num_partitions handling. 2007-07-30 00:27:28 -07:00
getcpu.h
gfp.h
gfs2_ondisk.h
gigaset_dev.h
gpio_keys.h
gpio_mouse.h
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hdsmart.h
hid-debug.h
hid.h
hiddev.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htirq.h
hugetlb.h Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-dev.h
i2c-gpio.h
i2c-id.h
i2c-ocores.h
i2c-pnx.h
i2c-pxa.h
i2c.h i2c.h kernel-doc additions 2007-07-31 15:39:41 -07:00
i2o-dev.h
i2o.h
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h ide: add cable detection for early UDMA66 devices (take 3) 2007-08-20 22:42:56 +02:00
idr.h
ieee80211.h
if.h
if_addr.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h
if_ltalk.h
if_macvlan.h
if_packet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_shaper.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
if_wanpipe.h
igmp.h
in.h
in6.h
in_route.h
inet.h
inet_diag.h
inetdevice.h
init.h x86_64: Don't mark __exitcall as __cold 2007-08-11 15:58:13 -07:00
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
interrupt.h rip some includes from linux/interrupt.h 2007-07-28 19:42:22 -07:00
io.h
ioc3.h
ioc4.h
ioctl.h
ioport.h
ioprio.h
ip.h
ip6_tunnel.h
ipc.h
ipmi.h
ipmi_msgdefs.h
ipmi_smi.h
ipsec.h
ipv6.h [IPV6]: Remove circular dependency on if_inet6.h 2007-07-31 02:28:17 -07:00
ipv6_route.h
ipx.h
irda.h
irq.h irq.h fix kernel-doc 2007-07-31 15:39:41 -07:00
irq_cpustat.h
irqflags.h
irqreturn.h
isa.h
isapnp.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ixjuser.h
jbd.h
jbd2.h
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h m68k/mac: Make mac_hid_mouse_emulate_buttons() declaration visible 2007-08-22 19:52:45 -07:00
kd.h
kdebug.h kdebug.h: forward-declare struct struct notifier_block 2007-07-31 15:39:40 -07:00
kdev_t.h
kernel.h hex_dump: add missing "const" qualifiers 2007-08-11 15:47:41 -07:00
kernel_stat.h
kernelcapi.h
kexec.h
key-ui.h
key.h
keyboard.h
keyctl.h
kfifo.h
klist.h
kmalloc_sizes.h
kmod.h
kobj_map.h
kobject.h kset: kernel-doc cleanups 2007-07-30 14:25:12 -07:00
kprobes.h
kref.h
ks0108.h
kthread.h
ktime.h
kvm.h
kvm_para.h
lapb.h
latency.h
lcd.h
leds.h
lguest.h Provide timespec to guests rather than jiffies clock. 2007-07-28 19:54:33 -07:00
lguest_bus.h lguest: documentation III: Drivers 2007-07-26 11:35:17 -07:00
lguest_launcher.h lguest: documentation III: Drivers 2007-07-26 11:35:17 -07:00
libata.h
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
list.h
llc.h
lm_interface.h
lock_dlm_plock.h
lockdep.h
log2.h
loop.h
lp.h
lzo.h
m41t00.h
m48t86.h
magic.h
major.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
memory.h
memory_hotplug.h
mempolicy.h Apply memory policies to top two highest zones when highest zone is ZONE_MOVABLE 2007-08-22 19:52:47 -07:00
mempool.h
meye.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
mm.h fix NULL pointer dereference in __vm_enough_memory() 2007-08-22 19:52:45 -07:00
mm_inline.h
mm_types.h
mman.h
mmtimer.h
mmzone.h Apply memory policies to top two highest zones when highest zone is ZONE_MOVABLE 2007-08-22 19:52:47 -07:00
mnt_namespace.h
mod_devicetable.h Cross-compilation between e.g. i386 -> 64bit could break -> work around it 2007-08-17 15:16:37 -07:00
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h
mv643xx.h
n_r3964.h
namei.h
nbd.h
ncp.h
ncp_fs.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_mount.h
ncp_no.h
neighbour.h
net.h
netdevice.h [NET]: Share correct feature code between bridging and bonding 2007-08-13 22:52:14 -07:00
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
netrom.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_acl.h
nfs4_mount.h
nfs_fs.h NFS: Fix put_nfs_open_context 2007-08-07 15:13:17 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nfsd_idmap.h
nl80211.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h [NET]: Allow netdev REGISTER/CHANGENAME events to fail 2007-07-31 02:28:15 -07:00
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
of.h
of_device.h
of_platform.h
oom.h
oprofile.h
page-flags.h
pagemap.h
pagevec.h
param.h
parport.h
parport_pc.h
parser.h
pata_platform.h
patchkey.h
pci-acpi.h
pci.h pci: rename __pci_reenable_device() to pci_reenable_device() 2007-08-01 10:00:56 -04:00
pci_hotplug.h
pci_ids.h [POWERPC] Fix PCI Device ID for MPC8544/8533 processors 2007-08-21 19:15:31 -05:00
pci_regs.h
pcieport_if.h
pda_power.h
percpu.h
percpu_counter.h
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phy.h
pid.h
pid_namespace.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h
plist.h
pm.h Fallout from "Remove fs.h from mm.h" patch 2007-07-30 12:25:49 -07:00
pm_legacy.h
pmu.h
pnp.h PNP: fix up after Lindent 2007-07-26 11:35:21 -07:00
pnpbios.h PNP: fix up after Lindent 2007-07-26 11:35:21 -07:00
poison.h
poll.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
power_supply.h
ppdev.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
prctl.h
preempt.h [PATCH] sched: arch preempt notifier mechanism 2007-07-26 13:40:43 +02:00
prefetch.h
prio_tree.h
proc_fs.h Remove unused struct proc_dir_entry::set 2007-08-11 15:47:40 -07:00
profile.h
ps2esdi.h
ptrace.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quotaio_v1.h
quotaio_v2.h
quotaops.h
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h RCU: Remove prototype for nonexistent function synchronize_idle() 2007-08-11 15:47:41 -07:00
reboot.h
reciprocal_div.h
reiserfs_acl.h
reiserfs_fs.h fix preprocessor idiocy in reiserfs 2007-07-28 19:42:22 -07:00
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_xattr.h
relay.h
resource.h
resume-trace.h
rfkill.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
sc26198.h
scatterlist.h
scc.h
sched.h sched: remove the 'u64 now' parameter from ->task_new() 2007-08-09 11:16:49 +02:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdla.h
seccomp.h
securebits.h
security.h fix NULL pointer dereference in __vm_enough_memory() 2007-08-22 19:52:45 -07:00
selection.h selection.h: add tty_struct forward declaration 2007-08-22 19:52:47 -07:00
selinux.h
selinux_netlink.h
sem.h
seq_file.h
seqlock.h
serial.h
serial167.h
serialP.h
serial_8250.h
serial_core.h
serial_pnx8xxx.h
serial_reg.h Serial 8250: handle saving the clear-on-read bits from the LSR and MSR 2007-08-22 19:52:44 -07:00
serio.h
shm.h
shmem_fs.h
signal.h
signalfd.h
skbuff.h [NET]: Page offsets and lengths need to be __u32. 2007-07-31 02:28:28 -07:00
slab.h
slab_def.h
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smb.h
smb_fs.h
smb_fs_i.h
smb_fs_sb.h
smb_mount.h
smbno.h
smp.h
smp_lock.h
snmp.h
socket.h
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
srcu.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h
stringify.h
superhyway.h
suspend.h Introduce CONFIG_SUSPEND for suspend-to-Ram and standby 2007-07-29 16:45:38 -07:00
svga.h
swap.h
swapops.h
synclink.h
sys.h
syscalls.h
sysctl.h Add CTL_PROC back 2007-07-31 15:39:39 -07:00
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
task_io_accounting.h
task_io_accounting_ops.h
taskstats.h
taskstats_kern.h
tc.h
tcp.h
telephony.h
termios.h
textsearch.h
textsearch_fsm.h
tfrc.h
thread_info.h
threads.h
ticable.h
tick.h
tifm.h
time.h Cache xtime every call to update_wall_time 2007-07-25 10:17:44 -07:00
timer.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
topology.h [PATCH] sched: remove cache_hot_time 2007-08-02 17:41:40 +02:00
toshiba.h
transport_class.h
trdevice.h
tsacct_kern.h
tty.h fix serial buffer memory leak 2007-08-11 15:47:41 -07:00
tty_driver.h
tty_flip.h
tty_ldisc.h
types.h
uaccess.h
udf_fs.h
udf_fs_i.h
udf_fs_sb.h
udp.h
ufs_fs.h
ufs_fs_i.h
ufs_fs_sb.h
uinput.h
uio.h
uio_driver.h
ultrasound.h
umem.h
un.h
unistd.h
unwind.h
usb.h USB: usb.h kernel-doc additions 2007-07-30 13:27:44 -07:00
usb_gadget.h
usb_sl811.h
usb_usual.h
usbdevice_fs.h
user.h
user_namespace.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h
videodev.h
videodev2.h V4L/DVB (5968): videodev2.h: remove superfluous FBUF GLOBAL_INV_ALPHA support 2007-08-20 12:18:01 -03:00
videotext.h
vmalloc.h
vmstat.h
vt.h
vt_buffer.h
vt_kern.h
wait.h
wanrouter.h
watchdog.h
wireless.h
workqueue.h
writeback.h
x25.h
xattr.h
xfrm.h
yam.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h