Vlastimil Babka
698b1b3064
mm, compaction: introduce kcompactd
...
Memory compaction can be currently performed in several contexts:
- kswapd balancing a zone after a high-order allocation failure
- direct compaction to satisfy a high-order allocation, including THP
page fault attemps
- khugepaged trying to collapse a hugepage
- manually from /proc
The purpose of compaction is two-fold. The obvious purpose is to
satisfy a (pending or future) high-order allocation, and is easy to
evaluate. The other purpose is to keep overal memory fragmentation low
and help the anti-fragmentation mechanism. The success wrt the latter
purpose is more
The current situation wrt the purposes has a few drawbacks:
- compaction is invoked only when a high-order page or hugepage is not
available (or manually). This might be too late for the purposes of
keeping memory fragmentation low.
- direct compaction increases latency of allocations. Again, it would
be better if compaction was performed asynchronously to keep
fragmentation low, before the allocation itself comes.
- (a special case of the previous) the cost of compaction during THP
page faults can easily offset the benefits of THP.
- kswapd compaction appears to be complex, fragile and not working in
some scenarios. It could also end up compacting for a high-order
allocation request when it should be reclaiming memory for a later
order-0 request.
To improve the situation, we should be able to benefit from an
equivalent of kswapd, but for compaction - i.e. a background thread
which responds to fragmentation and the need for high-order allocations
(including hugepages) somewhat proactively.
One possibility is to extend the responsibilities of kswapd, which could
however complicate its design too much. It should be better to let
kswapd handle reclaim, as order-0 allocations are often more critical
than high-order ones.
Another possibility is to extend khugepaged, but this kthread is a
single instance and tied to THP configs.
This patch goes with the option of a new set of per-node kthreads called
kcompactd, and lays the foundations, without introducing any new
tunables. The lifecycle mimics kswapd kthreads, including the memory
hotplug hooks.
For compaction, kcompactd uses the standard compaction_suitable() and
ompact_finished() criteria and the deferred compaction functionality.
Unlike direct compaction, it uses only sync compaction, as there's no
allocation latency to minimize.
This patch doesn't yet add a call to wakeup_kcompactd. The kswapd
compact/reclaim loop for high-order pages will be replaced by waking up
kcompactd in the next patch with the description of what's wrong with
the old approach.
Waking up of the kcompactd threads is also tied to kswapd activity and
follows these rules:
- we don't want to affect any fastpaths, so wake up kcompactd only from
the slowpath, as it's done for kswapd
- if kswapd is doing reclaim, it's more important than compaction, so
don't invoke kcompactd until kswapd goes to sleep
- the target order used for kswapd is passed to kcompactd
Future possible future uses for kcompactd include the ability to wake up
kcompactd on demand in special situations, such as when hugepages are
not available (currently not done due to __GFP_NO_KSWAPD) or when a
fragmentation event (i.e. __rmqueue_fallback()) occurs. It's also
possible to perform periodic compaction with kcompactd.
[arnd@arndb.de: fix build errors with kcompactd]
[paul.gortmaker@windriver.com: don't use modular references for non modular code]
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-03-17 15:09:34 -07:00
..
amba
tty: amba-pl011: add support for ZTE UART (EXPERIMENTAL)
2015-12-13 19:59:48 -08:00
bcma
mtd: bcm47xxnflash: really unregister NAND on device removal
2015-12-14 10:11:09 -08:00
byteorder
can
ceph
ceph: initial CEPH_FEATURE_FS_FILE_LAYOUT_V2 support
2016-03-04 21:00:37 +01:00
clk
ARM: SoC multiplatform code changes for v4.5
2016-01-20 18:03:56 -08:00
crush
crush: add chooseleaf_stable tunable
2016-02-04 18:25:55 +01:00
decompress
dma
extcon
fpga
fsl
gpio
gpio: generic: make bgpio_pdata always visible
2016-01-13 16:00:32 +01:00
hsi
i2c
iio
iio: Make IIO value formating function globally available.
2015-12-22 17:04:56 +00:00
input
irqchip
MIPS: Make smp CMP, CPS and MT use the new generic IPI functions
2016-02-25 10:56:58 +01:00
isdn
lockd
lockd: constify nlmsvc_binding structure
2016-01-07 10:10:50 -05:00
mfd
rtc: max77686: move initialisation of rtc regmap, irq chip locally
2016-03-14 17:08:13 +01:00
mlx4
net/mlx4_core: Set UAR page size to 4KB regardless of system page size
2016-02-17 10:29:27 -05:00
mlx5
net/mlx5e: Fix ethtool RX hash func configuration change
2016-03-02 14:37:25 -05:00
mmc
mmc: dw_mmc: remove the unused quirks
2016-01-05 18:04:58 +01:00
mtd
mtd: nand: add helpers to access ->priv
2016-01-07 09:55:39 -08:00
netfilter
netfilter: nfnetlink: pass down netns pointer to commit() and abort() callbacks
2015-12-28 18:43:15 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
phy: omap-usb2: use *syscon* framework API to power on/off the PHY
2015-12-21 14:26:28 +05:30
pinctrl
platform_data
hwmon: (ntc_thermistor) Add support for ncpXXxh103
2016-03-05 06:25:34 -08:00
power
power: bq27xxx_battery: Restore device name
2016-02-21 20:49:34 +01:00
qed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-12-17 22:08:28 -05:00
raid
raid6/algos.c : bug fix : Add the missing definitions to the pq.h file
2016-01-21 14:47:08 -08:00
regulator
Merge remote-tracking branches 'regulator/topic/discharge', 'regulator/topic/fan53555', 'regulator/topic/gpio', 'regulator/topic/hi655x' and 'regulator/topic/lp872x' into regulator-next
2016-03-13 15:19:35 +07:00
reset
rtc
sched
sched/debug: Make schedstats a runtime tunable that is disabled by default
2016-02-09 11:54:23 +01:00
soc
soc: ti: knav_dma: rename pad in struct knav_dma_desc to sw_data
2016-02-21 22:03:15 -05:00
spi
Merge remote-tracking branches 'spi/topic/res', 'spi/topic/rockchip', 'spi/topic/sh', 'spi/topic/ti-qspi' and 'spi/topic/xilinx' into spi-next
2016-03-11 14:28:53 +07:00
ssb
ssb: pick SoC invariants code from MIPS BCM47xx arch
2015-12-16 16:36:25 +02:00
sunrpc
Initial roundup of 4.5 merge window patches
2016-01-23 18:45:06 -08:00
ulpi
unaligned
usb
USB patches for 4.5-rc1
2016-01-13 09:26:40 -08:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h
Merge branches 'acpi-pci', 'acpi-irq' and 'acpi-assorted'
2016-01-12 01:10:19 +01:00
acpi_dma.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
PCI/AER: include header file
2015-12-23 08:37:10 -07:00
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
arm-cci.h
arm-smccc.h
ARM: 8478/2: arm/arm64: add arm-smccc
2016-01-04 16:19:57 +00:00
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
libata: fix HDIO_GET_32BIT ioctl
2016-02-11 10:07:18 -05:00
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atmel-mci.h
mmc: atmel: get rid of struct mci_dma_data
2016-01-14 13:40:30 +01:00
atmel-ssc.h
atmel_pdc.h
atmel_serial.h
atmel_tc.h
atomic.h
atomic: Export fetch_or()
2016-02-13 15:34:28 +01:00
attribute_container.h
audit.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2016-01-17 19:13:15 -08:00
auto_dev-ioctl.h
autofs4: fix string.h include in auto_dev-ioctl.h
2016-03-15 16:55:16 -07:00
auto_fs.h
autofs4: coding style fixes
2016-03-15 16:55:16 -07:00
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
backing-dev.h
backlight.h
badblocks.h
block, badblocks: introduce devm_init_badblocks
2016-01-09 08:39:04 -08:00
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_wdt.h
watchdog: bcm47xx_wdt: use core reboot notifier
2015-12-13 15:55:55 +01:00
bcm963xx_nvram.h
MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure
2016-01-24 03:47:37 +01:00
bcm963xx_tag.h
MIPS: bcm963xx: Update bcm_tag field image_sequence
2016-01-24 03:49:03 +01:00
bfin_mac.h
binfmts.h
bio.h
block: don't optimize for non-cloned bio in bio_get_last_bvec()
2016-03-12 14:12:10 -07:00
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk-cgroup.h
blk-mq.h
blk_types.h
block: remove REQ_NO_TIMEOUT flag
2015-12-22 09:38:34 -07:00
blkdev.h
block: fix blk_rq_get_max_sectors for driver private requests
2016-03-03 14:43:45 -07:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
c2port.h
cache.h
arch: Introduce post-init read-only memory
2016-02-22 08:51:38 +01:00
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup-defs.h
cgroup: make sure a parent css isn't offlined before its children
2016-01-22 10:42:57 -05:00
cgroup.h
Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2016-01-12 19:20:32 -08:00
cgroup_subsys.h
circ_buf.h
cleancache.h
include/linux/cleancache.h: Clean up code
2016-01-27 09:10:29 -05:00
clk-provider.h
Merge branch 'clk-rockchip' into clk-next
2015-12-23 13:08:56 -08:00
clk.h
clkdev.h
clock_cooling.h
clockchips.h
clockevents: Rename last parameter of clocks_calc_mult_shift() to maxsec
2016-01-27 12:38:03 +01:00
clocksource.h
clocksource: Introduce clocksource_freq2mult()
2016-02-27 08:55:30 +01:00
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
compaction.h
mm, compaction: introduce kcompactd
2016-03-17 15:09:34 -07:00
compat.h
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler.h
Merge commit 'fixes.2015.02.23a' into core/rcu
2016-03-15 09:01:06 +01:00
completion.h
component.h
concap.h
configfs.h
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2016-01-20 17:20:53 -08:00
connector.h
console.h
printk: do cond_resched() between lines while outputting to consoles
2016-01-16 11:17:25 -08:00
console_struct.h
consolemap.h
container.h
context_tracking.h
context_tracking_state.h
cordic.h
coredump.h
coresight.h
count_zeros.h
cper.h
cpu.h
rcu: Make CPU_DYING_IDLE an explicit call
2016-03-01 20:36:58 +01:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq-dt.h
cpufreq.h
Merge branch 'pm-cpufreq-governor' into pm-cpufreq
2016-03-10 20:46:03 +01:00
cpuhotplug.h
cpu/hotplug: Make wait for dead cpu completion based
2016-03-01 20:36:58 +01:00
cpuidle.h
cpumask.h
kernel/cpu.c: make set_cpu_* static inlines
2016-01-20 17:09:18 -08:00
cpuset.h
cpuset: make mm migration asynchronous
2016-01-22 10:22:46 -05:00
cputime.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h
dax: move writeback calls into the filesystems
2016-02-27 10:28:52 -08:00
dca.h
dcache.h
use ->d_seq to get coherency between ->d_inode and ->d_flags
2016-02-29 12:16:43 -05:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
switch ->get_link() to delayed_call, kill ->put_link()
2015-12-30 13:01:03 -05:00
dell-led.h
devcoredump.h
devfreq-event.h
devfreq.h
PM / devfreq: Set the freq_table of devfreq device
2016-01-13 17:30:32 +09:00
devfreq_cooling.h
device-mapper.h
dm snapshot: disallow the COW and origin devices from being identical
2016-03-10 17:12:09 -05:00
device.h
device core: add device_is_bound()
2016-01-08 01:12:06 +01:00
device_cgroup.h
devpts_fs.h
pty: make sure super_block is still valid in final /dev/tty close
2016-02-06 23:45:46 -08:00
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-mapping: always provide the dma_map_ops based implementation
2016-01-20 17:09:18 -08:00
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-iommu.h
dma-mapping.h
Merge branch 'mm-pat-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-14 16:31:41 -07:00
dma_remapping.h
dmaengine.h
Merge branch 'topic/async' into for-linus
2016-01-06 15:17:47 +05:30
dmapool.h
dmar.h
dmi.h
firmware: dmi_scan: Save SMBIOS Type 9 System Slots
2016-01-15 22:08:45 +01:00
dnotify.h
dns_resolver.h
dqblk_qtree.h
quota: constify qtree_fmt_operations structures
2016-01-04 10:58:35 +01:00
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
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
efi: Make efivarfs entries immutable by default
2016-02-10 16:25:52 +00:00
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
err.h: add (missing) unlikely() to IS_ERR_OR_NULL()
2016-01-16 11:17:24 -08:00
errno.h
errqueue.h
etherdevice.h
net: Add eth_platform_get_mac_address() helper.
2016-01-06 16:31:56 -05:00
ethtool.h
eventfd.h
eventpoll.h
evm.h
evm: provide a function to set the EVM key from the kernel
2015-12-15 08:53:36 -05:00
export.h
exportfs.h
ext2_fs.h
extcon.h
f2fs_fs.h
f2fs: add symbol to avoid any confusion with tools
2015-12-14 18:58:42 -08:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h
mm: fault-inject take over bootstrap kmem_cache check
2016-03-15 16:55:16 -07:00
fb.h
fbdev: kill fb_rotate
2016-02-26 13:28:35 +02:00
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fence.h
file.h
filter.h
bpf: cleanup bpf_prog_run_{save,clear}_cb helpers
2016-01-08 21:40:34 -05:00
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
block: revert runtime dax control of the raw block device
2016-01-30 13:35:31 -08:00
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify_backend.h
Revert "fsnotify: destroy marks with call_srcu instead of dedicated thread"
2016-02-18 16:23:24 -08:00
ftrace.h
sched/debug: Fix preempt_disable_ip recording for preempt_disable()
2016-02-29 09:53:10 +01:00
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genalloc:support allocating specific region
2015-12-22 17:10:17 -06:00
genetlink.h
genhd.h
block: kill disk_{check|set|clear|alloc}_badblocks
2016-01-09 22:42:31 -08:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
mm/compaction: speed up pageblock_pfn_to_page() when zone is contiguous
2016-03-15 16:55:16 -07:00
glob.h
goldfish.h
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
HID: add a new helper to_hid_driver()
2015-12-28 13:41:50 +01:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
hrtimer: Revert CLOCK_MONOTONIC_RAW support
2016-03-03 11:11:12 +01:00
htcpld.h
htirq.h
huge_mm.h
thp: change pmd_trans_huge_lock() interface to return ptl
2016-01-21 17:20:51 -08:00
hugetlb.h
hugetlb: fix compile error on tile
2016-01-15 17:56:32 -08:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
Drivers: hv: vmbus: fix the building warning with hyperv-keyboard
2015-12-21 13:07:56 -08:00
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: create builtin_i2c_driver to avoid registration boilerplate
2016-01-13 11:06:03 +01:00
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h
ieee802154.h
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
net: Eliminate NETIF_F_GEN_CSUM and NETIF_F_V[46]_CSUM
2015-12-15 16:50:20 -05:00
igmp.h
ihex.h
ima.h
in.h
in6.h
inet.h
inet_diag.h
net: diag: Support SOCK_DESTROY for inet sockets.
2015-12-15 23:26:51 -05:00
inet_lro.h
inetdevice.h
init.h
asm-generic: Consolidate mark_rodata_ro()
2016-02-22 08:51:37 +01:00
init_ohci1394_dma.h
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
iommu/vt-d: Clear PPR bit to ensure we get more page request interrupts
2016-02-15 12:42:38 +00:00
intel-svm.h
intel_pmic_gpio.h
interrupt.h
x86/ACPI/PCI: Recognize that Interrupt Line 255 means "not connected"
2016-03-09 01:23:35 +01:00
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h
lib/iomap_copy.c: add __ioread32_copy()
2016-01-20 17:09:18 -08:00
ioc3.h
ioc4.h
iocontext.h
iommu-common.h
iommu-helper.h
iommu.h
iommu: Update struct iommu_ops comments
2016-01-29 12:34:29 +01:00
iopoll.h
ioport.h
libnvdimm for 4.6
2016-03-16 17:45:56 -07:00
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-15 12:48:48 -07:00
irq_cpustat.h
irq_poll.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
genirq: Free irq_desc with rcu
2015-12-14 10:03:46 +01:00
irqdomain.h
genirq: Add a new generic IPI reservation code to irq core
2016-02-25 10:56:56 +01:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft: Add prefix-len attr and display netmask
2016-03-14 10:30:57 -04:00
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
jbd2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan.h
kasan: add functions to clear stack poison
2016-03-09 15:43:42 -08:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kd.h
kdb.h
kdebug.h
kdev_t.h
include/linux/kdev_t.h: remove new_valid_dev()
2016-01-16 11:17:23 -08:00
kern_levels.h
kernel-page-flags.h
kernel.h
include/linux/kernel.h: change abs() macro so it uses consistent return type
2016-01-16 11:17:22 -08:00
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h
kexec: move some memembers and definitions within the scope of CONFIG_KEXEC_FILE
2016-01-20 17:09:18 -08:00
key-type.h
key.h
KEYS: prevent keys from being removed from specified keyrings
2015-12-15 10:01:43 -05:00
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h
mm: kmemleak: mark kmemleak_init prototype as __init
2015-12-12 10:15:34 -08:00
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
KVM: Use simple waitqueue for vcpu->wq
2016-02-25 11:27:16 +01:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
kvm: rename pfn_t to kvm_pfn_t
2016-01-15 17:56:32 -08:00
l2tp.h
lapb.h
latencytop.h
sched/debug: Make schedstats a runtime tunable that is disabled by default
2016-02-09 11:54:23 +01:00
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
leds: core: avoid error message when a USB LED device is unplugged
2016-03-14 09:22:20 +01:00
leds_pwm.h
lglock.h
lguest.h
lguest_launcher.h
libata.h
libata: Align ata_device's id on a cacheline
2016-02-25 16:37:06 -05:00
libfdt.h
libfdt_env.h
libnvdimm.h
nfit: disable userspace initiated ars during scrub
2016-03-05 12:24:06 -08:00
libps2.h
license.h
lightnvm.h
lightnvm: allow to force mm initialization
2016-02-04 09:19:45 -07:00
linkage.h
linux_logo.h
lis3lv02d.h
list.h
list: kill list_force_poison()
2016-03-09 15:43:42 -08:00
list_bl.h
list_lru.h
mm: memcontrol: move kmem accounting code to CONFIG_MEMCG
2016-01-20 17:09:18 -08:00
list_nulls.h
list_sort.h
livepatch.h
llc.h
llist.h
lockdep.h
kernel/locking/lockdep.c: convert hash tables to hlists
2016-02-11 18:35:48 -08:00
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h
security: Add hook to invalidate inode security labels
2015-12-24 11:09:40 -05:00
lz4.h
lz4: fix wrong compress buffer size for 64-bits
2016-01-20 17:09:18 -08:00
lzo.h
m48t86.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdio-bitbang.h
mdio-mux.h
mdio.h
mdio: Abstract device_remove() and device_free()
2016-01-07 14:31:27 -05:00
mei_cl_bus.h
memblock.h
memblock: fix section mismatch
2016-01-15 17:56:32 -08:00
memcontrol.h
mm: memcontrol: report kernel stack usage in cgroup2 memory.stat
2016-03-17 15:09:34 -07:00
memory.h
memory-hotplug: add automatic onlining policy for the newly added memory
2016-03-15 16:55:16 -07:00
memory_hotplug.h
mm/compaction: speed up pageblock_pfn_to_page() when zone is contiguous
2016-03-15 16:55:16 -07:00
mempolicy.h
mm/mempolicy.c: convert the shared_policy lock to a rwlock
2016-01-14 16:00:49 -08:00
mempool.h
memremap.h
mm, dax, pmem: introduce {get|put}_dev_pagemap() for dax-gup
2016-01-15 17:56:32 -08:00
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate.h
mm, page_owner: track and print last migrate reason
2016-03-15 16:55:16 -07:00
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm-arch-hooks.h
mm.h
Merge branch 'akpm' (patches from Andrew)
2016-03-16 11:51:08 -07:00
mm_inline.h
mm: move lru_to_page to mm_inline.h
2016-01-14 16:00:49 -08:00
mm_types.h
Merge branch 'x86/urgent' into x86/asm, to pick up fixes
2016-02-18 09:28:03 +01:00
mman.h
mmdebug.h
mm, debug: move bad flags printing to bad_page()
2016-03-15 16:55:16 -07:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h
mm, compaction: introduce kcompactd
2016-03-17 15:09:34 -07:00
mnt_namespace.h
mod_devicetable.h
Drivers: hv: vmbus: Use uuid_le type consistently
2015-12-14 19:15:05 -08:00
module.h
modules: fix longstanding /proc/kallsyms vs module insertion race.
2016-02-03 16:58:15 +10:30
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
PCI changes for the v4.5 merge window:
2016-01-21 11:52:16 -08:00
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nfsd: don't hold i_mutex over userspace upcalls
2016-01-09 03:07:52 -05:00
nd.h
libnvdimm: async notification support
2016-03-05 12:24:06 -08:00
net.h
netdev_features.h
net: Eliminate NETIF_F_GEN_CSUM and NETIF_F_V[46]_CSUM
2015-12-15 16:50:20 -05:00
netdevice.h
net: make netdev_for_each_lower_dev safe for device removal
2016-02-19 15:29:26 -05:00
netfilter.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netlink: add a start callback for starting a netlink dump
2015-12-15 23:25:20 -05:00
netpoll.h
nfs.h
nfs3.h
nfs4.h
NFS client updates for Linux 4.5
2016-01-14 16:08:23 -08:00
nfs_fs.h
nfs: fix nfs_size_to_loff_t
2016-02-08 15:20:01 -05:00
nfs_fs_i.h
nfs_fs_sb.h
nfs: machine credential support for additional operations
2015-12-28 09:57:15 -05:00
nfs_iostat.h
nfs_page.h
nfs_xdr.h
pnfs/blocklayout: fix a memeory leak when using,vmalloc_to_page
2016-02-17 11:44:45 -05:00
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
rcu: Make CPU_DYING_IDLE an explicit call
2016-03-01 20:36:58 +01:00
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.h
nubus.h
numa.h
nvme.h
nvmem-consumer.h
nvmem-provider.h
nvram.h
of.h
of: drop symbols declared by _OF_DECLARE() from modules
2016-01-25 08:35:50 -06:00
of_address.h
of: fix declaration of of_io_request_and_map
2015-12-17 10:43:06 -06:00
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
gpio: of: provide optional of_mm_gpiochip_add_data() function
2016-01-05 11:20:12 +01:00
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_mtd.h
of_net.h
of_pci.h
PCI: host: Add of_pci_get_host_bridge_resources() stub
2016-01-15 12:30:35 -06:00
of_pdt.h
of_platform.h
of_reserved_mem.h
oid_registry.h
olpc-ec.h
omap-dma.h
dmaengine: omap-dma: Add support for DMA filter mapping to slave devices
2015-12-18 11:17:26 +05:30
omap-dmaengine.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page-flags-layout.h
page-flags.h
/proc/kpageflags: return KPF_BUDDY for "tail" buddy pages
2016-03-17 15:09:34 -07:00
page-isolation.h
page_counter.h
page_ext.h
mm, page_owner: track and print last migrate reason
2016-03-15 16:55:16 -07:00
page_idle.h
page_owner.h
mm, page_owner: dump page owner info from dump_page()
2016-03-15 16:55:16 -07:00
pageblock-flags.h
pagemap.h
mm: simplify lock_page_memcg()
2016-03-15 16:55:16 -07:00
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-compat.h
PCI: Consolidate PCI DMA constants and interfaces in linux/pci-dma-compat.h
2016-03-07 11:39:16 -06:00
pci-dma.h
pci.h
PCI changes for the v4.6 merge window:
2016-03-16 14:45:55 -07:00
pci_hotplug.h
pci_ids.h
PCI: Add PCI_CLASS_SERIAL_USB_DEVICE definition
2016-03-15 08:52:28 -05:00
pcieport_if.h
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
percpu_ida.h
perf_event.h
Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-14 19:44:38 -07:00
perf_regs.h
personality.h
pfn.h
mm: fix pfn_t vs highmem
2016-02-11 18:35:48 -08:00
pfn_t.h
mm: fix pfn_t vs highmem
2016-02-11 18:35:48 -08:00
phonet.h
phy.h
mdio: Add support for mdio drivers.
2016-01-07 14:31:27 -05:00
phy_fixed.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pipe: limit the per-user amount of pages allocated in pipes
2016-01-19 19:25:21 -05:00
pktcdvd.h
pl320-ipc.h
platform_device.h
Power management and ACPI updates for v4.5-rc1
2016-01-12 20:25:09 -08:00
plist.h
pm-trace.h
pm.h
PM / sleep: Go direct_complete if driver has no callbacks
2016-01-08 01:12:06 +01:00
pm2301_charger.h
pm_clock.h
pm_domain.h
PM / Domains: remove old power on/off latencies
2016-02-15 23:18:15 +01:00
pm_opp.h
PM / OPP: Add dev_pm_opp_set_rate()
2016-02-10 01:11:54 +01:00
pm_qos.h
pm_runtime.h
PM / runtime: Add new helper for conditional usage count incrementation
2015-12-21 03:11:12 +01:00
pm_wakeirq.h
pm_wakeup.h
pmem.h
libnvdimm, pmem: clear poison on write
2016-03-09 15:15:32 -08:00
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
mm/page_poisoning.c: allow for zero poisoning
2016-03-15 16:55:16 -07:00
poll.h
posix-clock.h
posix-timers.h
posix-cpu-timers: Migrate to use new tick dependency mask model
2016-03-02 16:44:27 +01:00
posix_acl.h
posix_acl_xattr.h
power_supply.h
powercap.h
powercap: constify powercap_zone_ops and powercap_zone_constraint_ops structures
2016-01-02 00:29:35 +01:00
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
time: Remove duplicated code in ktime_get_raw_and_real()
2016-03-02 17:13:02 -08:00
pr.h
preempt.h
prefetch.h
printk.h
printk: help pr_debug and pr_devel to optimize out arguments
2016-01-16 11:17:29 -08:00
proc_fs.h
proc_ns.h
profile.h
projid.h
property.h
device property: add spaces to PROPERTY_ENTRY_STRING macro
2016-01-01 02:09:51 +01:00
proportions.h
psci.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp: Add PTP_SYS_OFFSET_PRECISE for driver crosstimestamping
2016-03-03 14:23:43 -08:00
ptrace.h
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
spi: pxa2xx: Add support for both chip selects on Intel Braswell
2016-02-09 19:01:11 +00:00
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h
radix-tree: fix oops after radix_tree_iter_retry
2016-02-05 18:10:40 -08:00
raid_class.h
ramfs.h
random.h
drivers: char: random: add get_random_long()
2016-02-27 10:28:52 -08:00
range.h
ras.h
ratelimit.h
rational.h
rbtree.h
rbtree: use READ_ONCE in RB_EMPTY_ROOT
2016-01-20 17:09:18 -08:00
rbtree_augmented.h
rbtree_latch.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-03-15 13:50:29 -07:00
rcutiny.h
rcutree.h
reboot.h
reciprocal_div.h
regmap.h
Merge remote-tracking branch 'regmap/topic/update-bits' into regmap-next
2016-03-05 21:30:41 +09:00
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource.h
resource_ext.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
rhashtable.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-12-17 22:08:28 -05:00
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
mm: replace vma_lock_anon_vma with anon_vma_lock_read/write
2016-02-05 18:10:40 -08:00
rndis.h
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h
rtc: Add functions to set and read rtc offset
2016-03-14 17:08:15 +01:00
rtmutex.h
rtnetlink.h
net, sched: add clsact qdisc
2016-01-10 22:13:15 -05:00
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
Power management and ACPI material for v4.6-rc1, part 1
2016-03-16 14:10:53 -07:00
sched_clock.h
time: Define dummy functions for the generic sched clock
2015-12-15 09:41:09 +01:00
scif.h
scpi_protocol.h
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
security: Add hook to invalidate inode security labels
2015-12-24 11:09:40 -05:00
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file.h
seq_file_net.h
seqlock.h
seqno-fence.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial: Fix UPIO_MEM comment
2015-12-13 19:59:48 -08:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial: sh-sci: Add BRG register definitions
2015-12-17 11:18:44 +01:00
serio.h
sfi.h
sfi_acpi.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_eth: remove EDMAC_BIG_ENDIAN
2016-01-04 16:11:11 -05:00
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
ipc/shm.c: is_file_shm_hugepages() can be boolean
2016-01-20 17:09:18 -08:00
shmem_fs.h
make sure that freeing shmem fast symlinks is RCU-delayed
2016-01-22 18:08:52 -05:00
shrinker.h
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h
mld, igmp: Fix reserved tailroom calculation
2016-03-03 15:41:07 -05:00
slab.h
slub: convert SLAB_DEBUG_FREE to SLAB_CONSISTENCY_CHECKS
2016-03-15 16:55:16 -07:00
slab_def.h
mm/slab: alternative implementation for DEBUG_SLAB_LEAK
2016-03-15 16:55:16 -07:00
slub_def.h
mm/slub: support left redzone
2016-03-15 16:55:16 -07:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
net: diag: Add the ability to destroy a socket.
2015-12-15 23:26:51 -05:00
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
srcu.h
rcu: Document unique-name limitation for DEFINE_STATIC_SRCU()
2016-02-23 19:59:55 -08:00
ssbi.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stm.h
stmmac.h
stmmac: Fix 'eth0: No PHY found' regression
2016-03-03 15:02:05 -05:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
Merge branch 'sched/urgent' into sched/core, to pick up fixes before merging new patches
2016-01-06 11:02:29 +01:00
string.h
new helper: memdup_user_nul()
2016-01-04 10:20:19 -05:00
string_helpers.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h
svga.h
sw842.h
swab.h
swait.h
wait.[ch]: Introduce the simple waitqueue (swait) implementation
2016-02-25 11:27:16 +01:00
swap.h
mm: free swap cache aggressively if memcg swap is full
2016-01-20 17:09:18 -08:00
swap_cgroup.h
swapfile.h
swapops.h
swiotlb.h
swiotlb: Make linux/swiotlb.h standalone includible
2016-01-20 17:29:52 -05:00
sxgbe_platform.h
synclink.h
sys.h
sys_soc.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.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
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
Thermal: do thermal zone update after a cooling device registered
2015-12-29 16:00:00 +08:00
thinkpad_acpi.h
thread_info.h
kmemcg: account certain kmem allocations to memcg
2016-01-14 16:00:49 -08:00
threads.h
ti_wilink_st.h
tick.h
posix-cpu-timers: Migrate to use new tick dependency mask model
2016-03-02 16:44:27 +01:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
time64.h
timecounter.h
timekeeper_internal.h
time: Add history to cross timestamp interface supporting slower devices
2016-03-02 17:13:17 -08:00
timekeeping.h
time: Add history to cross timestamp interface supporting slower devices
2016-03-02 17:13:17 -08:00
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
numa: remove stale node_has_online_mem() define
2016-01-18 14:49:33 -05:00
torture.h
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_events.h
tracepoints: move trace_print_flags definitions to tracepoint-defs.h
2016-03-15 16:55:16 -07:00
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoints: move trace_print_flags definitions to tracepoint-defs.h
2016-03-15 16:55:16 -07:00
tracepoint.h
tracing: Fix check for cpu online when event is disabled
2016-03-09 11:58:41 -05:00
transport_class.h
tsacct_kern.h
tty.h
tty: Wait interruptibly for tty lock on reopen
2016-01-26 23:17:54 -08:00
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
Add 'unsafe' user access functions for batched accesses
2015-12-17 09:57:27 -08:00
ucb1400.h
ucs2_string.h
lib/ucs2_string: Add ucs2 -> utf8 helper functions
2016-02-10 13:19:03 +00:00
udp.h
uidgid.h
uinput.h
Input: uinput - add new UINPUT_DEV_SETUP and UI_ABS_SETUP ioctl
2015-12-18 17:48:50 -08:00
uio.h
uio_driver.h
uprobes.h
usb.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
userfaultfd_k.h
util_macros.h
uts.h
utsname.h
uuid.h
uwb.h
verify_pefile.h
vermagic.h
vexpress.h
vfio.h
vfio: Include No-IOMMU mode
2015-12-21 15:28:11 -07:00
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio: make find_vqs() checkpatch.pl-friendly
2016-01-12 20:47:06 +02:00
virtio_console.h
virtio_mmio.h
virtio_ring.h
virtio_ring: use virt_store_mb
2016-01-12 20:47:02 +02:00
vlynq.h
vm_event_item.h
mm, compaction: introduce kcompactd
2016-03-17 15:09:34 -07:00
vm_sockets.h
vmacache.h
vmalloc.h
mm, vmalloc: remove VM_VPAGES
2016-01-14 16:00:49 -08:00
vme.h
vmpressure.h
mm: memcontrol: hook up vmpressure to socket pressure
2016-01-14 16:00:49 -08:00
vmstat.h
vmstat: make vmstat_updater deferrable again and shut down on idle
2016-01-14 16:00:49 -08:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
wait.h
sched/wait: Fix wait_event_freezable() documentation
2016-02-24 09:09:45 +01:00
wanrouter.h
watchdog.h
watchdog: Drop pointer to watchdog device from struct watchdog_device
2016-01-11 21:53:59 +01:00
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
workqueue.h
workqueue: skip flush dependency checks for legacy workqueues
2016-01-29 13:31:10 -05:00
writeback.h
writeback: flush inode cgroup wb switches instead of pinning super_block
2016-03-03 14:42:50 -07:00
ww_mutex.h
xattr.h
xattr handlers: Simplify list operation
2015-12-13 19:46:12 -05:00
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zutil.h