kernel_optimize_test/include/linux
Johannes Weiner a756cf5908 mm: try to distribute dirty pages fairly across zones
The maximum number of dirty pages that exist in the system at any time is
determined by a number of pages considered dirtyable and a user-configured
percentage of those, or an absolute number in bytes.

This number of dirtyable pages is the sum of memory provided by all the
zones in the system minus their lowmem reserves and high watermarks, so
that the system can retain a healthy number of free pages without having
to reclaim dirty pages.

But there is a flaw in that we have a zoned page allocator which does not
care about the global state but rather the state of individual memory
zones.  And right now there is nothing that prevents one zone from filling
up with dirty pages while other zones are spared, which frequently leads
to situations where kswapd, in order to restore the watermark of free
pages, does indeed have to write pages from that zone's LRU list.  This
can interfere so badly with IO from the flusher threads that major
filesystems (btrfs, xfs, ext4) mostly ignore write requests from reclaim
already, taking away the VM's only possibility to keep such a zone
balanced, aside from hoping the flushers will soon clean pages from that
zone.

Enter per-zone dirty limits.  They are to a zone's dirtyable memory what
the global limit is to the global amount of dirtyable memory, and try to
make sure that no single zone receives more than its fair share of the
globally allowed dirty pages in the first place.  As the number of pages
considered dirtyable excludes the zones' lowmem reserves and high
watermarks, the maximum number of dirty pages in a zone is such that the
zone can always be balanced without requiring page cleaning.

As this is a placement decision in the page allocator and pages are
dirtied only after the allocation, this patch allows allocators to pass
__GFP_WRITE when they know in advance that the page will be written to and
become dirty soon.  The page allocator will then attempt to allocate from
the first zone of the zonelist - which on NUMA is determined by the task's
NUMA memory policy - that has not exceeded its dirty limit.

At first glance, it would appear that the diversion to lower zones can
increase pressure on them, but this is not the case.  With a full high
zone, allocations will be diverted to lower zones eventually, so it is
more of a shift in timing of the lower zone allocations.  Workloads that
previously could fit their dirty pages completely in the higher zone may
be forced to allocate from lower zones, but the amount of pages that
"spill over" are limited themselves by the lower zones' dirty constraints,
and thus unlikely to become a problem.

For now, the problem of unfair dirty page distribution remains for NUMA
configurations where the zones allowed for allocation are in sum not big
enough to trigger the global dirty limits, wake up the flusher threads and
remedy the situation.  Because of this, an allocation that could not
succeed on any of the considered zones is allowed to ignore the dirty
limits before going into direct reclaim or even failing the allocation,
until a future patch changes the global dirty throttling and flusher
thread activation so that they take individual zone states into account.

			Test results

15M DMA + 3246M DMA32 + 504 Normal = 3765M memory
40% dirty ratio
16G USB thumb drive
10 runs of dd if=/dev/zero of=disk/zeroes bs=32k count=$((10 << 15))

		seconds			nr_vmscan_write
		        (stddev)	       min|     median|        max
xfs
vanilla:	 549.747( 3.492)	     0.000|      0.000|      0.000
patched:	 550.996( 3.802)	     0.000|      0.000|      0.000

fuse-ntfs
vanilla:	1183.094(53.178)	 54349.000|  59341.000|  65163.000
patched:	 558.049(17.914)	     0.000|      0.000|     43.000

btrfs
vanilla:	 573.679(14.015)	156657.000| 460178.000| 606926.000
patched:	 563.365(11.368)	     0.000|      0.000|   1362.000

ext4
vanilla:	 561.197(15.782)	     0.000|2725438.000|4143837.000
patched:	 568.806(17.496)	     0.000|      0.000|      0.000

Signed-off-by: Johannes Weiner <jweiner@redhat.com>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Acked-by: Mel Gorman <mgorman@suse.de>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
Tested-by: Wu Fengguang <fengguang.wu@intel.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Chris Mason <chris.mason@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-10 16:30:43 -08:00
..
amba Device tree conversions for samsung and tegra 2012-01-09 14:28:38 -08:00
bcma bcma: use static keyword for inline function declaration in bcma.h 2011-12-13 15:31:27 -05:00
byteorder
caif
can can: cc770: add driver core for the Bosch CC770 and Intel AN82527 2011-12-01 13:09:31 -05:00
ceph libceph: Allocate larger oid buffer in request msgs 2011-11-11 09:50:19 -08:00
crush
decompress
dvb
hdlc
i2c Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
input
isdn
lockd net: use IS_ENABLED(CONFIG_IPV6) 2011-12-11 18:25:16 -05:00
mfd mfd: Declare da9052_regmap_config for the bus drivers 2011-12-15 14:52:37 +08:00
mlx4 mlx4_core: Changing link sensing logic 2011-12-19 14:57:07 -05:00
mmc mmc: core: Add quirk for long data read time 2011-12-10 16:18:35 -05:00
mtd Merge git://git.infradead.org/mtd-2.6 2011-11-07 09:11:16 -08:00
netfilter Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2012-01-09 13:08:28 -08:00
netfilter_arp
netfilter_bridge
netfilter_ipv4 netfilter: xtables: give xt_ecn its own name 2011-12-27 20:31:38 +01:00
netfilter_ipv6
nfc
nfsd
pinctrl pinctrl: fix "warning: 'struct pinctrl_dev' declared inside parameter list" 2011-11-09 15:07:40 +01:00
platform_data Cleanups on various subarchitectures 2012-01-09 14:21:03 -08:00
power
raid md: create externally visible flags for supporting hot-replace. 2011-12-23 10:17:51 +11:00
regulator Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
rtc
spi SPI: Add helper macro for spi_driver boilerplate 2011-11-17 12:15:39 -08:00
ssb ssb: extract FEM info from SPROM 2011-12-13 15:30:49 -05:00
sunrpc Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
tc_act
tc_ematch
unaligned
usb usb: ch9: fix up MaxStreams helper 2012-01-04 15:52:42 -08:00
uwb
wimax
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi_io.h
acpi_pmtmr.h
acpi.h
adb.h
adfs_fs.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
ahci_platform.h
aio_abi.h
aio.h aio: allocate kiocbs in batches 2011-11-02 16:07:03 -07:00
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm_bios.h
apm-emulation.h
arcdevice.h
arcfb.h
async_tx.h
async.h
ata_platform.h ARM: Orion: Remove address map info from all platform data structures 2011-12-13 18:46:56 -05:00
ata.h
atalk.h
ath9k_platform.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h atm: eliminate atm_guess_pdu2truesize() 2011-11-26 16:40:30 -05:00
atmel_pdc.h
atmel_pwm.h
atmel_serial.h
atmel_tc.h
atmel-mci.h
atmel-pwm-bl.h
atmel-ssc.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
atomic.h
attribute_container.h
audit.h switch kern_ipc_perm to umode_t 2012-01-03 22:55:17 -05:00
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h
auxvec.h
average.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
basic_mmio_gpio.h
baycom.h
bcd.h
bch.h
bfin_mac.h
bfs_fs.h
binfmts.h
bio.h bio: change some signed vars to unsigned 2011-11-16 09:21:50 +01:00
bit_spinlock.h
bitmap.h
bitops.h perf, x86: Implement event scheduler helper functions 2011-12-06 08:33:54 +01:00
bitrev.h
blk_types.h
blk-iopoll.h
blkdev.h block: initialize request_queue's numa node during 2011-11-23 10:59:13 +01:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpqether.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
buffer_head.h
bug.h
c2port.h
cache.h
can.h
capability.h
capi.h
cb710.h
cciss_defs.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
cgroup_subsys.h net: add network priority cgroup infrastructure (v4) 2011-11-22 15:22:23 -05:00
cgroup.h Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2012-01-09 12:59:24 -08:00
cgroupstats.h
chio.h
circ_buf.h
cleancache.h
clk.h clk: add helper functions clk_prepare_enable and clk_disable_unprepare 2011-12-28 21:25:35 +08:00
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h time/clocksource: Fix kernel-doc warnings 2011-12-19 11:41:40 +01:00
cm4000_cs.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
coff.h
com20020.h
compaction.h
compat.h switch open and mkdir syscalls to umode_t 2012-01-03 22:55:19 -05:00
compiler-gcc3.h
compiler-gcc4.h kernel.h: add BUILD_BUG() macro 2012-01-10 16:30:42 -08:00
compiler-gcc.h
compiler-intel.h
compiler.h kernel.h: add BUILD_BUG() macro 2012-01-10 16:30:42 -08:00
completion.h
comstats.h
concap.h
configfs.h configfs: convert to umode_t 2012-01-03 22:54:57 -05:00
connector.h
console_struct.h
console.h
consolemap.h
const.h
cordic.h
coredump.h
cper.h
cpu_pm.h
cpu_rmap.h
cpu.h Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
cpufreq.h
cpuidle.h powerpc/cpuidle: Enable cpuidle and directly call cpuidle_idle_call() for pSeries 2011-12-08 13:57:20 +11:00
cpumask.h
cpuset.h
cramfs_fs_sb.h
cramfs_fs.h
crash_dump.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
davinci_emac.h
dca.h
dcache.h vfs: new helper - d_make_root() 2012-01-09 19:23:45 -05:00
dcbnl.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
debugobjects.h debugobjects: Extend to assert that an object is initialized 2011-11-23 18:49:22 +01:00
delay.h
delayacct.h
devfreq.h PM / devfreq: fix private_data 2011-11-07 23:54:53 +01:00
device_cgroup.h
device-mapper.h
device.h Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
devpts_fs.h
dio.h
dirent.h
display.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm9000.h
dm-dirty-log.h
dm-io.h
dm-ioctl.h
dm-kcopyd.h
dm-log-userspace.h
dm-region-hash.h
dma_remapping.h iommu: Export intel_iommu_enabled to signal when iommu is in use 2011-12-16 08:49:57 -08:00
dma-attrs.h
dma-buf.h dma-buf: Introduce dma buffer sharing mechanism 2012-01-06 10:20:21 +00:00
dma-debug.h
dma-direction.h
dma-mapping.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-11-06 17:12:03 -08:00
dmaengine.h Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
dmapool.h
dmar.h
dmi.h
dn.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
drbd_limits.h
drbd_nl.h
drbd_tag_magic.h
drbd.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dw_dmac.h
dynamic_debug.h
dynamic_queue_limits.h dql: Dynamic queue limits 2011-11-29 12:46:19 -05:00
ecryptfs.h
edac.h edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edd.h
eeprom_93cx6.h eeprom_93cx6: Add write support 2011-11-26 14:59:39 -05:00
eeprom_93xx46.h
efi.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h net: use IS_ENABLED(CONFIG_IPV6) 2011-12-11 18:25:16 -05:00
etherdevice.h
ethtool.h ethtool: Remove ethtool_ops::set_rx_ntuple operation 2012-01-04 14:10:28 -05:00
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs_sb.h
ext2_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h ext3: propagate umode_t 2012-01-03 22:54:58 -05:00
ext3_jbd.h
f75375s.h
fadvise.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdreg.h
fdtable.h
fec.h
fib_rules.h
fiemap.h
file.h
filter.h
fips.h
firewire-cdev.h
firewire-constants.h
firewire.h
firmware-map.h
firmware.h
flat.h
flex_array.h
font.h
freezer.h PM / Freezer: fix return value of freezable_schedule_timeout_killable() 2011-12-27 01:06:33 +01:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h vfs: prevent remount read-only if pending removes 2012-01-06 23:20:13 -05:00
fscache-cache.h
fscache.h
fsl_devices.h
fsl_hypervisor.h
fsl-diu-fb.h
fsnotify_backend.h
fsnotify.h
ftrace_event.h tracing: Restore system filter behavior 2011-12-05 13:28:45 -05:00
ftrace_irq.h
ftrace.h
fuse.h
futex.h
gameport.h Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
gcd.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h genetlink: Add rcu_dereference_genl and genl_dereference. 2011-12-03 09:35:08 -08:00
genhd.h switch device_get_devnode() and ->devnode() to umode_t * 2012-01-03 22:54:55 -05:00
getcpu.h
gfp.h mm: try to distribute dirty pages fairly across zones 2012-01-10 16:30:43 -08:00
gfs2_ondisk.h
gigaset_dev.h
gpio_keys.h
gpio_mouse.h
gpio-fan.h
gpio-i2cmux.h
gpio-pxa.h ARM: pxa: change gpio to platform device 2011-11-15 19:08:27 +08:00
gpio.h
gsmmux.h
hardirq.h rcu: Track idleness independent of idle tasks 2011-12-11 10:31:24 -08:00
hash.h
hdlc.h
hdlcdrv.h
hdreg.h
hid-debug.h
hid-roccat.h
hid.h
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h
hugetlb_inline.h
hugetlb.h hugetlb: remove dummy definitions of HPAGE_MASK and HPAGE_SIZE 2011-11-19 06:15:59 -05:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h hwspinlock: Don't return a value in __hwspin_unlock 2011-11-08 09:28:27 +02:00
hyperv.h net/hyperv: Add support for jumbo frame up to 64KB 2012-01-04 16:13:05 -08:00
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-tegra.h
i2c-xiic.h
i2c.h Merge branch 'driver-core-next' into Linux 3.2 2012-01-06 11:42:52 -08:00
i2o-dev.h
i2o.h
i8k.h
i7300_idle.h
i8042.h
i8253.h
i82593.h
ibmtr.h
icmp.h
icmpv6.h
ide.h switch procfs to umode_t use 2012-01-03 22:54:56 -05:00
idr.h
ieee80211.h ieee80211: Introduce ieee80211_is_first_frag 2011-12-13 15:30:40 -05:00
if_addr.h
if_addrlabel.h
if_alg.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_ether.h: Add IEEE 802.1 Local Experimental Ethertype 1. 2011-12-05 18:27:56 -05:00
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_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_strip.h
if_team.h team: replicate options on register 2011-11-16 18:16:38 -05:00
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h vlan: introduce functions to do mass addition/deletion of vids by another device 2011-12-08 19:52:42 -05:00
if_x25.h
if.h net: introduce ethernet teaming device 2011-11-13 16:10:10 -05:00
igmp.h
ihex.h
ima.h
in6.h
in_route.h
in.h
inet_diag.h inet_diag: Add the SKMEMINFO extension 2011-12-30 16:42:19 -05:00
inet_lro.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2012-01-09 12:59:24 -08:00
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel_mid_dma.h
intel_pmic_gpio.h
intel-iommu.h
interrupt.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
ioctl.h
iommu-helper.h
iommu.h
ioport.h
ioprio.h
iova.h
ip6_tunnel.h
ip_vs.h
ip.h
ipc_namespace.h
ipc.h switch kern_ipc_perm to umode_t 2012-01-03 22:55:17 -05:00
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h net: use IS_ENABLED(CONFIG_IPV6) 2011-12-11 18:25:16 -05:00
ipx.h
irda.h
irq_cpustat.h
irq_work.h
irq.h
irqdesc.h
irqdomain.h ARM: 7235/1: irqdomain: export irq_domain_simple_ops for !CONFIG_OF 2011-12-23 22:33:58 +00:00
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h switch ->is_visible() to returning umode_t 2012-01-03 22:54:55 -05:00
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd2.h
jbd_common.h
jbd.h jbd: Remove j_barrier mutex 2012-01-09 13:52:09 +01:00
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h jump_label: Provide jump_label_key initializers 2011-12-06 20:41:03 +01:00
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild unix_diag: Include unix_diag.h into header-y target 2011-12-30 16:42:19 -05:00
kbuild.h
kconfig.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kernel_stat.h sched/accounting: Change cpustat fields to an array 2011-12-06 09:06:38 +01:00
kernel-page-flags.h
kernel.h kernel.h: add BUILD_BUG() macro 2012-01-10 16:30:42 -08:00
kernelcapi.h
kexec.h Merge branch 'akpm' (Andrew's incoming) 2011-10-31 17:46:07 -07:00
key-type.h
key.h
keyboard.h
keyctl.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmalloc_sizes.h
kmemcheck.h
kmemleak.h
kmod.h PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled() 2011-12-09 23:36:36 +01:00
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h kobject: remove kset_find_obj_hinted() 2011-12-21 15:13:54 -08:00
kprobes.h
kref.h kref: fix up the kfree build problems 2011-12-14 11:19:07 -08:00
ks0108.h
ks8842.h
ksm.h
kthread.h freezer: implement and use kthread_freezable_should_stop() 2011-11-21 12:32:23 -08:00
ktime.h
kvm_host.h
kvm_para.h
kvm_types.h
kvm.h KVM: Don't automatically expose the TSC deadline timer in cpuid 2011-12-26 13:27:44 +02:00
l2tp.h
lapb.h
latencytop.h sched: Make separate sched*.c translation units 2011-11-17 12:20:19 +01:00
lcd.h
lcm.h
led-lm3530.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-lp5521.h
leds-lp5523.h
leds-pca9532.h
leds-regulator.h
leds.h
lglock.h VFS: Fix race between CPU hotplug and lglocks 2011-12-22 02:02:20 -05:00
lguest_launcher.h
lguest.h
libata.h
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_nulls.h
list_sort.h
list.h
llc.h
llist.h llist-return-whether-list-is-empty-before-adding-in-llist_add-fix 2011-10-31 17:30:57 -07:00
lockdep.h printk, lockdep: Disable lock debugging on zap_locks() 2011-11-14 13:35:16 +01:00
log2.h linux/log2.h: Fix rounddown_pow_of_two(1) 2011-12-12 22:06:55 -08:00
loop.h Merge branch 'for-3.2/drivers' of git://git.kernel.dk/linux-block 2011-11-04 17:22:14 -07:00
lp.h
lru_cache.h
lsm_audit.h
lzo.h
m48t86.h
magic.h minix: describe usage of different magic numbers 2011-11-02 16:06:59 -07:00
major.h
map_to_7segment.h
maple.h
marvell_phy.h
math64.h
matroxfb.h
max17040_battery.h
mbcache.h
mbus.h ARM: Orion: Get address map from plat-orion instead of via platform_data 2011-12-13 18:46:55 -05:00
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h mdio-gpio: Add reset functionality to mdio-gpio driver(v2). 2011-11-15 16:56:17 -05:00
mdio-gpio.h mdio-gpio: Add reset functionality to mdio-gpio driver(v2). 2011-11-15 16:56:17 -05:00
mdio.h
media.h
memblock.h memblock: Reimplement memblock allocation using reverse free area iterator 2011-12-08 10:22:09 -08:00
memcontrol.h net: Fix build with INET disabled. 2012-01-09 13:44:23 -08:00
memory_hotplug.h
memory.h convert 'memory' sysdev_class to a regular subsystem 2011-12-21 14:48:43 -08:00
mempolicy.h
mempool.h
memstick.h
meye.h
mg_disk.h
micrel_phy.h
migrate.h
mii.h net: Change mii to ethtool advertisement function names 2011-11-21 15:27:19 -05:00
minix_fs.h
miscdevice.h switch miscdevice to umode_t 2012-01-03 22:55:15 -05:00
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types.h mm: thp: tail page refcounting fix 2011-11-02 16:06:57 -07:00
mm.h mm: more intensive memory corruption debugging 2012-01-10 16:30:42 -08:00
mman.h
mmdebug.h
mmiotrace.h
mmtimer.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: exclude reserved pages from dirtyable memory 2012-01-10 16:30:43 -08:00
mnt_namespace.h vfs: take /proc/*/mounts and friends to fs/proc_namespace.c 2012-01-03 22:57:13 -05:00
mod_devicetable.h ARM: amba: Move definition of struct amba_id to mod_devicetable.h 2011-11-22 10:58:30 +00:00
module.h
moduleloader.h
moduleparam.h
mount.h vfs: move fsnotify junk to struct mount 2012-01-03 22:57:12 -05:00
mpage.h
mqueue.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h
msm_mdp.h
mtio.h
mutex-debug.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mxm-wmi.h
n_r3964.h
namei.h readlinkat: ensure we return ENOENT for the empty pathname for normal lookups 2011-11-02 12:53:42 +01:00
nbd.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
neighbour.h neigh: new unresolved queue limits 2011-11-14 00:47:54 -05:00
net_dropmon.h
net_tstamp.h
net.h
netdev_features.h net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
netdevice.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-01-09 14:46:52 -08:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h netfilter: use jump_label for nf_hooks 2011-11-21 16:38:08 -05:00
netlink.h inet_diag: Partly rename inet_ to sock_ 2011-12-06 13:57:36 -05:00
netpoll.h
netrom.h
nfc.h NFC: Export a new attribute nfcid1 in target info 2012-01-04 14:30:43 -05:00
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h pull manipulations of rpc_cred inside alloc_nfs_open_context() 2012-01-03 22:52:34 -05:00
nfs_idmap.h
nfs_iostat.h
nfs_mount.h
nfs_page.h
nfs_xdr.h nfs: when attempting to open a directory, fall back on normal lookup (try #5) 2011-11-04 16:39:04 -04:00
nfs.h
nfsacl.h
nilfs2_fs.h
nl80211.h cfg80211: Return beacon loss count in station 2011-12-19 14:34:13 -05:00
nl802154.h
nls.h NLS: improve UTF8 -> UTF16 string conversion routine 2011-11-18 10:51:01 -08:00
nmi.h
node.h convert 'memory' sysdev_class to a regular subsystem 2011-12-21 14:48:43 -08:00
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
nwpserial.h
of_address.h
of_device.h
of_fdt.h ARM/of: allow *machine_desc.dt_compat to be const 2011-12-27 10:57:13 -06:00
of_gpio.h of: create of_phandle_args to simplify return of phandle parsing data 2011-12-12 13:40:16 -07:00
of_i2c.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_spi.h
of.h devicetree/next changes queued for v3.3 merge window 2012-01-07 12:18:52 -08:00
omap3isp.h
omapfb.h
oom.h
openvswitch.h net: Add Open vSwitch kernel components. 2011-12-03 09:35:17 -08:00
opp.h PM / OPP: Fix build when CONFIG_PM_OPP is not set 2011-11-04 22:28:13 +01:00
oprofile.h
oxu210hp.h
padata.h
page_cgroup.h
page-debug-flags.h mm: more intensive memory corruption debugging 2012-01-10 16:30:42 -08:00
page-flags.h
page-isolation.h
pageblock-flags.h
pagemap.h
pagevec.h mm: remove unused pagevec_free 2012-01-10 16:30:41 -08:00
param.h
parport_pc.h
parport.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h x86, amd: Fix up numa_node information for AMD CPU family 15h model 0-0fh northbridge functions 2011-12-05 18:13:11 +01:00
pci_regs.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h
pcieport_if.h
pda_power.h
percpu_counter.h
percpu-defs.h
percpu.h percpu: Remove irqsafe_cpu_xxx variants 2011-12-22 10:40:20 -08:00
perf_event.h perf events: Add PERF_COUNT_HW_REF_CPU_CYCLES generic PMU event 2011-12-21 10:26:37 +01:00
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phonet.h Phonet: set the pipe handle using setsockopt 2011-11-18 14:37:40 -05:00
phy_fixed.h
phy.h
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h net_sched: sfq: extend limits 2012-01-05 14:01:21 -05:00
pktcdvd.h
platform_device.h Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm 2012-01-08 13:10:57 -08:00
plist.h
pm_clock.h
pm_domain.h PM / Domains: Provide an always on power domain governor 2011-12-09 23:22:41 +01:00
pm_qos.h Merge branch 'pm-domains' into pm-for-linus 2011-12-25 23:43:11 +01:00
pm_runtime.h PM / Runtime: Use device PM QoS constraints (v2) 2011-12-01 21:46:42 +01:00
pm_wakeup.h
pm.h Merge branch 'pm-runtime' into pm-for-linus 2011-12-25 23:43:05 +01:00
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h memblock: Kill sentinel entries at the end of static region arrays 2011-12-08 10:22:07 -08:00
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
posix-clock.h
posix-timers.h
power_supply.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h pps: new client driver using GPIO 2011-11-02 16:07:02 -07:00
pps.h
prctl.h
preempt.h
prefetch.h
printk.h
prio_heap.h
prio_tree.h
proc_fs.h switch procfs to umode_t use 2012-01-03 22:54:56 -05:00
profile.h
proportions.h
pstore.h pstore: pass reason to backend write callback 2011-11-17 13:13:29 -08:00
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp_clock.h
ptrace.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quotaops.h
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h pohmelfs: propagate umode_t 2012-01-03 22:55:07 -05:00
ramoops.h
random.h
range.h
rar_register.h
ratelimit.h
rational.h
raw.h
rbtree.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate.h rcu: Document same-context read-side constraints 2011-12-11 10:32:06 -08:00
rcutiny.h
rcutree.h
rds.h
reboot.h
reciprocal_div.h
regmap.h Merge branch 'regmap/irq' into regmap-next 2011-12-05 16:21:05 +00:00
regset.h
reiserfs_acl.h
reiserfs_fs_i.h
reiserfs_fs_sb.h reiserfs: Properly display mount options in /proc/mounts 2012-01-06 23:20:13 -05:00
reiserfs_fs.h reiserfs: Properly display mount options in /proc/mounts 2012-01-06 23:20:13 -05:00
reiserfs_xattr.h
relay.h switch debugfs to umode_t 2012-01-03 22:54:56 -05:00
res_counter.h
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
ring_buffer.h
rio_drv.h
rio_ids.h RapidIO: add mport driver for Tsi721 bridge 2011-11-02 16:07:01 -07:00
rio_regs.h
rio.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
rotary_encoder.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sc26198.h
scatterlist.h
scc.h
sched.h Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2012-01-09 12:59:24 -08:00
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdla.h
seccomp.h
securebits.h
security.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
selection.h
selinux_netlink.h
selinux.h
sem.h include/linux/sem.h: make sysv_sem empty if SYSVIPC is disabled 2011-11-02 16:07:01 -07:00
semaphore.h
seq_file_net.h
seq_file.h constify seq_file stuff 2012-01-03 22:52:40 -05:00
seqlock.h
serial167.h
serial_8250.h serial: add irq handler for Freescale 16550 errata. 2011-12-09 19:14:13 -08:00
serial_core.h serial/8250_pci: setup-quirk workaround for the kt serial controller 2011-11-26 20:11:20 -08:00
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_reg.h
serial_sci.h Merge branches 'sh/pm-runtime' and 'common/clkfwk' into sh-fixes-for-linus 2011-11-11 16:16:25 +09:00
serial.h RS485: fix inconsistencies in the meaning of some variables 2011-11-15 12:13:44 -08:00
serialP.h
serio.h
sfi_acpi.h
sfi.h
sh_clk.h sh: clkfwk: Kill off remaining debugfs cruft. 2011-11-11 16:11:41 +09:00
sh_dma.h
sh_eth.h
sh_intc.h PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume 2011-12-25 23:39:11 +01:00
sh_pfc.h ARM: mach-shmobile: move helper macro PORTCR to sh_pfc.h 2011-11-11 16:45:35 +09:00
sh_timer.h
shm.h
shmem_fs.h shmem, ramfs: propagate umode_t, open-coded S_ISREG 2012-01-03 22:55:07 -05:00
shrinker.h vmscan: use atomic-long for shrinker batching 2011-12-09 07:50:27 -08:00
sht15.h
sigma.h firmware: Sigma: Fix endianess issues 2011-11-29 11:59:50 +00:00
signal.h
signalfd.h
skbuff.h net: pack skb_shared_info more efficiently 2012-01-05 14:01:21 -05:00
slab_def.h tracing/mm: Move include of trace/events/kmem.h out of header into slab.c 2012-01-09 14:19:33 -08:00
slab.h
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smsc911x.h
smscphy.h net: phy: smsc: Move SMSC PHY constants to <linux/smscphy.h> 2012-01-03 20:23:18 -05:00
snmp.h
sock_diag.h sock_diag: Introduce the meminfo nla core (v2) 2011-12-30 16:42:19 -05:00
socket.h
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
splice.h
srcu.h rcu: Document same-context read-side constraints 2011-12-11 10:32:06 -08:00
stackprotector.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
stddef.h
stmmac.h
stop_machine.h
string_helpers.h
string.h
stringify.h
sungem_phy.h
superhyway.h
suspend_ioctls.h
suspend.h PM / Sleep: Make [un]lock_system_sleep() generic 2011-12-08 23:22:21 +01:00
svga.h
swab.h
swap.h mm: exclude reserved pages from dirtyable memory 2012-01-10 16:30:43 -08:00
swapops.h
swiotlb.h
synclink.h
sys.h
syscalls.h switch open and mkdir syscalls to umode_t 2012-01-03 22:55:19 -05:00
syscore_ops.h
sysctl.h sysctl: use umode_t for table permissions 2012-01-03 22:55:12 -05:00
sysdev.h
sysfs.h switch sysfs_chmod_file() to umode_t 2012-01-03 22:54:56 -05:00
syslog.h
sysrq.h
sysv_fs.h
task_io_accounting_ops.h
task_io_accounting.h
taskstats_kern.h
taskstats.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h tcp: Replace constants with #define macros 2011-12-21 01:03:23 -05:00
telephony.h
termios.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h nohz: Remove tick_nohz_idle_enter_norcu() / tick_nohz_idle_exit_norcu() 2011-12-11 10:31:57 -08:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
timecompare.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
times.h
timex.h
tiocl.h
tipc_config.h
tipc.h
topology.h
toshiba.h
tpm_command.h
tpm.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h
transport_class.h
trdevice.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h
typecheck.h
types.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
u64_stats_sync.h
uaccess.h
ucb1400.h
udf_fs_i.h
udp.h
uinput.h
uio_driver.h
uio.h
ultrasound.h
un.h
unistd.h
unix_diag.h unix_diag: Fixup RQLEN extension report 2011-12-30 16:46:02 -05:00
usb_usual.h
usb.h Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb 2012-01-09 12:09:47 -08:00
usbdevice_fs.h
user_namespace.h
user-return-notifier.h
user.h
utime.h
uts.h
utsname.h sysctl: add support for poll() 2011-11-02 16:07:02 -07:00
uuid.h
uvcvideo.h
uwb.h
v4l2-mediabus.h
v4l2-subdev.h
vermagic.h
veth.h
vfs.h
vga_switcheroo.h
vgaarb.h
vhost.h
via_i2c.h
via-core.h
via-gpio.h
via.h
video_output.h
videodev2.h [media] v4l: Add AUTO option for the V4L2_CID_POWER_LINE_FREQUENCY control 2011-11-03 18:29:09 -02:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_config.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
virtio_console.h
virtio_ids.h
virtio_mmio.h virtio-mmio: Correct the name of the guest features selector 2011-11-24 13:04:47 +10:30
virtio_net.h
virtio_pci.h
virtio_ring.h virtio: modify vring_init and vring_size to take account of the layout containing *_event_idx 2011-11-02 11:40:59 +10:30
virtio_rng.h
virtio.h virtio.h: correct comment for struct virtio_driver 2011-11-02 11:40:59 +10:30
vlynq.h
vm_event_item.h
vmalloc.h Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable 2011-12-05 23:27:59 +00:00
vmstat.h
vt_buffer.h
vt_kern.h
vt.h
w1-gpio.h
wait.h lockdep/waitqueues: Add better annotation 2011-12-21 10:07:39 +01:00
wanrouter.h treewide: Fix typos in various parts of the kernel, and fix some comments. 2011-12-02 14:57:31 +01:00
watchdog.h
wimax.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h mm: try to distribute dirty pages fairly across zones 2012-01-10 16:30:43 -08:00
x25.h
xattr.h
xfrm.h
xilinxfb.h
xz.h
yam.h
z2_battery.h
zconf.h
zlib.h
zorro_ids.h
zorro.h
zutil.h