Christoph Lameter
6cb062296f
Categorize GFP flags
...
The function of GFP_LEVEL_MASK seems to be unclear. In order to clear up
the mystery we get rid of it and replace GFP_LEVEL_MASK with 3 sets of GFP
flags:
GFP_RECLAIM_MASK Flags used to control page allocator reclaim behavior.
GFP_CONSTRAINT_MASK Flags used to limit where allocations can occur.
GFP_SLAB_BUG_MASK Flags that the slab allocator BUG()s on.
These replace the uses of GFP_LEVEL mask in the slab allocators and in
vmalloc.c.
The use of the flags not included in these sets may occur as a result of a
slab allocation standing in for a page allocation when constructing scatter
gather lists. Extraneous flags are cleared and not passed through to the
page allocator. __GFP_MOVABLE/RECLAIMABLE, __GFP_COLD and __GFP_COMP will
now be ignored if passed to a slab allocator.
Change the allocation of allocator meta data in SLAB and vmalloc to not
pass through flags listed in GFP_CONSTRAINT_MASK. SLAB already removes the
__GFP_THISNODE flag for such allocations. Generalize that to also cover
vmalloc. The use of GFP_CONSTRAINT_MASK also includes __GFP_HARDWALL.
The impact of allocator metadata placement on access latency to the
cachelines of the object itself is minimal since metadata is only
referenced on alloc and free. The attempt is still made to place the meta
data optimally but we consistently allow fallback both in SLAB and vmalloc
(SLUB does not need to allocate metadata like that).
Allocator metadata may serve multiple in kernel users and thus should not
be subject to the limitations arising from a single allocation context.
[akpm@linux-foundation.org: fix fallback_alloc()]
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-16 09:42:59 -07:00
..
amba
byteorder
dvb
hdlc
isdn
lockd
mlx4
mmc
mtd
[MTD] [NOR] fix ctrl-alt-del can't reboot for intel flash bug
2007-10-13 14:36:18 +01:00
netfilter
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
netfilter_arp
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
netfilter_bridge
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
netfilter_ipv4
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
netfilter_ipv6
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
nfsd
raid
rtc
spi
ssb
sunrpc
Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
2007-10-15 10:47:35 -07:00
tc_act
tc_ematch
usb
docbook: fix usb content
2007-10-15 17:56:36 -07:00
8250_pci.h
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
long vs. unsigned long - low-hanging fruits in drivers
2007-10-14 12:41:51 -07:00
aio.h
aio_abi.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
arcdevice.h
arcfb.h
async_tx.h
ata.h
libata: add human-readable error value decoding
2007-10-12 14:55:45 -04:00
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
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blkdev.h
[BLOCK] Move sector_div() from blkdev.h to kernel.h
2007-10-12 12:40:38 +02:00
blkpg.h
blktrace_api.h
[BLOCK] Better fix for do_blk_trace_setup() for !CONFIG_BLOCK
2007-10-12 12:50:07 +02:00
blockgroup_lock.h
bootmem.h
bottom_half.h
bpqether.h
bsg.h
buffer_head.h
fs: restore nobh
2007-10-16 09:42:58 -07:00
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
clockevents: introduce force broadcast notifier
2007-10-14 22:57:45 +02: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
completion.h
comstats.h
concap.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
cpu.h
cpufreq.h
cpumask.h
cpuset.h
Memoryless nodes: Use N_HIGH_MEMORY for cpusets
2007-10-16 09:42:59 -07:00
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
debugfs: helper for decimal challenged
2007-10-12 14:51:03 -07:00
delay.h
delayacct.h
device-mapper.h
device.h
Driver core: change add_uevent_var to use a struct
2007-10-12 14:51:01 -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
introduce DMA_MASK_NONE as a signal for unable to do DMA
2007-10-16 09:42:50 -07:00
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
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
fs.h
fs: remove some AOP_TRUNCATED_PAGE
2007-10-16 09:42:58 -07: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
getcpu.h
gfp.h
Categorize GFP flags
2007-10-16 09:42:59 -07:00
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
long vs. unsigned long - low-hanging fruits in drivers
2007-10-14 12:41:51 -07:00
hdpu_features.h
hdreg.h
hdsmart.h
hid-debug.h
hid.h
HID: fix HIDIOCGRDESC memory access in hidraw
2007-10-15 08:12:00 -07:00
hiddev.h
hidraw.h
HID: fix HIDIOCGRDESC memory access in hidraw
2007-10-15 08:12:00 -07:00
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htirq.h
hugetlb.h
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: Move i2c-dev interfaces to i2c-dev.h
2007-10-13 23:56:32 +02:00
i2c-gpio.h
i2c-id.h
i2c-ocores.h
i2c-pnx.h
i2c-pxa.h
i2c.h
i2c: Rename the PEC functionality bit
2007-10-13 23:56:33 +02:00
i2o-dev.h
i2o.h
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h
ide: move ide_config_drive_speed() calls to upper layers (take 2)
2007-10-13 17:47:51 +02:00
idr.h
ieee80211.h
if.h
if_addr.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
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
inet_lro.h
fix endianness bug in inet_lro
2007-10-14 12:41:52 -07:00
inetdevice.h
init.h
Add assembler equivalents to __init{,date}_refok
2007-10-16 09:42:49 -07:00
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2007-10-15 13:41:39 -07:00
interrupt.h
provide stubs for enable_irq_wake() and disable_irq_wake()
2007-10-16 09:42:50 -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_route.h
ipx.h
irda.h
irq.h
irq_cpustat.h
irqflags.h
irqreturn.h
isa.h
isapnp.h
isdn.h
[ISDN]: Remove local copy of device name to make sure renames work.
2007-10-15 12:26:37 -07:00
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd.h
docbook: fix filesystems content
2007-10-15 17:56:36 -07:00
jbd2.h
jffs2.h
jhash.h
jiffies.h
slow down printk during boot
2007-10-16 09:42:49 -07:00
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild
kd.h
kdebug.h
kdev_t.h
kernel.h
[BLOCK] Move sector_div() from blkdev.h to kernel.h
2007-10-12 12:40:38 +02:00
kernel_stat.h
sched: guest CPU accounting: add guest-CPU /proc/stat field
2007-10-15 17:00:19 +02:00
kernelcapi.h
kexec.h
key-ui.h
key.h
keyboard.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
2007-10-12 21:27:47 -04:00
keyctl.h
kfifo.h
klist.h
kmalloc_sizes.h
kmod.h
kobj_map.h
kobject.h
kobject: update the copyrights
2007-10-12 14:51:12 -07:00
kprobes.h
kref.h
ks0108.h
kthread.h
ktime.h
kvm.h
KVM: Replace enum by #define
2007-10-13 10:18:29 +02:00
kvm_para.h
lapb.h
latency.h
lcd.h
leds.h
lguest.h
lguest_bus.h
lguest_launcher.h
libata.h
[libata] struct pci_dev related cleanups
2007-10-12 14:55:47 -04:00
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
maple.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
memory.h
memory_hotplug.h
Clean up duplicate includes in include/linux/memory_hotplug.h
2007-10-16 09:42:52 -07:00
mempolicy.h
Mem Policy: add MPOL_F_MEMS_ALLOWED get_mempolicy() flag
2007-10-16 09:42:54 -07:00
mempool.h
meye.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
mm.h
move mm_struct and vm_area_struct
2007-10-16 09:42:53 -07:00
mm_inline.h
mm_types.h
move mm_struct and vm_area_struct
2007-10-16 09:42:53 -07:00
mman.h
mmtimer.h
mmzone.h
Memoryless nodes: Fix GFP_THISNODE behavior
2007-10-16 09:42:59 -07:00
mnt_namespace.h
mod_devicetable.h
i2c: Kill struct i2c_device_id
2007-10-13 23:56:29 +02: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 core: fix kernel-doc for new function parameters
2007-10-13 09:52:26 -07:00
netfilter.h
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
[NETFILTER]: Replace sk_buff ** with sk_buff *
2007-10-15 12:26:29 -07:00
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_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
Memoryless nodes: Add N_CPU node state
2007-10-16 09:42:58 -07:00
notifier.h
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
fs: introduce write_begin, write_end, and perform_write aops
2007-10-16 09:42:55 -07:00
pagevec.h
param.h
parport.h
parport_pc.h
parser.h
pata_platform.h
patchkey.h
pci-acpi.h
pci.h
PCI: Add 'nodomains' boot option, and pci_domains_supported global
2007-10-12 15:03:18 -07:00
pci_hotplug.h
pci_ids.h
8250_pci: Autodetect mainpine cards
2007-10-16 09:42:50 -07:00
pci_regs.h
PCI: modify PCI bridge control ISA flag for clarity
2007-10-12 15:03:18 -07:00
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
phy_fixed.h
pid.h
pid_namespace.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h
Driver core: Make platform_device.id an int
2007-10-12 14:51:07 -07:00
plist.h
pm.h
pm_legacy.h
pmu.h
pnp.h
pnpbios.h
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
prefetch.h
prio_tree.h
proc_fs.h
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
radix-tree: use indirect bit
2007-10-16 09:42:53 -07:00
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h
reboot.h
reciprocal_div.h
reiserfs_acl.h
reiserfs_fs.h
reiserfs_fs_i.h
reiserfs_fs_sb.h
more low-hanging fruits - kernel, fs, lib signedness
2007-10-14 12:41:52 -07:00
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
move mm_struct and vm_area_struct
2007-10-16 09:42:53 -07:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
long vs. unsigned long - low-hanging fruits in drivers
2007-10-14 12:41:51 -07:00
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux.h
selinux_netlink.h
sem.h
seq_file.h
seqlock.h
serial.h
serial167.h
serial_8250.h
serial_core.h
wake up from a serial port
2007-10-16 09:42:50 -07:00
serial_pnx8xxx.h
serial_reg.h
serialP.h
serio.h
shm.h
shmem_fs.h
signal.h
signalfd.h
skbuff.h
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
2007-10-15 14:06:58 -07:00
slab.h
slab_def.h
slob_def.h
slub_def.h
SLUB: direct pass through of page size or higher kmalloc requests
2007-10-16 09:42:53 -07:00
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
long vs. unsigned long - low-hanging fruits in drivers
2007-10-14 12:41:51 -07:00
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h
stringify.h
superhyway.h
suspend.h
svga.h
swap.h
swapops.h
synclink.h
sys.h
syscalls.h
sysctl.h
sysdev.h
sysfs.h
sysfs: add copyrights
2007-10-12 14:51:12 -07:00
sysrq.h
sysv_fs.h
task_io_accounting.h
task_io_accounting_ops.h
taskstats.h
taskstats_kern.h
tc.h
tcp.h
[TCP]: Make snd_cwnd_cnt 32-bit
2007-10-15 12:59:43 -07:00
telephony.h
termios.h
textsearch.h
textsearch_fsm.h
tfrc.h
thread_info.h
threads.h
ticable.h
tick.h
tifm.h
time.h
timer.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
topology.h
sched: enable wake-idle on CONFIG_SCHED_MC=y
2007-10-15 17:00:19 +02:00
toshiba.h
transport_class.h
trdevice.h
tsacct_kern.h
tty.h
PTY: add kernel parameter to overwrite legacy pty count
2007-10-12 14:51:09 -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
un.h
unistd.h
unwind.h
usb.h
USB: skip autosuspended devices during system resume
2007-10-12 14:55:34 -07:00
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
Convert from class_device to device for drivers/video
2007-10-12 14:51:04 -07:00
videodev.h
videodev2.h
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
Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
2007-10-15 10:47:35 -07:00
x25.h
xattr.h
xfrm.h
xilinxfb.h
[POWERPC] XilinxFB: Allow fixed framebuffer base address
2007-10-12 14:05:17 +10:00
yam.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h