linux-stable/include/linux
Johannes Weiner 81c0a2bb51 mm: page_alloc: fair zone allocator policy
Each zone that holds userspace pages of one workload must be aged at a
speed proportional to the zone size.  Otherwise, the time an individual
page gets to stay in memory depends on the zone it happened to be
allocated in.  Asymmetry in the zone aging creates rather unpredictable
aging behavior and results in the wrong pages being reclaimed, activated
etc.

But exactly this happens right now because of the way the page allocator
and kswapd interact.  The page allocator uses per-node lists of all zones
in the system, ordered by preference, when allocating a new page.  When
the first iteration does not yield any results, kswapd is woken up and the
allocator retries.  Due to the way kswapd reclaims zones below the high
watermark while a zone can be allocated from when it is above the low
watermark, the allocator may keep kswapd running while kswapd reclaim
ensures that the page allocator can keep allocating from the first zone in
the zonelist for extended periods of time.  Meanwhile the other zones
rarely see new allocations and thus get aged much slower in comparison.

The result is that the occasional page placed in lower zones gets
relatively more time in memory, even gets promoted to the active list
after its peers have long been evicted.  Meanwhile, the bulk of the
working set may be thrashing on the preferred zone even though there may
be significant amounts of memory available in the lower zones.

Even the most basic test -- repeatedly reading a file slightly bigger than
memory -- shows how broken the zone aging is.  In this scenario, no single
page should be able stay in memory long enough to get referenced twice and
activated, but activation happens in spades:

  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 0
      nr_active_file 8
      nr_inactive_file 1582
      nr_active_file 11994
  $ cat data data data data >/dev/null
  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 70
      nr_inactive_file 258753
      nr_active_file 443214
      nr_inactive_file 149793
      nr_active_file 12021

Fix this with a very simple round robin allocator.  Each zone is allowed a
batch of allocations that is proportional to the zone's size, after which
it is treated as full.  The batch counters are reset when all zones have
been tried and the allocator enters the slowpath and kicks off kswapd
reclaim.  Allocation and reclaim is now fairly spread out to all
available/allowable zones:

  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 174
      nr_active_file 4865
      nr_inactive_file 53
      nr_active_file 860
  $ cat data data data data >/dev/null
  $ grep active_file /proc/zoneinfo
      nr_inactive_file 0
      nr_active_file 0
      nr_inactive_file 666622
      nr_active_file 4988
      nr_inactive_file 190969
      nr_active_file 937

When zone_reclaim_mode is enabled, allocations will now spread out to all
zones on the local node, not just the first preferred zone (which on a 4G
node might be a tiny Normal zone).

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Mel Gorman <mgorman@suse.de>
Reviewed-by: Rik van Riel <riel@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Paul Bolle <paul.bollee@gmail.com>
Cc: Zlatko Calusic <zcalusic@bitsync.net>
Tested-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-09-11 15:57:23 -07:00
..
amba dmaengine: PL08x: Add support for PL080S variant 2013-09-02 11:49:56 +05:30
bcma bcma: add bcma_core_pci_power_save() 2013-08-26 14:09:03 -04:00
byteorder
can can: mcp251x: Eliminate irq_flags from driver platform_data 2013-08-21 09:28:29 +02:00
ceph
clk
crush
decompress
dma dma: mmp_pdma: add filter function 2013-08-14 13:55:15 +05:30
extcon
fsl/bestcomm dma: mxs-dma: remove code left from generic DMA binding conversion 2013-08-19 14:20:21 +05:30
hsi
i2c ARM: SoC cleanups for 3.12 2013-09-06 13:21:16 -07:00
iio iio: trigger: implement devm_iio_trigger_alloc/devm_iio_triger_free 2013-08-17 19:34:52 +01:00
input
irqchip ARM: SoC late changes for v3.12 2013-09-09 16:35:29 -07:00
isdn
lockd
mfd MMC highlights for 3.12: 2013-09-10 13:33:09 -07:00
mlx4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
mlx5 net/mlx5_core: Support MANAGE_PAGES and QUERY_PAGES firmware command changes 2013-08-15 15:42:57 -07:00
mmc mmc: sdhci: get voltage from sdhc host 2013-08-26 11:32:07 -04:00
mtd mtd: add a new ecc_step_size field to mtd_info{} 2013-08-30 21:37:01 +01:00
netfilter netfilter: export xt_HMARK.h to userland 2013-08-14 10:48:05 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
pinctrl pinctrl: Pass all configs to driver on pin_config_set() 2013-08-28 13:34:41 +02:00
platform_data Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2013-09-10 13:37:36 -07:00
power power: Add twl4030_madc battery driver. 2013-08-30 17:34:52 -07:00
raid md update for v3.12 2013-09-10 13:03:41 -07:00
regulator Merge remote-tracking branch 'regulator/topic/ramp' into regulator-next 2013-09-01 13:50:20 +01:00
rtc
sched
spi MMC highlights for 3.12: 2013-09-10 13:33:09 -07:00
ssb
sunrpc Merge branch 'nfsd-next' of git://linux-nfs.org/~bfields/linux 2013-09-10 20:04:59 -07:00
tc_act
unaligned
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h
acpi_dma.h
acpi_gpio.h
acpi_io.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple_bl.h
arcdevice.h
arm-cci.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
async.h
async_tx.h
ata.h libata: Add support for SEND/RECEIVE FPDMA QUEUED 2013-08-25 09:39:12 -04:00
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atmel-mci.h
atmel-pwm-bl.h
atmel-ssc.h
atmel_pdc.h
atmel_pwm.h
atmel_serial.h
atmel_tc.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev.h
backlight.h
balloon_compaction.h
basic_mmio_gpio.h
bcd.h
bch.h
bcm47xx_wdt.h
bfin_mac.h
binfmts.h
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk-iopoll.h
blk_types.h
blkdev.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h direct-io: Implement generic deferred AIO completions 2013-09-04 09:23:46 -04:00
bug.h
c2port.h
cache.h
capability.h userns: Kill nsown_capable it makes the wrong thing easy 2013-08-30 23:44:11 -07:00
cb710.h
cciss_ioctl.h
cdev.h
cdrom.h
cfag12864b.h
cgroup.h cgroup: implement CFTYPE_NO_PREFIX 2013-08-26 18:40:56 -04:00
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-private.h clk: add support for clock reparent on set_rate 2013-08-19 12:27:17 -07:00
clk-provider.h clk: wrap I/O access for improved portability 2013-08-27 17:50:38 -07:00
clk.h
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h
cm4000_cs.h
cmdline-parser.h block: support embedded device command line partition 2013-09-11 15:56:57 -07:00
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
com20020.h
compaction.h
compat.h Introduce [compat_]save_altstack_ex() to unbreak x86 SMAP 2013-09-01 14:16:33 -07:00
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h
completion.h
concap.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
context_tracking.h vtime: Optimize full dynticks accounting off case with static keys 2013-08-14 17:14:54 +02:00
context_tracking_state.h context_tracking: Split low level state headers 2013-08-14 17:14:51 +02:00
cordic.h
coredump.h
cper.h
cpu.h Merge branch 'pm-cpufreq' 2013-08-27 01:44:40 +02:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufreq.h cpufreq: Drop the owner field from struct cpufreq_driver 2013-08-10 03:24:47 +02:00
cpuidle.h
cpumask.h
cpuset.h
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework" 2013-09-07 12:56:26 +10:00
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h
crypto.h
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
cycx_x25.h
davinci_emac.h
dca.h
dcache.h vfs: reorganize dput() memory accesses 2013-09-08 13:26:18 -07:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h debugfs: provide debugfs_create_x64() when disabled 2013-08-27 22:09:12 -07:00
debugobjects.h debugobjects: Make debug_object_activate() return status 2013-08-18 17:39:55 -07:00
delay.h
delayacct.h
devfreq.h
device-mapper.h dm: add statistics support 2013-09-05 20:46:06 -04:00
device.h Merge branch 'for-v3.12' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2013-09-09 10:26:33 -07:00
device_cgroup.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma-attrs.h
dma-buf.h
dma-contiguous.h drivers: dma-contiguous: clean source code and prepare for device tree 2013-08-27 09:18:29 +02:00
dma-debug.h
dma-direction.h
dma-mapping.h drivers:net: Convert dma_alloc_coherent(...__GFP_ZERO) to dma_zalloc_coherent 2013-08-29 21:55:23 -04:00
dma_remapping.h
dmaengine.h Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2013-09-10 13:37:36 -07:00
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dw_dmac.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h net: etherdevice: add address inherit helper 2013-09-03 20:57:49 -04:00
ethtool.h
eventfd.h Kill indirect include of file.h from eventfd.h, use fdget() in cgroup.c 2013-09-07 19:54:57 -04:00
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extcon.h
f2fs_fs.h f2fs: support the inline xattrs 2013-08-26 20:15:23 +09:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
freezer.h
frontswap.h
fs.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2013-09-07 14:35:32 -07:00
fs_enet_pd.h fs_enet: cleanup clock API use 2013-08-22 22:13:54 -07:00
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h FS-Cache: Add interface to check consistency of a cached object 2013-09-06 09:17:30 +01:00
fscache.h fscache: Netfs function for cleanup post readpages 2013-09-06 09:17:30 +01:00
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsnotify.h
fsnotify_backend.h
ftrace.h
ftrace_event.h Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu 2013-09-03 07:41:11 +02:00
ftrace_irq.h
futex.h
gameport.h
gcd.h
genalloc.h
generic_acl.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.h
gsmmux.h
hardirq.h hardirq: Split preempt count mask definitions 2013-08-14 17:14:52 +02:00
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h video/hdmi: Rename HDMI_IDENTIFIER to HDMI_IEEE_OUI 2013-08-30 08:42:01 +10:00
hid-debug.h
hid-roccat.h
hid-sensor-hub.h HID: hid-sensor-hub: fix style of comments 2013-08-26 13:46:11 +02:00
hid-sensor-ids.h HID: hid-sensor-hub: fix style of comments 2013-08-26 13:46:11 +02:00
hid.h Merge branches 'for-3.12/devm', 'for-3.12/i2c-hid', 'for-3.12/i2c-hid-dt', 'for-3.12/logitech', 'for-3.12/multitouch-win8', 'for-3.12/trasnport-driver-cleanup', 'for-3.12/uhid', 'for-3.12/upstream' and 'for-3.12/wiimote' into for-linus 2013-09-06 11:58:37 +02:00
hiddev.h
hidraw.h HID: hidraw: Add spinlock in struct hidraw to protect list 2013-08-26 21:40:24 +02:00
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h
hugetlb.h
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux-pinctrl.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-xiic.h
i2c.h i2c: move ACPI helpers into the core 2013-08-23 10:22:29 +02:00
i2o.h
i7300_idle.h
i8042.h Input: add driver for slidebar on Lenovo IdeaPad laptops 2013-08-26 09:30:03 -07:00
i8253.h
i82593.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-08-29 14:08:24 -04:00
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h
in.h
in6.h
inet.h
inet_diag.h
inet_lro.h
inetdevice.h ipv4: expose IPV4_DEVCONF 2013-08-22 20:30:15 -07:00
init.h
init_ohci1394_dma.h
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iommu-helper.h
iommu.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h ipv6: drop fragmented ndisc packets by default (RFC 6980) 2013-08-29 15:32:08 -04:00
ipv6_route.h
irq.h
irq_cpustat.h
irq_work.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
jbd.h jbd: use a single printk for jbd_debug() 2013-08-09 10:49:00 +02:00
jbd2.h
jbd_common.h
jhash.h
jiffies.h jiffies: Avoid undefined behavior from signed overflow 2013-08-20 11:46:54 -07:00
journal-head.h
joystick.h
jump_label.h jump_label: Split jumplabel ratelimit 2013-08-09 07:53:54 -07:00
jump_label_ratelimit.h jump_label: Split jumplabel ratelimit 2013-08-09 07:53:54 -07:00
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kcmp.h
kconfig.h
kcore.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h
kernel_stat.h
kernelcapi.h
kexec.h
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h sysfs: Restrict mounting sysfs 2013-08-28 21:35:14 -07:00
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
leds_pwm.h
lglock.h
lguest.h
lguest_launcher.h
libata.h libata: Add support for queued DSM TRIM 2013-08-25 09:39:12 -04:00
libfdt.h
libfdt_env.h
libps2.h
license.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_nulls.h
list_sort.h
llc.h
llist.h
lockdep.h
lockref.h lockref: add ability to mark lockrefs "dead" 2013-09-07 15:49:18 -07:00
log2.h
lp.h
lru_cache.h
lsm_audit.h
lz4.h
lzo.h
m48t86.h
mailbox.h
maple.h
marvell_phy.h
math64.h math64: New separate div64_u64_rem helper 2013-08-23 09:02:14 -04:00
max17040_battery.h
mbcache.h
mbus.h bus: mvebu-mbus: Remove the no longer used name-based API 2013-08-06 14:10:45 +00:00
mc6821.h
mc146818rtc.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h
memcontrol.h cgroup: pass around cgroup_subsys_state instead of cgroup in file methods 2013-08-08 20:11:24 -04:00
memory.h drivers: base: use standard device online/offline for state change 2013-08-21 11:52:20 -07:00
memory_hotplug.h
mempolicy.h mm: mempolicy: turn vma_set_policy() into vma_dup_policy() 2013-09-11 15:57:00 -07:00
mempool.h
memstick.h
mg_disk.h
micrel_phy.h phy: micrel: Add definitions for common Micrel PHY registers 2013-08-22 23:20:54 +08:00
migrate.h
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h Merge branch 'x86/mce' into x86/ras 2013-08-12 17:54:05 +02:00
mm_inline.h
mm_types.h x86 get_unmapped_area: Access mmap_legacy_base through mm_struct member 2013-08-22 10:19:35 -07:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: page_alloc: fair zone allocator policy 2013-09-11 15:57:23 -07:00
mnt_namespace.h
mod_devicetable.h Revert "Input: introduce BTN/ABS bits for drums and guitars" 2013-09-07 09:48:41 -07:00
module.h module: Fix mod->mkobj.kobj potentially freed too early 2013-09-03 16:35:47 +09:30
moduleloader.h
moduleparam.h module: Add flag to allow mod params to have no arguments 2013-08-20 15:37:42 +09:30
mount.h
mpage.h
mpi.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h of: pci: add registry of MSI chips 2013-08-12 15:27:01 +00:00
msm_mdp.h
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mxm-wmi.h
n_r3964.h
namei.h introduce kern_path_mountpoint() 2013-09-08 20:20:23 -04:00
nbd.h
net.h
netdev_features.h
netdevice.h net: add documentation for BQL helpers 2013-09-06 14:43:49 -04:00
netfilter.h netfilter: nf_conntrack: make sequence number adjustments usuable without NAT 2013-08-28 00:26:48 +02:00
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h
nfs_fs.h NFS: Ensure that rmdir() waits for sillyrenames to complete 2013-09-03 15:26:29 -04:00
nfs_fs_i.h
nfs_fs_sb.h NFSv4.1 Use MDS auth flavor for data server connection 2013-09-06 14:49:16 -04:00
nfs_idmap.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h nfs4.1: Minimal SP4_MACH_CRED implementation 2013-09-05 10:40:45 -04:00
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h Rename nsproxy.pid_ns to nsproxy.pid_ns_for_children 2013-08-27 13:52:52 -04:00
ntb.h
nubus.h
numa.h
nvme.h NVMe: Use normal shutdown 2013-09-03 16:40:32 -04:00
nvram.h
nwpserial.h
nx842.h
of.h Device tree core updates for v3.12 2013-09-10 13:53:52 -07:00
of_address.h
of_device.h of/device: add helper to get cpu device node from logical cpu index 2013-08-21 10:29:51 +01:00
of_dma.h
of_fdt.h Device tree core updates for v3.12 2013-09-10 13:53:52 -07:00
of_gpio.h
of_iommu.h
of_irq.h
of_mdio.h
of_mtd.h
of_net.h of: Make of_get_phy_mode() return int i.s.o. const int 2013-08-28 20:50:19 +01:00
of_pci.h of: pci: add registry of MSI chips 2013-08-12 15:27:01 +00:00
of_pdt.h
of_platform.h
of_reserved_mem.h drivers: of: add initialization code for dma reserved memory 2013-08-27 10:53:44 +02:00
oid_registry.h
olpc-ec.h Staging: olpc_dcon: replace some magic numbers 2013-08-15 17:22:27 -07:00
omap-dma.h
omap-iommu.h
omap-mailbox.h
omapfb.h
oom.h
openvswitch.h
opp.h
oprofile.h oprofile: get rid of pointless forward declarations of struct super_block 2013-09-03 22:52:48 -04:00
oxu210hp.h
padata.h
page-debug-flags.h
page-flags-layout.h
page-flags.h
page-isolation.h
page_cgroup.h
pageblock-flags.h
pagemap.h
pagevec.h
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
pci_hotplug.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
pci_ids.h Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-04 11:07:04 -07:00
pcieport_if.h
pda_power.h
percpu-defs.h percpu: Make __verify_pcu_ptr handle per cpu pointers to arrays 2013-08-23 16:08:27 -04:00
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h Merge branch 'x86-spinlocks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-04 11:55:10 -07:00
perf_regs.h
personality.h
pfn.h
phonedev.h
phonet.h
phy.h
phy_fixed.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pktcdvd.h
platform_device.h
plist.h
pm.h
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_qos.h
pm_runtime.h
pm_wakeup.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h power_supply: Prevent suspend until power supply events are processed 2013-08-27 18:42:48 -07:00
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h PPS: convert class code to use dev_groups 2013-08-19 21:22:34 -07:00
preempt.h
preempt_mask.h hardirq: Split preempt count mask definitions 2013-08-14 17:14:52 +02:00
prefetch.h
printk.h x86, asmlinkage: Make dump_stack visible 2013-08-06 14:21:01 -07:00
prio_heap.h
proc_fs.h
proc_ns.h
profile.h
projid.h
proportions.h
pstore.h pstore: Introduce new argument 'compressed' in the read callback 2013-08-19 10:18:11 -07:00
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptrace.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h ARM: pxa: ssp: add pxa_ssp_request_of() 2013-08-14 19:54:30 +01:00
pxa168_eth.h
qnx6_fs.h
quicklist.h
quota.h quota: Add a new quotactl command Q_XGETQSTATV 2013-08-20 16:53:58 -05:00
quotaops.h quota: provide interface for readding allocated space into reserved space 2013-08-17 09:32:32 -04:00
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h
rculist.h rculist: list_first_or_null_rcu() should use list_entry_rcu() 2013-08-18 17:40:16 -07:00
rculist_bl.h
rculist_nulls.h
rcupdate.h nohz_full: Add full-system-idle state machine 2013-08-31 14:43:50 -07:00
rcutiny.h
rcutree.h
reboot.h
reciprocal_div.h
regmap.h regmap: Updates for v3.12 2013-09-03 10:07:40 -07:00
regset.h
relay.h
remoteproc.h
res_counter.h
reservation.h
reset-controller.h
reset.h
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
rndis.h
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h
scc.h
sched.h include/linux/sched.h: don't use task->pid/tgid in same_thread_group/has_group_leader_pid 2013-09-11 15:56:56 -07:00
sched_clock.h
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux.h
sem.h
semaphore.h
seq_file.h
seq_file_net.h
seqlock.h
serial.h
serial_8250.h
serial_core.h
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
sfi.h
sfi_acpi.h
sh_clk.h
sh_dma.h DMA: shdma: remove private and unused defines from a global header 2013-08-27 14:25:27 +05:30
sh_eth.h sh_eth: remove 'register_type' field from 'struct sh_eth_plat_data' 2013-08-20 17:10:41 -07:00
sh_intc.h
sh_timer.h
shdma-base.h DMA: shdma: switch DT mode to use configuration data from a match table 2013-08-27 14:25:09 +05:30
shm.h
shmem_fs.h
shrinker.h
signal.h Introduce [compat_]save_altstack_ex() to unbreak x86 SMAP 2013-09-01 14:16:33 -07:00
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h skb: allow skb_scrub_packet() to be used by tunnels 2013-09-04 00:27:25 -04:00
slab.h
slab_def.h
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h include/linux/smp.h:on_each_cpu(): switch back to a C function 2013-09-11 15:56:19 -07:00
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h net: move iov_pages() to net/core/iovec.c 2013-08-07 16:52:33 -07:00
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h sched: fix the theoretical signal_wake_up() vs schedule() race 2013-08-13 08:19:26 -07:00
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
srcu.h
ssbi.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stmmac.h driver:net:stmmac: Disable DMA store and forward mode if platform data force_thresh_dma_mode is set. 2013-08-30 17:26:09 -04:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
superhyway.h
suspend.h
svga.h
swab.h
swap.h swap: make cluster allocation per-cpu 2013-09-11 15:57:17 -07:00
swapfile.h
swapops.h mm: save soft-dirty bits on swapped pages 2013-08-13 17:57:47 -07:00
swiotlb.h
synclink.h
sys.h
sys_soc.h
syscalls.h microblaze: fix clone syscall 2013-08-13 17:57:48 -07:00
syscore_ops.h
sysctl.h
sysfs.h sysfs: sysfs_create_groups returns a value. 2013-08-28 09:51:41 -07:00
syslog.h
sysrq.h
sysv_fs.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tegra-ahb.h
tegra-cpuidle.h tegra-cpuidle: provide stub when !CONFIG_CPU_IDLE 2013-08-29 13:54:34 -07:00
tegra-powergate.h
tegra-soc.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h Merge branch 'timers/nohz-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/nohz 2013-08-14 17:58:56 +02:00
tifm.h
timb_dma.h
timb_gpio.h
time-armada-370-xp.h
time.h
timekeeper_internal.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uinput.h
uio.h
uio_driver.h
uprobes.h
usb.h USB: introduce usb_device_no_sg_constraint() helper 2013-08-12 11:56:16 -07:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2013-09-07 14:35:32 -07:00
uts.h
utsname.h
uuid.h
uwb.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h gpu/vga_switcheroo: add driver control power feature. (v3) 2013-08-29 13:30:21 +10:00
vgaarb.h i915: Update VGA arbiter support for newer devices 2013-09-03 19:17:59 +02:00
via-core.h
via-gpio.h
via.h
via_i2c.h
video_output.h
videodev2.h
virtio.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_mmio.h
virtio_ring.h
virtio_scsi.h
vlynq.h
vm_event_item.h mm: vmstats: track TLB flush stats on UP too 2013-09-11 15:57:09 -07:00
vm_sockets.h
vmalloc.h
vme.h
vmpressure.h Merge branch 'for-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2013-09-03 18:25:03 -07:00
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h vtime: Optimize full dynticks accounting off case with static keys 2013-08-14 17:14:54 +02:00
w1-gpio.h
wait.h [SCSI] zfcp: fix lock imbalance by reworking request queue locking 2013-08-22 08:53:30 -07:00
wanrouter.h
watchdog.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h
ww_mutex.h
xattr.h
xilinxfb.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h