twx-linux/include/linux
Mel Gorman 072bb0aa5e mm: sl[au]b: add knowledge of PFMEMALLOC reserve pages
When a user or administrator requires swap for their application, they
create a swap partition and file, format it with mkswap and activate it
with swapon.  Swap over the network is considered as an option in diskless
systems.  The two likely scenarios are when blade servers are used as part
of a cluster where the form factor or maintenance costs do not allow the
use of disks and thin clients.

The Linux Terminal Server Project recommends the use of the Network Block
Device (NBD) for swap according to the manual at
https://sourceforge.net/projects/ltsp/files/Docs-Admin-Guide/LTSPManual.pdf/download
There is also documentation and tutorials on how to setup swap over NBD at
places like https://help.ubuntu.com/community/UbuntuLTSP/EnableNBDSWAP The
nbd-client also documents the use of NBD as swap.  Despite this, the fact
is that a machine using NBD for swap can deadlock within minutes if swap
is used intensively.  This patch series addresses the problem.

The core issue is that network block devices do not use mempools like
normal block devices do.  As the host cannot control where they receive
packets from, they cannot reliably work out in advance how much memory
they might need.  Some years ago, Peter Zijlstra developed a series of
patches that supported swap over an NFS that at least one distribution is
carrying within their kernels.  This patch series borrows very heavily
from Peter's work to support swapping over NBD as a pre-requisite to
supporting swap-over-NFS.  The bulk of the complexity is concerned with
preserving memory that is allocated from the PFMEMALLOC reserves for use
by the network layer which is needed for both NBD and NFS.

Patch 1 adds knowledge of the PFMEMALLOC reserves to SLAB and SLUB to
	preserve access to pages allocated under low memory situations
	to callers that are freeing memory.

Patch 2 optimises the SLUB fast path to avoid pfmemalloc checks

Patch 3 introduces __GFP_MEMALLOC to allow access to the PFMEMALLOC
	reserves without setting PFMEMALLOC.

Patch 4 opens the possibility for softirqs to use PFMEMALLOC reserves
	for later use by network packet processing.

Patch 5 only sets page->pfmemalloc when ALLOC_NO_WATERMARKS was required

Patch 6 ignores memory policies when ALLOC_NO_WATERMARKS is set.

Patches 7-12 allows network processing to use PFMEMALLOC reserves when
	the socket has been marked as being used by the VM to clean pages. If
	packets are received and stored in pages that were allocated under
	low-memory situations and are unrelated to the VM, the packets
	are dropped.

	Patch 11 reintroduces __skb_alloc_page which the networking
	folk may object to but is needed in some cases to propogate
	pfmemalloc from a newly allocated page to an skb. If there is a
	strong objection, this patch can be dropped with the impact being
	that swap-over-network will be slower in some cases but it should
	not fail.

Patch 13 is a micro-optimisation to avoid a function call in the
	common case.

Patch 14 tags NBD sockets as being SOCK_MEMALLOC so they can use
	PFMEMALLOC if necessary.

Patch 15 notes that it is still possible for the PFMEMALLOC reserve
	to be depleted. To prevent this, direct reclaimers get throttled on
	a waitqueue if 50% of the PFMEMALLOC reserves are depleted.  It is
	expected that kswapd and the direct reclaimers already running
	will clean enough pages for the low watermark to be reached and
	the throttled processes are woken up.

Patch 16 adds a statistic to track how often processes get throttled

Some basic performance testing was run using kernel builds, netperf on
loopback for UDP and TCP, hackbench (pipes and sockets), iozone and
sysbench.  Each of them were expected to use the sl*b allocators
reasonably heavily but there did not appear to be significant performance
variances.

For testing swap-over-NBD, a machine was booted with 2G of RAM with a
swapfile backed by NBD.  8*NUM_CPU processes were started that create
anonymous memory mappings and read them linearly in a loop.  The total
size of the mappings were 4*PHYSICAL_MEMORY to use swap heavily under
memory pressure.

Without the patches and using SLUB, the machine locks up within minutes
and runs to completion with them applied.  With SLAB, the story is
different as an unpatched kernel run to completion.  However, the patched
kernel completed the test 45% faster.

MICRO
                                         3.5.0-rc2 3.5.0-rc2
					 vanilla     swapnbd
Unrecognised test vmscan-anon-mmap-write
MMTests Statistics: duration
Sys Time Running Test (seconds)             197.80    173.07
User+Sys Time Running Test (seconds)        206.96    182.03
Total Elapsed Time (seconds)               3240.70   1762.09

This patch: mm: sl[au]b: add knowledge of PFMEMALLOC reserve pages

Allocations of pages below the min watermark run a risk of the machine
hanging due to a lack of memory.  To prevent this, only callers who have
PF_MEMALLOC or TIF_MEMDIE set and are not processing an interrupt are
allowed to allocate with ALLOC_NO_WATERMARKS.  Once they are allocated to
a slab though, nothing prevents other callers consuming free objects
within those slabs.  This patch limits access to slab pages that were
alloced from the PFMEMALLOC reserves.

When this patch is applied, pages allocated from below the low watermark
are returned with page->pfmemalloc set and it is up to the caller to
determine how the page should be protected.  SLAB restricts access to any
page with page->pfmemalloc set to callers which are known to able to
access the PFMEMALLOC reserve.  If one is not available, an attempt is
made to allocate a new page rather than use a reserve.  SLUB is a bit more
relaxed in that it only records if the current per-CPU page was allocated
from PFMEMALLOC reserve and uses another partial slab if the caller does
not have the necessary GFP or process flags.  This was found to be
sufficient in tests to avoid hangs due to SLUB generally maintaining
smaller lists than SLAB.

In low-memory conditions it does mean that !PFMEMALLOC allocators can fail
a slab allocation even though free objects are available because they are
being preserved for callers that are freeing pages.

[a.p.zijlstra@chello.nl: Original implementation]
[sebastian@breakpoint.cc: Correct order of page flag clearing]
Signed-off-by: Mel Gorman <mgorman@suse.de>
Cc: David Miller <davem@davemloft.net>
Cc: Neil Brown <neilb@suse.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Christie <michaelc@cs.wisc.edu>
Cc: Eric B Munson <emunson@mgebm.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-07-31 18:42:45 -07:00
..
amba spi/pl022: cleanup pl022 header documentation 2012-07-02 13:55:36 +02:00
bcma bcma: cc: update defines 2012-07-17 15:11:37 -04:00
byteorder
caif
can can: mark bittiming_const pointer in struct can_priv as const 2012-07-20 12:31:05 +02:00
ceph libceph: fix messenger retry 2012-07-17 19:35:59 -07:00
crush
decompress
dvb
extcon extcon: spelling of detach in function doc 2012-07-17 09:32:14 -07:00
fsl
hdlc
hsi
i2c GPIO changes for v3.6: 2012-07-26 13:56:38 -07:00
iio IIO channel type and modifiers for CCT and RGBC data 2012-07-10 18:49:26 +01:00
input Input: add driver for FT5x06 based EDT displays 2012-07-24 23:55:03 -07:00
isdn
lockd
mfd MFD bits for the 3.6 merge window. 2012-07-30 12:41:17 -07:00
mlx4 InfiniBand/RDMA changes for the 3.6 merge window: 2012-07-24 13:56:26 -07:00
mmc Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-07-24 17:12:54 -07:00
mtd
netfilter netfilter: nfnetlink_queue: do not allow to set unsupported flag bits 2012-07-04 19:51:50 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfc
nfsd
pinctrl pinctrl: add pinctrl_add_gpio_ranges function 2012-07-03 21:51:08 +02:00
platform_data backlight: move lp855x header into platform_data directory 2012-07-30 17:25:15 -07:00
power
raid
regulator Merge branch 'regulator-drivers' into regulator-next 2012-07-22 19:32:00 +01:00
rtc
spi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-07-26 12:59:53 -07:00
ssb
sunrpc SUNRPC: Add rpcauth_list_flavors() 2012-07-16 15:12:15 -04:00
tc_act
tc_ematch
unaligned
usb USB patches for 3.6-rc1 2012-07-26 10:23:47 -07:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_io.h
acpi_pmtmr.h
acpi.h Merge branch 'linux-next' of git://cavan.codon.org.uk/platform-drivers-x86 2012-07-30 11:54:53 -07:00
adb.h
adfs_fs.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h
ahci_platform.h
aio_abi.h
aio.h include/linux/aio.h: cpp->C conversions 2012-07-30 17:25:21 -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
apple_bl.h
arcdevice.h
arcfb.h
async_tx.h
async.h [SCSI] async: make async_synchronize_full() flush all work regardless of domain 2012-07-20 09:07:37 +01:00
ata_platform.h
ata.h libata: detect Device Attention support 2012-06-29 11:38:17 -04:00
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
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
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h
auxvec.h
average.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h mm: prepare for removal of obsolete /proc/sys/vm/nr_pdflush_threads 2012-07-31 18:42:40 -07:00
backlight.h
basic_mmio_gpio.h
baycom.h
bcd.h
bch.h
bfin_mac.h
bfs_fs.h
binfmts.h
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk_types.h
blk-iopoll.h
blkdev.h
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h mm: sparse: fix usemap allocation above node descriptor section 2012-07-11 16:04:49 -07:00
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 net: em_canid: Ematch rule to match CAN frames according to their identifiers 2012-07-04 13:07:05 +02:00
capability.h PM: Rename CAP_EPOLLWAKEUP to CAP_BLOCK_SUSPEND 2012-07-17 21:37:27 +02:00
capi.h
cb710.h
cciss_defs.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
cgroup_subsys.h memcg: rename config variables 2012-07-31 18:42:43 -07:00
cgroup.h
cgroupstats.h
chio.h
circ_buf.h
cleancache.h
clk-private.h clk: Add CLK_IS_BASIC flag to identify basic clocks 2012-07-11 15:36:43 -07:00
clk-provider.h clk: add DT fixed-clock binding support 2012-07-11 17:58:46 -07:00
clk.h clk: add non CONFIG_HAVE_CLK routines 2012-07-30 17:25:11 -07:00
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h
cm4000_cs.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
coff.h
com20020.h
compaction.h mm/compaction: cleanup on compaction_deferred 2012-07-31 18:42:42 -07:00
compat.h ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION 2012-07-30 17:25:21 -07:00
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
const.h
cordic.h
coredump.h
cper.h
cpu_pm.h
cpu_rmap.h net/rps: Protect cpu_rmap.h from double inclusion 2012-07-19 08:34:37 -07:00
cpu.h workqueue: perform cpu down operations from low priority cpu_notifier() 2012-07-17 12:39:26 -07:00
cpufreq.h
cpuidle.h Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-07-26 14:28:55 -07:00
cpumask.h cpumask: cpulist_parse() comments correction 2012-07-27 09:29:42 +09:30
cpuset.h cpusets, hotplug: Restructure functions that are invoked during hotplug 2012-07-24 13:53:22 +02:00
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
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 stop passing nameidata * to ->d_revalidate() 2012-07-14 16:34:14 +04:00
dcbnl.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
devfreq.h
device_cgroup.h
device-mapper.h dm thin: commit before gathering status 2012-07-27 15:08:16 +01:00
device.h Driver core merge for 3.6-rc1 2012-07-26 11:25:33 -07:00
devpts_fs.h
digsig.h
dio.h
dirent.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 thin: commit before gathering status 2012-07-27 15:08:16 +01:00
dm-kcopyd.h
dm-log-userspace.h
dm-region-hash.h
dma_remapping.h
dma-attrs.h common: DMA-mapping: add DMA_ATTR_SKIP_CPU_SYNC attribute 2012-07-30 12:25:47 +02:00
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-mapping.h common: dma-mapping: introduce dma_get_sgtable() function 2012-07-30 12:25:46 +02:00
dmaengine.h
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 ARM: socfpga: initial support for Altera's SOCFPGA platform 2012-07-19 10:39:00 +02:00
dw_dmac.h
dynamic_debug.h
dynamic_queue_limits.h
ecryptfs.h
edac.h edac: allow specifying the error count with fake_inject 2012-06-27 09:01:30 -03:00
edd.h
eeprom_93cx6.h
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
etherdevice.h etherdevice: Rename random_ether_addr to eth_random_addr 2012-07-16 22:38:27 -07:00
ethtool.h net: added support for 40GbE link. 2012-06-27 15:42:24 -07:00
eventfd.h
eventpoll.h PM: Rename CAP_EPOLLWAKEUP to CAP_BLOCK_SUSPEND 2012-07-17 21:37:27 +02:00
evm.h
export.h
exportfs.h
ext2_fs.h
extcon.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 switch fput to task_work_add 2012-07-22 23:57:58 +04:00
filter.h
fips.h
firewire-cdev.h
firewire-constants.h
firewire.h - Small fixes and optimizations. 2012-07-30 09:32:39 -07:00
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
font.h
freezer.h
frontswap.h
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h switch dentry_open() to struct path, make it grab references itself 2012-07-23 00:01:29 +04: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: Remove NR_CPUS array from trace_iterator 2012-06-28 13:52:15 -04:00
ftrace_irq.h
ftrace.h
fuse.h
futex.h
gameport.h
gcd.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h genetlink: define lockdep_genl_is_held() when CONFIG_LOCKDEP 2012-07-24 00:01:30 -07:00
genhd.h driver-core: Move kobj_to_dev from genhd.h to device.h 2012-07-16 18:05:45 -07:00
getcpu.h
gfp.h
gfs2_ondisk.h
gigaset_dev.h
gpio_keys.h
gpio_mouse.h
gpio-fan.h
gpio-pxa.h
gpio.h gpio: fix bits conflict for gpio flags 2012-07-05 15:04:10 +02:00
gsmmux.h
hardirq.h
hash.h
hdlc.h
hdlcdrv.h
hdreg.h
hid-debug.h
hid-roccat.h
hid.h HID: Add suport for the brightness control keys on HP keyboards 2012-07-09 16:23:33 +02:00
hiddev.h
hidraw.h
highmem.h highmem: remove the deprecated form of kmap_atomic 2012-07-24 15:27:27 +08:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h timekeeping: Provide hrtimer update function 2012-07-11 23:34:39 +02:00
htcpld.h
htirq.h
huge_mm.h
hugetlb_cgroup.h hugetlb/cgroup: migrate hugetlb cgroup info from oldpage to new page during migration 2012-07-31 18:42:41 -07:00
hugetlb_inline.h
hugetlb.h hugetlb/cgroup: add hugetlb cgroup control files 2012-07-31 18:42:41 -07:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
hysdn_if.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: i2c-ocores: support for 16bit and 32bit IO 2012-07-14 13:30:25 +02:00
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 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-07-30 19:03:41 -07:00
i2o-dev.h
i2o.h
i8k.h
i7300_idle.h
i8042.h
i8253.h
i82593.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h wireless: 60g protocol constants 2012-07-02 15:11:12 +02: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_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h rtnl: allow to specify number of rx and tx queues on device creation 2012-07-20 11:07:00 -07:00
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_team.h team: add multiqueue support 2012-07-20 11:07:00 -07:00
if_tun.h
if_tunnel.h net/ipv4: VTI support new module for ip_vti. 2012-07-18 09:36:12 -07:00
if_vlan.h
if_x25.h
if.h net: introduce new priv_flag indicating iface capable of change mac when running 2012-06-30 01:08:00 -07:00
igmp.h
ihex.h
ima.h
in6.h
in_route.h
in.h
inet_diag.h
inet_lro.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-07-26 13:08:01 -07:00
init.h init: add comments to keep initcall-names in sync with initcall levels 2012-07-27 09:29:42 +09:30
initrd.h
inotify.h
input-polldev.h
input.h Pull input changes from Henrik Rydberg, including large update to 2012-07-07 16:18:33 -07:00
integrity.h
intel_mid_dma.h
intel_pmic_gpio.h
intel-iommu.h
interrupt.h
io-mapping.h
io.h powerpc: Disable /dev/port interface on systems without an ISA bridge 2012-07-11 18:22:32 +10:00
ioc3.h
ioc4.h
iocontext.h
ioctl.h
iommu-helper.h
iommu.h Merge branches 'iommu/fixes', 'x86/amd', 'groups', 'arm/tegra' and 'api/domain-attr' into next 2012-07-23 12:17:00 +02:00
ioport.h
ioprio.h
iova.h
ip6_tunnel.h
ip_vs.h
ip.h
ipc_namespace.h
ipc.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h ipv6: fix inet6_csk_xmit() 2012-07-18 08:59:58 -07:00
ipx.h
irda.h
irq_cpustat.h
irq_work.h
irq.h Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-07-22 12:19:36 -07:00
irqdesc.h
irqdomain.h
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
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
jffs2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h jump label: Remove static_branch() 2012-07-06 10:53:49 +02:00
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-07-30 19:03:41 -07:00
kbuild.h
kcmp.h
kconfig.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h printk: remove the now unnecessary "C" annotation for KERN_CONT 2012-07-30 17:25:14 -07:00
kernel_stat.h
kernel-page-flags.h
kernel.h Remove SYSTEM_SUSPEND_DISK system state 2012-07-21 13:58:17 -07:00
kernelcapi.h
kexec.h
key-type.h KEYS: linux/key-type.h needs linux/errno.h 2012-07-30 15:08:46 +10:00
key.h key: Remove extraneous parentheses from rcu_assign_keypointer() 2012-07-02 12:34:23 -07:00
keyboard.h
keyctl.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmalloc_sizes.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h printk: Implement some unlocked kmsg_dump functions 2012-07-21 10:34:00 -07:00
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h kthread_worker: reimplement flush_kthread_work() to allow freeing the work item being executed 2012-07-22 10:15:28 -07:00
ktime.h
kvm_host.h KVM updates for the 3.6 merge window 2012-07-24 12:01:20 -07:00
kvm_para.h
kvm_types.h
kvm.h
l2tp.h
lapb.h
latencytop.h
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-tca6507.h
leds.h leds: Rename led_brightness_set() to led_set_brightness() 2012-07-24 07:52:34 +08:00
lglock.h
lguest_launcher.h
lguest.h
libata.h Merge branch 'master' [vanilla Linus master] into libata-dev.git/upstream 2012-07-25 15:58:48 -04:00
libfdt_env.h of/lib: Allow scripts/dtc/libfdt to be used from kernel code 2012-07-23 13:54:52 +01:00
libfdt.h of/lib: Allow scripts/dtc/libfdt to be used from kernel code 2012-07-23 13:54:52 +01:00
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
lockdep.h
log2.h
loop.h
lp8727.h
lp.h
lru_cache.h
lsm_audit.h
lzo.h
m48t86.h
magic.h
major.h
map_to_7segment.h
maple.h
marvell_phy.h
math64.h
matroxfb.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h phy: add the EEE support and the way to access to the MMD registers. 2012-07-01 03:34:50 -07:00
media.h
mei.h
memblock.h memblock: free allocated memblock_reserved_regions later 2012-07-11 16:04:50 -07:00
memcontrol.h mm, memcg: move all oom handling to memcontrol.c 2012-07-31 18:42:45 -07:00
memory_hotplug.h
memory.h
mempolicy.h
mempool.h
memstick.h
meye.h
mg_disk.h
micrel_phy.h
migrate_mode.h
migrate.h hugetlb: simplify migrate_huge_page() 2012-07-31 18:42:40 -07:00
mii.h phy: add the EEE support and the way to access to the MMD registers. 2012-07-01 03:34:50 -07:00
minix_fs.h
miscdevice.h xen/mce: Add mcelog support for Xen platform 2012-07-19 15:51:36 -04:00
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types.h mm: sl[au]b: add knowledge of PFMEMALLOC reserve pages 2012-07-31 18:42:45 -07:00
mm.h mm/hotplug: free zone->pageset when a zone becomes empty 2012-07-31 18:42:44 -07:00
mman.h
mmdebug.h
mmiotrace.h
mmtimer.h
mmu_context.h
mmu_notifier.h
mmzone.h memory-hotplug: fix kswapd looping forever problem 2012-07-31 18:42:45 -07:00
mnt_namespace.h
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.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
mxsfb.h video: mxsfb: move mxsfb.h into include/linux 2012-07-03 13:22:37 +08:00
n_r3964.h
namei.h fs: add nd_jump_link 2012-07-14 16:35:40 +04:00
nbd.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
neighbour.h
net_dropmon.h
net_tstamp.h
net.h net: netprio_cgroup: rework update socket logic 2012-07-22 12:44:01 -07:00
netdev_features.h
netdevice.h net: honour netif_set_real_num_tx_queues() retval 2012-07-20 11:06:59 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h netlink: add nlk->netlink_bind hook for module auto-loading 2012-06-29 16:46:06 -07:00
netpoll.h netpoll: move np->dev and np->dev_name init into __netpoll_setup() 2012-07-17 09:02:36 -07:00
netrom.h
nfc.h NFC: Add ISO 14443 type B protocol 2012-07-09 16:42:24 -04:00
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h NFS: Treat NFS4ERR_CLID_INUSE as a fatal error 2012-07-16 15:12:16 -04:00
nfs_fs.h NFS: Split out NFS v3 inode operations 2012-07-17 13:33:03 -04:00
nfs_idmap.h
nfs_iostat.h
nfs_mount.h
nfs_page.h NFS: Cleanup - only store the write verifier in struct nfs_page 2012-06-28 17:20:50 -04:00
nfs_xdr.h Merge commit '9249e17fe094d853d1ef7475dd559a2cc7e23d42' into nfs-for-3.6 2012-07-16 12:01:42 -04:00
nfs.h
nfsacl.h
nilfs2_fs.h nilfs2: add omitted comments for structures in nilfs2_fs.h 2012-07-30 17:25:19 -07:00
nl80211.h cfg80211: add cellular base station regulatory hint support 2012-07-17 12:16:39 +02:00
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvme.h
nvram.h
nwpserial.h
of_address.h
of_device.h
of_fdt.h
of_gpio.h
of_i2c.h
of_iommu.h
of_irq.h
of_mdio.h
of_mtd.h of: mtd: nuke useless const qualifier 2012-07-10 10:32:06 -05:00
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_serial.h
of.h Merge branch 'for-3.6' of git://gitorious.org/linux-pwm/linux-pwm 2012-07-30 09:22:37 -07:00
omap3isp.h
omapfb.h
oom.h mm, memcg: move all oom handling to memcontrol.c 2012-07-31 18:42:45 -07:00
openvswitch.h
opp.h
oprofile.h
oxu210hp.h
padata.h
page_cgroup.h memcg: rename config variables 2012-07-31 18:42:43 -07:00
page-debug-flags.h
page-flags.h mm: sl[au]b: add knowledge of PFMEMALLOC reserve pages 2012-07-31 18:42:45 -07:00
page-isolation.h mm: factor out memory isolate functions 2012-07-31 18:42:45 -07:00
pageblock-flags.h
pagemap.h
pagevec.h
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 Merge branch 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-07-22 16:07:45 -07:00
pci_regs.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-07-26 14:18:18 -07:00
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h Merge branches 'iommu/fixes', 'x86/amd', 'groups', 'arm/tegra' and 'api/domain-attr' into next 2012-07-23 12:17:00 +02:00
pcieport_if.h
pda_power.h
percpu_counter.h
percpu-defs.h
percpu.h
perf_event.h
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phonet.h
phy_fixed.h
phy.h phylib: Support registering a bunch of drivers 2012-07-09 00:10:56 -07:00
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h pipe: remove KM_USER0 from comments 2012-07-24 15:27:34 +08:00
pkt_cls.h net: sched: add ipset ematch 2012-07-12 07:54:46 -07:00
pkt_sched.h
pktcdvd.h
platform_device.h
plist.h
pm_clock.h
pm_domain.h PM / Domains: Add device domain data reference counter 2012-07-05 22:12:32 +02:00
pm_qos.h PM / QoS: Use NULL pointer instead of plain integer in pm_qos.h 2012-07-19 00:02:30 +02:00
pm_runtime.h
pm_wakeup.h
pm.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h posix_types.h: Cleanup stale __NFDBITS and related definitions 2012-07-26 13:36:43 -07:00
posix-clock.h
posix-timers.h
power_supply.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h
pps_kernel.h
pps-gpio.h
pps.h
prctl.h security: Minor improvements to no_new_privs documentation 2012-07-08 00:25:48 +10:00
preempt.h
prefetch.h
printk.h printk: remove the now unnecessary "C" annotation for KERN_CONT 2012-07-30 17:25:14 -07:00
prio_heap.h
prio_tree.h
proc_fs.h
profile.h
proportions.h
pstore_ram.h pstore/ram: Make tracing log versioned 2012-07-17 16:48:09 -07:00
pstore.h pstore: Headers should include all stuff they use 2012-07-17 12:15:30 -07:00
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp_clock.h
ptrace.h
pwm_backlight.h pwm-backlight: Add rudimentary device tree support 2012-07-23 13:23:52 +02:00
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qnx4_fs.h
qnx6_fs.h
qnxtypes.h
quicklist.h
quota.h quota: Split dquot_quota_sync() to writeback and cache flushing part 2012-07-22 23:58:19 +04:00
quotaops.h quota: Split dquot_quota_sync() to writeback and cache flushing part 2012-07-22 23:58:19 +04:00
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ratelimit.h
rational.h
raw.h
rbtree.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate.h rcu: Fix broken strings in RCU's source code. 2012-07-06 06:01:49 -07:00
rcutiny.h Revert "rcu: Move PREEMPT_RCU preemption to switch_to() invocation" 2012-07-02 11:39:19 -07:00
rcutree.h
rds.h
reboot.h
reciprocal_div.h
regmap.h Merge branches 'regmap-core', 'regmap-irq' and 'regmap-page' into regmap-next 2012-07-22 19:26:07 +01:00
regset.h
reiserfs_fs.h
reiserfs_xattr.h
relay.h
remoteproc.h remoteproc: Support custom firmware handlers 2012-07-15 11:39:01 +03: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
rio_regs.h
rio.h
rmap.h
rndis.h
romfs_fs.h
root_dev.h
rose.h
rotary_encoder.h
route.h
rpmsg.h rpmsg: make sure inflight messages don't invoke just-removed callbacks 2012-07-04 11:51:59 +03:00
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h rtnetlink: Remove ts/tsage args to rtnl_put_cacheinfo(). 2012-07-10 22:40:13 -07:00
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
sc26198.h
scatterlist.h scatterlist: add sg_alloc_table_from_pages function 2012-07-30 12:25:44 +02:00
scc.h
sched.h memcg: rename config variables 2012-07-31 18:42:43 -07:00
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux_netlink.h
selinux.h
sem.h
semaphore.h
seq_file_net.h
seq_file.h
seqlock.h
serial167.h
serial_8250.h
serial_core.h serial/8250: Add LPC3220 standard UART type 2012-07-26 13:37:02 -07:00
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_reg.h
serial_sci.h
serial.h
serio.h
sfi_acpi.h
sfi.h
sh_clk.h
sh_dma.h dma: sh: provide a migration path for slave drivers to stop using .private 2012-07-20 11:28:20 +05:30
sh_eth.h
sh_intc.h
sh_pfc.h sh: pfc: Rudimentary pinctrl-backed GPIO support. 2012-07-10 12:08:14 +09:00
sh_timer.h
shdma-base.h dma: sh: provide a migration path for slave drivers to stop using .private 2012-07-20 11:28:20 +05:30
shm.h ipc: add COMPAT_SHMLBA support 2012-07-30 17:25:20 -07:00
shmem_fs.h
shrinker.h vmscan: remove obsolete shrink_control comment 2012-07-31 18:42:43 -07:00
sht15.h
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h ARM: 7430/1: sizes.h: move from asm-generic to <linux/sizes.h> 2012-06-28 17:14:34 +01:00
skbuff.h skbuff: add an api to orphan frags 2012-07-22 12:39:33 -07:00
slab_def.h slab: rename gfpflags to allocflags 2012-07-02 13:40:06 +03:00
slab.h mm, sl[aou]b: Common definition for boot state of the slab allocators 2012-07-09 12:13:35 +03:00
slob_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smsc911x.h
smscphy.h
snmp.h net-tcp: Fast Open client - sending SYN-data 2012-07-19 11:02:03 -07:00
sock_diag.h net: make sock diag per-namespace 2012-07-16 22:31:34 -07:00
socket.h net-tcp: Fast Open client - sendmsg(MSG_FASTOPEN) 2012-07-19 11:02:03 -07:00
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
stackprotector.h
stacktrace.h
stallion.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
stmmac.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h string: introduce memweight() 2012-07-30 17:25:16 -07:00
stringify.h
sungem_phy.h
sunserialcore.h
superhyway.h
suspend_ioctls.h
suspend.h PM / Sleep: Separate printing suspend times from initcall_debug 2012-07-01 13:31:23 +02:00
svga.h
swab.h
swap.h memcg: rename config variables 2012-07-31 18:42:43 -07:00
swapfile.h
swapops.h
swiotlb.h
synclink.h
sys_soc.h
sys.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h
sysinfo.h
syslog.h
sysrq.h
sysv_fs.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h merge task_work and rcu_head, get rid of separate allocation for keyring case 2012-07-22 23:57:56 +04:00
taskstats_kern.h
taskstats.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h tcp: dont drop MTU reduction indications 2012-07-23 00:58:46 -07:00
telephony.h
termios.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h Thermal: Add Hysteresis attributes 2012-07-24 23:19:26 -04:00
thread_info.h
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time-armada-370-xp.h clocksource: time-armada-370-xp: Marvell Armada 370/XP SoC timer driver 2012-07-10 15:47:46 +02:00
time.h posix_types.h: Cleanup stale __NFDBITS and related definitions 2012-07-26 13:36:43 -07:00
timecompare.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
times.h
timex.h
tiocl.h
tipc_config.h tipc: remove print_buf and deprecated log buffer code 2012-07-13 19:34:43 -04:00
tipc.h
topology.h
toshiba.h
tpm_command.h
tpm.h
trace_clock.h
trace_seq.h
tracehook.h trim task_work: get rid of hlist 2012-07-22 23:57:55 +04:00
tracepoint.h tracepoint: Use static_key_false(), since static_branch() is deprecated 2012-07-06 10:53:49 +02:00
transport_class.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h
typecheck.h
types.h merge task_work and rcu_head, get rid of separate allocation for keyring case 2012-07-22 23:57:56 +04:00
u64_stats_sync.h
uaccess.h
ucb1400.h
udf_fs_i.h
udp.h
uhid.h
uidgid.h
uinput.h
uio_driver.h
uio.h
ultrasound.h
un.h
unistd.h
unix_diag.h
uprobes.h
usb_usual.h [SCSI] usb-storage: add support for write cache quirk 2012-07-20 08:59:00 +01:00
usb.h USB: add USB_VENDOR_AND_INTERFACE_INFO() macro 2012-07-16 17:43:04 -07:00
usbdevice_fs.h usbdevfs: Use scatter-gather lists for large bulk transfers 2012-07-06 10:53:20 -07:00
user_namespace.h
user-return-notifier.h
user.h
utime.h
uts.h
utsname.h
uuid.h
uvcvideo.h [media] uvcvideo: Document the struct uvc_xu_control_query query field 2012-07-06 15:26:45 -03:00
uwb.h
v4l2-common.h [media] v4l: Unify selection flags 2012-07-06 20:17:46 -03:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h [media] v4l: Unify selection flags 2012-07-06 20:17:46 -03:00
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: Unify selection flags 2012-07-06 20:17:46 -03:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h virtio-blk: return VIRTIO_BLK_F_FLUSH to header. 2012-07-30 13:30:52 +09:30
virtio_config.h
virtio_console.h
virtio_ids.h virtio ids: fix comment for virtio-rng 2012-07-30 13:30:49 +09:30
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_ring.h
virtio_rng.h
virtio_scsi.h [SCSI] virtio-scsi: hotplug support for virtio-scsi 2012-07-20 08:58:58 +01:00
virtio.h [SCSI] virtio-scsi: Add vdrv->scan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning 2012-07-20 08:59:03 +01:00
vlynq.h
vm_event_item.h
vmalloc.h ARM: dma-mapping: remove custom consistent dma region 2012-07-30 12:25:45 +02:00
vme.h
vmstat.h
vt_buffer.h
vt_kern.h
vt.h
w1-gpio.h
wait.h
wanrouter.h
watchdog.h
wimax.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h mm: prepare for removal of obsolete /proc/sys/vm/nr_pdflush_threads 2012-07-31 18:42:40 -07: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