linux/include/linux
Soheil Hassas Yeganeh b75eba76d3 tcp: send in-queue bytes in cmsg upon read
Applications with many concurrent connections, high variance
in receive queue length and tight memory bounds cannot
allocate worst-case buffer size to drain sockets. Knowing
the size of receive queue length, applications can optimize
how they allocate buffers to read from the socket.

The number of bytes pending on the socket is directly
available through ioctl(FIONREAD/SIOCINQ) and can be
approximated using getsockopt(MEMINFO) (rmem_alloc includes
skb overheads in addition to application data). But, both of
these options add an extra syscall per recvmsg. Moreover,
ioctl(FIONREAD/SIOCINQ) takes the socket lock.

Add the TCP_INQ socket option to TCP. When this socket
option is set, recvmsg() relays the number of bytes available
on the socket for reading to the application via the
TCP_CM_INQ control message.

Calculate the number of bytes after releasing the socket lock
to include the processed backlog, if any. To avoid an extra
branch in the hot path of recvmsg() for this new control
message, move all cmsg processing inside an existing branch for
processing receive timestamps. Since the socket lock is not held
when calculating the size of receive queue, TCP_INQ is a hint.
For example, it can overestimate the queue size by one byte,
if FIN is received.

With this method, applications can start reading from the socket
using a small buffer, and then use larger buffers based on the
remaining data when needed.

V3 change-log:
	As suggested by David Miller, added loads with barrier
	to check whether we have multiple threads calling recvmsg
	in parallel. When that happens we lock the socket to
	calculate inq.
V4 change-log:
	Removed inline from a static function.

Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Neal Cardwell <ncardwell@google.com>
Suggested-by: David Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-05-01 18:56:29 -04:00
..
amba
avf
bcma
byteorder
can
ceph
clk The large diff this time around is from the addition of a new clk driver 2018-04-13 15:51:06 -07:00
crush
decompress
dma
dsa
extcon
firmware/meson
fpga
fsl
gpio
hsi
iio
input
irqchip
isdn
lockd
mailbox
mfd Changes to chrome-platform for v4.17 2018-04-13 16:20:36 -07:00
mlx4
mlx5 net/mlx5: Accel, Add TLS tx offload interface 2018-05-01 09:42:47 -04:00
mmc
mtd
mux
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl
platform_data Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-04-21 16:32:48 -04:00
power
qed qed: Add configuration information to register dump and debug data 2018-04-23 12:05:57 -04:00
raid powerpc updates for 4.17 2018-04-07 12:08:19 -07:00
regulator
remoteproc
reset
rpmsg
rtc
sched exec: pass stack rlimit into mm layout functions 2018-04-11 10:28:37 -07:00
soc soc: ti: K2G: provide APIs to support driver probe deferral 2018-04-18 21:00:56 -04:00
soundwire
spi
ssb
sunrpc NFS client updates for Linux 4.17 2018-04-12 12:55:50 -07:00
ulpi
unaligned
usb
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
acpi.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
apple-gmux.h
arch_topology.h
arm_sdei.h
arm-cci.h
arm-smccc.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h
atalk.h
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel_tc.h
atmel-mci.h
atmel-ssc.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h writeback: safer lock nesting 2018-04-20 17:18:35 -07:00
backing-dev.h writeback: safer lock nesting 2018-04-20 17:18:35 -07:00
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h exec: pin stack limit during exec 2018-04-11 10:28:37 -07:00
bio.h
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h
bitrev.h
blk_types.h
blk-cgroup.h
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h blk-mq: remove blk_mq_delay_queue() 2018-04-10 08:38:46 -06:00
blkdev.h
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf_trace.h
bpf_types.h
bpf_verifier.h
bpf-cgroup.h
bpf.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-04-25 23:04:22 -04:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf.h bpf: btf: Add BPF_OBJ_GET_INFO_BY_FD support to BTF fd 2018-04-19 21:46:25 +02:00
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build_bug.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h
cgroup.h
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
compaction.h
compat.h Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-04-15 16:12:35 -07:00
compiler_types.h
compiler-clang.h kasan: add no_sanitize attribute for clang builds 2018-04-20 17:18:35 -07:00
compiler-gcc.h task_struct: only use anon struct under randstruct plugin 2018-04-11 10:28:35 -07:00
compiler-intel.h
compiler.h
completion.h
component.h
concap.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
const.h linux/const.h: move UL() macro to include/linux/const.h 2018-04-11 10:28:38 -07:00
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h
coresight-pmu.h coresight: Move to SPDX identifier 2018-04-19 12:29:41 -03:00
coresight-stm.h
coresight.h
count_zeros.h
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h
cpufeature.h
cpufreq.h cpufreq: Drop cpufreq_table_validate_and_show() 2018-04-10 08:40:45 +02:00
cpuhotplug.h
cpuidle.h cpuidle: Return nohz hint from cpuidle_select() 2018-04-06 09:29:34 +02:00
cpumask.h
cpuset.h
crash_core.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc4.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
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dell-led.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h - DM core passthrough ioctl fix to retain reference to DM table, and 2018-04-06 11:50:19 -07:00
device.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm-bufio.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma_remapping.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence.h
dma-iommu.h
dma-mapping.h
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.h
ds2782_battery.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
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
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h
ethtool.h net: Allow network devices to have PHY statistics 2018-04-27 11:53:02 -04:00
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject.h mm: make should_failslab always available for fault injection 2018-04-05 21:36:26 -07:00
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h xdp: move struct xdp_buff from filter.h to xdp.h 2018-04-17 10:50:28 -04: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
frame.h
freezer.h
frontswap.h
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h Merge branch 'work.thaw' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-04-12 12:28:32 -07:00
fscache-cache.h fscache: Pass object size in rather than calling back for it 2018-04-06 14:05:14 +01:00
fscache.h fscache: Maintain a catalogue of allocated cookies 2018-04-06 14:05:14 +01:00
fscrypt_notsupp.h
fscrypt_supp.h
fscrypt.h
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h fsnotify: fix typo in a comment about mark->g_list 2018-04-13 15:54:13 +02:00
fsnotify.h
ftrace_irq.h
ftrace.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
glob.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.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: input: fix battery level reporting on BT mice 2018-04-09 09:26:12 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hmm.h mm/hmm: fix header file if/else/endif maze, again 2018-04-11 10:28:31 -07:00
host1x.h
hp_sdc.h
hpet.h
hrtimer.h Merge branches 'pm-cpuidle' and 'pm-qos' 2018-04-11 13:22:46 +02:00
htcpld.h
huge_mm.h
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h ARM: 2018-04-09 11:42:31 -07:00
hypervisor.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.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
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h for-4.17/block-20180402 2018-04-05 14:27:02 -07:00
idr.h xarray: add the xa_lock to the radix_tree_root 2018-04-11 10:28:39 -07:00
ieee80211.h
ieee802154.h
if_arp.h
if_bridge.h net: bridge: Publish bridge accessor functions 2018-04-30 12:42:40 -04:00
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h
if_ltalk.h
if_macvlan.h macvlan: Provide function for interfaces to release HW offload 2018-04-25 08:26:19 -07:00
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_tap.h
if_team.h
if_tun.h tun: convert to use generic xdp_frame and xdp_return_frame API 2018-04-17 10:50:28 -04:00
if_tunnel.h
if_vlan.h vlan: Fix reading memory beyond skb->tail in skb_vlan_tagged_multi 2018-04-17 13:59:28 -04:00
igmp.h
ihex.h
ima.h
imx-media.h
in.h
in6.h
inet_diag.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-pti.h
intel-svm.h
interrupt.h
interval_tree_generic.h
interval_tree.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iomap.h
iommu-common.h
iommu-helper.h
iommu.h
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h
irq.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqhandler.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
iversion.h
jbd2.h
jhash.h
jiffies.h jiffies: Introduce USER_TICK_USEC and redefine TICK_USEC 2018-04-06 09:28:50 +02:00
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h kasan: make kasan_cache_create() work with 32-bit slab cache sizes 2018-04-05 21:36:24 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h taint: add taint for randstruct 2018-04-11 10:28:35 -07:00
kernelcapi.h
kernfs.h
kexec.h kernel/kexec_file.c: allow archs to set purgatory load address 2018-04-13 17:10:28 -07:00
key-type.h
key.h
keyboard.h
kfifo.h include/linux/kfifo.h: fix comment 2018-04-11 10:28:38 -07:00
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
libata.h
libfdt_env.h
libfdt.h
libgcc.h
libnvdimm.h libnvdimm: Add of_node to region and bus descriptors 2018-04-07 07:53:23 -07:00
libps2.h
license.h
lightnvm.h
linkage.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h mm: make counting of list_lru_one::nr_items lockless 2018-04-05 21:36:27 -07:00
list_nulls.h
list_sort.h
list.h
livepatch.h livepatch: Allow to call a custom callback when freeing shadow variables 2018-04-17 13:42:48 +02:00
llc.h
llist.h
lockdep.h
lockref.h lockref: Add lockref_put_not_zero 2018-04-12 09:41:19 -07:00
log2.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2018-04-07 16:53:59 -07:00
lz4.h
lzo.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
mdev.h
mdio-bitbang.h net: phy: mdio-bitbang: Remove reset support 2018-04-19 15:59:10 -04:00
mdio-gpio.h net: phy: mdio-gpio: Add #defines for the GPIO index's 2018-04-19 15:59:11 -04:00
mdio-mux.h
mdio.h
mei_cl_bus.h
mem_encrypt.h
memblock.h powerpc updates for 4.17 2018-04-07 12:08:19 -07:00
memcontrol.h mm: memcg: make sure memory.events is uptodate when waking pollers 2018-04-11 10:28:31 -07:00
memory_hotplug.h mm/cma: manage the memory of the CMA area by using the ZONE_MOVABLE 2018-04-11 10:28:32 -07:00
memory.h mm/memory_hotplug: optimize memory hotplug 2018-04-05 21:36:25 -07:00
mempolicy.h
mempool.h
memremap.h
memstick.h
mic_bus.h
micrel_phy.h
microchipphy.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-04-21 16:32:48 -04:00
migrate_mode.h
migrate.h mm: unclutter THP migration 2018-04-11 10:28:32 -07:00
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types_task.h
mm_types.h mm: change return type to vm_fault_t 2018-04-05 21:36:27 -07:00
mm-arch-hooks.h
mm.h page cache: use xa_lock 2018-04-11 10:28:39 -07:00
mman.h
mmdebug.h include/linux/mmdebug.h: make VM_WARN* non-rvals 2018-04-05 21:36:27 -07:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm/page_alloc: don't reserve ZONE_HIGHMEM for ZONE_MOVABLE request 2018-04-11 10:28:32 -07:00
mnt_namespace.h
mod_devicetable.h firmware: dmi_scan: Add DMI_OEM_STRING support to dmi_matches 2018-04-13 15:37:59 +02:00
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute_base.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
net_dim.h net/dim: Support adaptive TX moderation 2018-04-24 10:15:07 -04:00
net.h tcp: fix SO_RCVLOWAT and RCVBUF autotuning 2018-04-16 18:26:37 -04:00
netdev_features.h net: Add TLS TX offload features 2018-05-01 09:42:47 -04:00
netdevice.h net: core: Inline netdev_features_size_check() 2018-05-01 14:24:19 -04:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h
netpoll.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS: More fine grained attribute tracking 2018-04-10 16:06:22 -04:00
nfs_iostat.h
nfs_page.h
nfs_xdr.h NFS: Remove the unused return_delegation() callback 2018-04-10 16:06:22 -04:00
nfs.h
nfs3.h
nfs4.h
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h mm/memory_hotplug: don't read nid from struct page during hotplug 2018-04-05 21:36:25 -07:00
nodemask.h
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme.h
nvmem-consumer.h
nvmem-provider.h
nvram.h
of_address.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h
oid_registry.h
olpc-ec.h
omap-dma.h
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_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h mm/page_ref: use atomic_set_release in page_ref_unfreeze 2018-04-05 21:36:25 -07:00
page-flags-layout.h
page-flags.h mm: uninitialized struct page poisoning sanity checking 2018-04-05 21:36:25 -07:00
page-isolation.h mm, migrate: remove reason argument from new_page_t 2018-04-11 10:28:32 -07:00
pageblock-flags.h
pagemap.h page cache: use xa_lock 2018-04-11 10:28:39 -07:00
pagevec.h
parman.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 pci-v4.17-changes 2018-04-06 18:31:06 -07:00
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma-compat.h
pci-dma.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci.h pci-v4.17-changes 2018-04-06 18:31:06 -07:00
pda_power.h
pe.h
percpu_counter.h
percpu_ida.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h
perf_regs.h
personality.h
pfn_t.h
pfn.h
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h net: phy: Fix modular PHYLIB build 2018-04-28 16:48:04 -04:00
phylink.h
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pm-trace.h
pm.h
pm2301_charger.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h
pr.h
preempt.h
prefetch.h
prime_numbers.h
printk.h
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h
psci.h
psp-sev.h
pstore_ram.h
pstore.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h xarray: add the xa_lock to the radix_tree_root 2018-04-11 10:28:39 -07:00
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate_wait.h
rcupdate.h
rcutiny.h
rcutree.h
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource_ext.h
resource.h
restart_block.h
rfkill.h
rhashtable.h rhashtable: Revise incorrect comment on r{hl, hash}table_walk_enter() 2018-04-24 13:21:45 -04:00
ring_buffer.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h
s3c_adc_battery.h
sa11x0-dma.h
sbitmap.h
scatterlist.h for-4.17/block-20180402 2018-04-05 14:27:02 -07:00
scc.h
sched_clock.h
sched.h
scif.h
scmi_protocol.h
scpi_protocol.h
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2018-04-07 16:53:59 -07:00
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h seq_file: allocate seq_file from kmem_cache 2018-04-11 10:28:36 -07:00
seqlock.h
seqno-fence.h
serdev.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
set_memory.h
sfi_acpi.h
sfi.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
sha256.h kernel/kexec_file.c: move purgatories sha256 to common code 2018-04-13 17:10:28 -07:00
shdma-base.h
shm.h
shmem_fs.h
shrinker.h mm,vmscan: Allow preallocating memory for register_shrinker(). 2018-04-16 02:06:47 -04:00
signal_types.h
signal.h
signalfd.h
siox.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h net: Rename and export copy_skb_header 2018-05-01 09:42:46 -04:00
slab_def.h slab: make usercopy region 32-bit 2018-04-05 21:36:24 -07:00
slab.h headers: untangle kmemleak.h from mm.h 2018-04-05 21:36:27 -07:00
slimbus.h
slub_def.h slub: make struct kmem_cache_order_objects::x unsigned int 2018-04-05 21:36:24 -07:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h Revert "net: init sk_cookie for inet socket" 2018-04-24 11:15:32 -04:00
socket.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
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.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
stmp_device.h
stmp3xxx_rtc_wdt.h
stop_machine.h
string_helpers.h
string.h
stringhash.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
swap_cgroup.h
swap_slots.h
swap.h mm: swap: unify cluster-based and vma-based swap readahead 2018-04-05 21:36:25 -07:00
swapfile.h
swapops.h
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscalls.h syscalls/core, syscalls/x86: Clean up syscall stub naming convention 2018-04-09 16:47:27 +02:00
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h tcp: send in-queue bytes in cmsg upon read 2018-05-01 18:56:29 -04:00
tee_drv.h
textsearch_fsm.h
textsearch.h textsearch: fix kernel-doc warnings and add kernel-api section 2018-04-16 18:53:13 -04:00
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h fork: unconditionally clear stack on fork 2018-04-20 17:18:35 -07:00
threads.h
thunderbolt.h
ti_wilink_st.h
ti-emif-sram.h
tick.h cpuidle: menu: Refine idle state selection for running tick 2018-04-09 11:54:56 +02:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
time32.h
time64.h
timecounter.h
timekeeper_internal.h
timekeeping.h * Fix 2032 time access issues and new compiler warnings 2018-04-12 10:21:19 -07:00
timekeeping32.h timekeeping: Remove __current_kernel_time() 2018-04-17 17:18:05 +02:00
timer.h timers: Remove stale struct tvec_base forward declaration 2018-04-17 17:18:04 +02:00
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm_eventlog.h
tpm.h
trace_clock.h
trace_events.h New features: 2018-04-10 11:27:30 -07:00
trace_seq.h
trace.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h udp: generate gso with UDP_SEGMENT 2018-04-26 15:08:04 -04:00
uidgid.h
uio_driver.h
uio.h
umh.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h
util_macros.h
uts.h
utsname.h uts: create "struct uts_namespace" from kmem_cache 2018-04-11 10:28:35 -07:00
uuid.h
uwb.h
vbox_utils.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_net.h
virtio_ring.h
virtio_vsock.h
virtio.h
visorbus.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h mm, vmscan, tracing: use pointer to reclaim_stat struct in trace event 2018-04-11 10:28:30 -07:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
w1.h
wait_bit.h
wait.h
wanrouter.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h
writeback.h
ww_mutex.h
xarray.h xarray: add the xa_lock to the radix_tree_root 2018-04-11 10:28:39 -07:00
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h zsmalloc: introduce zs_huge_class_size() 2018-04-05 21:36:26 -07:00
zstd.h
zutil.h