android_kernel_msm-6.1_noth.../include/uapi/linux
Colin Cross 9a10064f56 mm: add a field to store names for private anonymous memory
In many userspace applications, and especially in VM based applications
like Android uses heavily, there are multiple different allocators in
use.  At a minimum there is libc malloc and the stack, and in many cases
there are libc malloc, the stack, direct syscalls to mmap anonymous
memory, and multiple VM heaps (one for small objects, one for big
objects, etc.).  Each of these layers usually has its own tools to
inspect its usage; malloc by compiling a debug version, the VM through
heap inspection tools, and for direct syscalls there is usually no way
to track them.

On Android we heavily use a set of tools that use an extended version of
the logic covered in Documentation/vm/pagemap.txt to walk all pages
mapped in userspace and slice their usage by process, shared (COW) vs.
unique mappings, backing, etc.  This can account for real physical
memory usage even in cases like fork without exec (which Android uses
heavily to share as many private COW pages as possible between
processes), Kernel SamePage Merging, and clean zero pages.  It produces
a measurement of the pages that only exist in that process (USS, for
unique), and a measurement of the physical memory usage of that process
with the cost of shared pages being evenly split between processes that
share them (PSS).

If all anonymous memory is indistinguishable then figuring out the real
physical memory usage (PSS) of each heap requires either a pagemap
walking tool that can understand the heap debugging of every layer, or
for every layer's heap debugging tools to implement the pagemap walking
logic, in which case it is hard to get a consistent view of memory
across the whole system.

Tracking the information in userspace leads to all sorts of problems.
It either needs to be stored inside the process, which means every
process has to have an API to export its current heap information upon
request, or it has to be stored externally in a filesystem that somebody
needs to clean up on crashes.  It needs to be readable while the process
is still running, so it has to have some sort of synchronization with
every layer of userspace.  Efficiently tracking the ranges requires
reimplementing something like the kernel vma trees, and linking to it
from every layer of userspace.  It requires more memory, more syscalls,
more runtime cost, and more complexity to separately track regions that
the kernel is already tracking.

This patch adds a field to /proc/pid/maps and /proc/pid/smaps to show a
userspace-provided name for anonymous vmas.  The names of named
anonymous vmas are shown in /proc/pid/maps and /proc/pid/smaps as
[anon:<name>].

Userspace can set the name for a region of memory by calling

   prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name)

Setting the name to NULL clears it.  The name length limit is 80 bytes
including NUL-terminator and is checked to contain only printable ascii
characters (including space), except '[',']','\','$' and '`'.

Ascii strings are being used to have a descriptive identifiers for vmas,
which can be understood by the users reading /proc/pid/maps or
/proc/pid/smaps.  Names can be standardized for a given system and they
can include some variable parts such as the name of the allocator or a
library, tid of the thread using it, etc.

The name is stored in a pointer in the shared union in vm_area_struct
that points to a null terminated string.  Anonymous vmas with the same
name (equivalent strings) and are otherwise mergeable will be merged.
The name pointers are not shared between vmas even if they contain the
same name.  The name pointer is stored in a union with fields that are
only used on file-backed mappings, so it does not increase memory usage.

CONFIG_ANON_VMA_NAME kernel configuration is introduced to enable this
feature.  It keeps the feature disabled by default to prevent any
additional memory overhead and to avoid confusing procfs parsers on
systems which are not ready to support named anonymous vmas.

The patch is based on the original patch developed by Colin Cross, more
specifically on its latest version [1] posted upstream by Sumit Semwal.
It used a userspace pointer to store vma names.  In that design, name
pointers could be shared between vmas.  However during the last
upstreaming attempt, Kees Cook raised concerns [2] about this approach
and suggested to copy the name into kernel memory space, perform
validity checks [3] and store as a string referenced from
vm_area_struct.

One big concern is about fork() performance which would need to strdup
anonymous vma names.  Dave Hansen suggested experimenting with
worst-case scenario of forking a process with 64k vmas having longest
possible names [4].  I ran this experiment on an ARM64 Android device
and recorded a worst-case regression of almost 40% when forking such a
process.

This regression is addressed in the followup patch which replaces the
pointer to a name with a refcounted structure that allows sharing the
name pointer between vmas of the same name.  Instead of duplicating the
string during fork() or when splitting a vma it increments the refcount.

[1] https://lore.kernel.org/linux-mm/20200901161459.11772-4-sumit.semwal@linaro.org/
[2] https://lore.kernel.org/linux-mm/202009031031.D32EF57ED@keescook/
[3] https://lore.kernel.org/linux-mm/202009031022.3834F692@keescook/
[4] https://lore.kernel.org/linux-mm/5d0358ab-8c47-2f5f-8e43-23b89d6a8e95@intel.com/

Changes for prctl(2) manual page (in the options section):

PR_SET_VMA
	Sets an attribute specified in arg2 for virtual memory areas
	starting from the address specified in arg3 and spanning the
	size specified	in arg4. arg5 specifies the value of the attribute
	to be set. Note that assigning an attribute to a virtual memory
	area might prevent it from being merged with adjacent virtual
	memory areas due to the difference in that attribute's value.

	Currently, arg2 must be one of:

	PR_SET_VMA_ANON_NAME
		Set a name for anonymous virtual memory areas. arg5 should
		be a pointer to a null-terminated string containing the
		name. The name length including null byte cannot exceed
		80 bytes. If arg5 is NULL, the name of the appropriate
		anonymous virtual memory areas will be reset. The name
		can contain only printable ascii characters (including
                space), except '[',']','\','$' and '`'.

                This feature is available only if the kernel is built with
                the CONFIG_ANON_VMA_NAME option enabled.

[surenb@google.com: docs: proc.rst: /proc/PID/maps: fix malformed table]
  Link: https://lkml.kernel.org/r/20211123185928.2513763-1-surenb@google.com
[surenb: rebased over v5.15-rc6, replaced userpointer with a kernel copy,
 added input sanitization and CONFIG_ANON_VMA_NAME config. The bulk of the
 work here was done by Colin Cross, therefore, with his permission, keeping
 him as the author]

Link: https://lkml.kernel.org/r/20211019215511.3771969-2-surenb@google.com
Signed-off-by: Colin Cross <ccross@google.com>
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: David Rientjes <rientjes@google.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jan Glauber <jan.glauber@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rob Landley <rob@landley.net>
Cc: "Serge E. Hallyn" <serge.hallyn@ubuntu.com>
Cc: Shaohua Li <shli@fusionio.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2022-01-15 16:30:27 +02:00
..
android binder: fix freeze race 2021-09-14 08:46:08 +02:00
byteorder uapi: Fix undefined __always_inline on non-glibc systems 2021-12-21 15:09:46 -08:00
caif
can can: netlink: add interface for CAN-FD Transmitter Delay Compensation (TDC) 2021-10-24 16:24:29 +02:00
cifs cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
dvb Revert "media: dvb header files: move some headers to staging" 2021-08-23 09:49:09 -07:00
genwqe
hdlc
hsi
iio iio: buffer: add ioctl() to support opening extra buffers for IIO device 2021-03-11 20:47:05 +00:00
isdn
misc bcm-vk: add bcm_vk UAPI 2021-01-25 18:44:44 +01:00
mmc
netfilter netfilter: nft_payload: support for inner header matching / mangling 2021-11-01 09:31:03 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd NFSD: move filehandle format declarations out of "uapi". 2021-10-02 15:50:45 -04:00
raid
sched sched/uclamp: Allow to reset a task uclamp constraint value 2020-11-19 11:25:47 +01:00
spi spi: Add SPI_NO_TX/RX support 2020-12-28 14:21:31 +00:00
sunrpc
surface_aggregator platform/surface: aggregator_cdev: Allow enabling of events from user-space 2021-06-16 17:47:53 +02:00
tc_act net/sched: act_skbmod: Add SKBMOD_F_ECN option support 2021-07-28 13:19:31 +01:00
tc_ematch
usb usb: webcam: Invalid size of Processing Unit Descriptor 2021-03-18 09:02:27 +01:00
a.out.h
acct.h
acrn.h virt: acrn: Introduce interfaces for virtual device creating/destroying 2021-10-05 16:14:10 +02:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
amt.h amt: add control plane of amt interface 2021-11-01 13:36:08 +00:00
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h - Add DM core support for emitting audit events through the audit 2021-11-09 11:02:04 -08:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h uapi/auxvec: Define the aux vector AT_MINSIGSTKSZ 2021-05-19 11:40:15 +02:00
ax25.h
batadv_packet.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
batman_adv.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
baycom.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h binfmt_misc: pass binfmt_misc flags to the interpreter 2021-02-15 18:28:30 +01:00
blkpg.h block: update a few comments in uapi/linux/blkpg.h 2021-04-02 11:18:30 -06:00
blktrace_api.h
blkzoned.h
bpf.h bpf: Add alignment padding for "map_extra" + consolidate holes 2021-11-01 14:16:03 -07:00
bpf_common.h
bpf_perf_event.h
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: Rename BTF_KIND_TAG to BTF_KIND_DECL_TAG 2021-10-18 18:35:36 -07:00
btrfs.h btrfs: send: prepare for v2 protocol 2021-10-29 12:38:43 +02:00
btrfs_tree.h btrfs: initial fsverity support 2021-08-23 13:19:09 +02:00
can.h can: uapi: introduce CANFD_FDF flag for mixed content in struct canfd_frame 2021-05-27 09:42:21 +02:00
capability.h exit/bdflush: Remove the deprecated bdflush system call 2021-07-12 15:17:47 -05:00
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h media: v4l: uapi: ccs: Add CCS controls for shading correction 2021-01-12 17:31:14 +01:00
cdrom.h drivers/cdrom: improved ioctl for media change detection 2021-09-14 20:05:26 -06:00
cec-funcs.h media: uapi/linux/cec-funcs.h: set delay to 1 if unnused 2021-06-02 14:08:09 +02:00
cec.h media: include/uapi/linux/cec.h: typo: SATERDAY -> SATURDAY 2021-07-12 09:16:29 +02:00
cfm_bridge.h bridge: cfm: Kernel space implementation of CFM. CCM frame RX added. 2020-10-29 18:39:43 -07:00
cgroupstats.h
chio.h
close_range.h fs, close_range: add flag CLOSE_RANGE_CLOEXEC 2020-12-04 12:06:15 +01:00
cm4000_cs.h
cn_proc.h
coda.h
coff.h
connector.h
const.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
coresight-stm.h
counter.h counter: Add character device interface 2021-10-17 10:53:52 +01:00
cramfs_fs.h
cryptouser.h
cuda.h
cxl_mem.h cxl/uapi: Fix defined but not used warnings 2021-09-07 11:39:01 -07:00
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: report maximum number of snapshots with regions 2021-10-01 14:28:55 +01:00
dlm.h
dlm_device.h treewide: Replace 0-element memcpy() destinations with flexible arrays 2021-10-18 12:28:53 -07:00
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm ima: measure data on table load 2021-08-10 13:32:40 -04:00
dm-log-userspace.h
dma-buf.h dma-buf: Document DMA_BUF_IOCTL_SYNC (v3) 2021-06-17 21:46:37 +02:00
dma-heap.h
dn.h
dns_resolver.h
dqblk_xfs.h quota: report warning limits for realtime space quotas 2021-03-18 17:03:54 +01:00
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h arm64: Introduce prctl(PR_PAC_{SET,GET}_ENABLED_KEYS) 2021-04-13 17:31:44 +01:00
errno.h
errqueue.h
erspan.h
ethtool.h ethtool: Add transceiver module extended state 2021-10-06 17:47:50 -07:00
ethtool_netlink.h ethtool: fix ethtool msg len calculation for pause stats 2021-11-03 11:20:45 +00:00
eventpoll.h
f2fs.h f2fs: add F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE 2020-12-03 00:12:08 -08:00
fadvise.h
falloc.h
fanotify.h fanotify: Emit generic error info for error event 2021-10-27 12:53:42 +02:00
fb.h
fcntl.h
fd.h floppy: cleanups: remove trailing whitespaces 2021-04-20 08:59:03 -06:00
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
firewire-constants.h
fou.h
fpga-dfl.h
fs.h block: add ioctl to read the disk sequence number 2021-08-02 13:37:28 -06:00
fscrypt.h fscrypt: remove kernel-internal constants from UAPI header 2020-11-16 11:41:12 -08:00
fsi.h
fsl_hypervisor.h
fsl_mc.h bus: fsl-mc: add fsl-mc userspace support 2021-01-27 15:13:52 +01:00
fsmap.h
fsverity.h fs-verity: support reading signature with ioctl 2021-02-07 14:51:19 -08:00
fuse.h fuse: add FOPEN_NOFLUSH 2021-10-28 10:20:31 +02:00
futex.h futex: Implement sys_futex_waitv() 2021-10-07 13:51:11 +02:00
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h gfs2: Add trusted xattr support 2021-02-08 13:01:24 +01:00
gpio.h gpio: uapi: use the preferred SPDX license identifier 2021-02-15 11:43:33 +01:00
gsmmux.h
gtp.h Revert "GTP: add support for flow based tunneling API" 2021-02-04 09:29:57 -08:00
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h HID: hidraw: Add additional hidraw input/output report ioctls. 2020-11-27 15:48:31 +01:00
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h hyper-v: Replace uuid.h with types.h 2021-10-06 12:05:51 +00:00
i2c-dev.h i2c: remove licence boilerplate from i2c-dev UAPI header 2021-01-22 09:58:57 +01:00
i2c.h i2c: uapi: add macro to describe support for all SMBus transfers 2021-01-22 09:59:00 +01:00
i2o-dev.h
i8k.h
icmp.h icmp: fix lib conflict with trinity 2021-06-03 15:31:34 -07:00
icmpv6.h ICMPV6: add support for RFC 8335 PROBE 2021-03-30 13:29:39 -07:00
idxd.h dmaengine: idxd: fix setting up priv mode for dwq 2021-08-29 19:14:20 +05:30
if.h
if_addr.h
if_addrlabel.h
if_alg.h crypto: af_alg - avoid undefined behavior accessing salg_name 2020-11-06 14:29:11 +11:00
if_arcnet.h
if_arp.h mctp: Add initial driver infrastructure 2021-07-29 15:06:50 +01:00
if_bonding.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
if_bridge.h net: bridge: vlan: convert mcast router global option to per-vlan entry 2021-08-20 15:00:35 +01:00
if_cablemodem.h
if_eql.h
if_ether.h Fix Comment of ETH_P_802_3_MIN 2021-12-02 12:07:04 +00:00
if_fc.h
if_fddi.h FDDI: if_fddi.h: Update my e-mail address 2021-03-10 12:45:16 -08:00
if_hippi.h
if_infiniband.h
if_link.h ipv6: add IFLA_INET6_RA_MTU to expose mtu value 2021-08-27 17:29:18 -07:00
if_ltalk.h
if_macsec.h
if_packet.h net/packet: make packet_fanout.arr size configurable up to 64K 2020-11-09 16:41:40 -08:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h
if_tunnel.h Revert "GTP: add support for flow based tunneling API" 2021-02-04 09:29:57 -08:00
if_vlan.h
if_x25.h
if_xdp.h
ife.h
igmp.h
ila.h
in.h net/ipv4/ipv6: Replace one-element arraya with flexible-array members 2021-08-05 11:46:42 +01:00
in6.h ipv6: ioam: Data plane support for Pre-allocated Trace 2021-07-21 08:14:33 -07:00
in_route.h
inet_diag.h
inotify.h
input-event-codes.h HID: hid-input: add mapping for emoji picker key 2021-05-05 14:31:05 +02:00
input.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
io_uring.h io_uring: add flag to not fail link after timeout 2021-10-19 05:49:54 -06:00
ioam6.h ipv6: ioam: Support for IOAM injection with lwtunnels 2021-07-21 08:14:33 -07:00
ioam6_genl.h ipv6: ioam: IOAM Generic Netlink API 2021-07-21 08:14:33 -07:00
ioam6_iptunnel.h ipv6: ioam: Add support for the ip6ip6 encapsulation 2021-10-04 12:53:35 +01:00
ioctl.h
iommu.h iommu/vt-d: Enable write protect propagation from guest 2021-03-18 11:42:46 +01:00
ioprio.h block: fix default IO priority handling 2021-08-18 07:23:15 -06:00
ip.h net: arp: introduce arp_evict_nocarrier sysctl parameter 2021-11-01 19:57:14 -07:00
ip6_tunnel.h
ip_vs.h
ipc.h
ipmi.h ipmi: Add support for IPMB direct messages 2021-10-05 06:54:16 -05:00
ipmi_bmc.h
ipmi_msgdefs.h
ipsec.h
ipv6.h net: ndisc: introduce ndisc_evict_nocarrier sysctl parameter 2021-11-01 19:57:14 -07:00
ipv6_route.h
irqnr.h
iso_fs.h
isst_if.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
kcm.h
kcmp.h
kcov.h
kd.h console: Delete unused con_font_copy() callback implementations 2020-11-16 16:27:03 +01:00
kdev_t.h
kernel-page-flags.h
kernel.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
kernelcapi.h
kexec.h RISC-V: Add EM_RISCV to kexec UAPI header 2021-04-26 08:25:20 -07:00
keyboard.h vt: keyboard, sort key types by their number 2020-11-04 16:43:38 +01:00
keyctl.h
kfd_ioctl.h drm/amdkfd: Allow querying SVM attributes that are clear 2021-08-06 16:12:32 -04:00
kvm.h KVM: SEV: Add support for SEV intra host migration 2021-11-11 10:35:27 -05:00
kvm_para.h KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall 2021-06-17 14:25:39 -04:00
l2tp.h net: l2tp: reduce log level of messages in receive path, add counter instead 2021-03-03 16:55:02 -08:00
landlock.h landlock: Enable user space to infer supported features 2021-04-22 12:22:11 -07:00
libc-compat.h
limits.h
lirc.h media: lirc: remove out of date comment 2021-05-21 15:03:50 +02:00
llc.h
loop.h
lp.h
lwtunnel.h ipv6: ioam: Support for IOAM injection with lwtunnels 2021-07-21 08:14:33 -07:00
magic.h mm: introduce memfd_secret system call to create "secret" memory areas 2021-07-08 11:48:21 -07:00
major.h tty: cyclades, remove this orphan 2021-03-10 09:34:06 +01:00
map_to_7segment.h uapi: map_to_7segment: Remove licence boilerplate 2021-03-24 08:26:29 +01:00
map_to_14segment.h uapi: Add <linux/map_to_14segment.h> 2021-10-21 23:36:28 +02:00
matroxfb.h
max2175.h
mctp.h mctp: Implement extended addressing 2021-10-26 14:58:45 +01:00
mdio.h net: phy: add constants for fast retrain related register 2021-10-25 14:04:18 +01:00
media-bus-format.h media updates for v5.11-rc1 2020-12-14 11:47:37 -08:00
media.h media: uapi: Add an entity type for Image Signal Processors 2021-01-12 17:05:37 +01:00
mei.h
membarrier.h
memfd.h
mempolicy.h mm/mempolicy: add MPOL_PREFERRED_MANY for multiple preferred nodes 2021-09-03 09:58:17 -07:00
meye.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mount.h move_mount: allow to add a mount into an existing group 2021-07-26 14:45:18 +02:00
mpls.h
mpls_iptunnel.h
mptcp.h mptcp: add missing documented NL params 2021-12-14 18:49:40 -08:00
mqueue.h
mroute.h
mroute6.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
mrp_bridge.h net: mrp: move struct definitions out of uapi 2021-01-23 12:38:42 -08:00
msdos_fs.h
msg.h
mtio.h
nbd-netlink.h nbd: provide a way for userspace processes to identify device backends 2021-06-30 15:34:04 -06:00
nbd.h
ncsi.h
ndctl.h
neighbour.h net, neigh: Add NTF_MANAGED flag for managed neighbor entries 2021-10-12 11:27:47 +01:00
net.h Revert "net: add pf_family_names[] for protocol family" 2021-06-18 13:02:45 -07:00
net_dropmon.h
net_namespace.h
net_tstamp.h net: sock: extend SO_TIMESTAMPING for PHC binding 2021-07-01 13:08:18 -07:00
netconf.h
netdevice.h
netfilter.h netfilter: Introduce egress hook 2021-10-14 23:06:28 +02:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h netlink: simplify NLMSG_DATA with NLMSG_HDRLEN 2021-06-10 12:51:33 -07:00
netlink_diag.h
netrom.h
nexthop.h nexthop: Add netlink defines and enumerators for resilient NH groups 2021-03-11 16:12:59 -08:00
nfc.h nfc: uapi: use kernel size_t to fix user-space builds 2021-12-27 14:58:37 +00:00
nfs.h
nfs2.h
nfs3.h NFSD: Update the SETATTR3args decoder to use struct xdr_stream 2021-01-25 09:36:25 -05:00
nfs4.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h nitro_enclaves: Add fixes for checkpatch spell check reports 2021-09-14 11:11:20 +02:00
nl80211-vnd-intel.h nl80211: vendor-cmd: intel: add more details for IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP 2021-10-21 17:25:17 +02:00
nl80211.h cfg80211: fix kernel-doc for MBSSID EMA 2021-10-21 17:34:10 +02:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h fs: expose LOOKUP_CACHED through openat2() RESOLVE_CACHED 2021-01-04 11:42:26 -05:00
openvswitch.h openvswitch: fix alignment issues 2021-07-27 11:48:42 +01:00
packet_diag.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros 2021-10-07 14:23:31 +01:00
pcitest.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
perf_event.h perf: Add mem_hops field in perf_mem_data_src structure 2021-10-19 17:27:00 +02:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pidfd.h
pkt_cls.h net_sched: refactor TC action init API 2021-08-02 10:24:38 +01:00
pkt_sched.h fq_codel: generalise ce_threshold marking for subset of traffic 2021-10-20 15:24:36 -07:00
pktcdvd.h
pmu.h
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h ppp: Fix PPPIOCUNBRIDGECHAN request number 2020-12-21 17:36:48 -08:00
ppp_defs.h
pps.h
pr.h
prctl.h mm: add a field to store names for private anonymous memory 2022-01-15 16:30:27 +02:00
psample.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-03-25 15:31:22 -07:00
psci.h
psp-sev.h
ptp_clock.h
ptrace.h rseq, ptrace: Add PTRACE_GET_RSEQ_CONFIGURATION request 2021-03-17 16:15:39 +01:00
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
remoteproc_cdev.h
resource.h Increase default MLOCK_LIMIT to 8 MiB 2021-12-10 17:10:55 -08:00
rfkill.h rfkill: revert back to old userspace API by default 2021-04-08 10:14:45 +02:00
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h media: rkisp1: uapi: document which flags/structs relate to statistics config 2021-04-06 10:29:56 +02:00
romfs_fs.h
rose.h
route.h
rpl.h uapi: fix big endian definition of ipv6_rpl_sr_hdr 2021-01-25 15:14:16 -08:00
rpl_iptunnel.h
rpmsg.h rpmsg: Add short description of the IOCTL defined in UAPI. 2021-03-17 14:16:26 -05:00
rpmsg_types.h rpmsg: Introduce __rpmsg{16|32|64} types 2020-11-24 10:10:59 -06:00
rseq.h
rtc.h rtc: add BSM parameter 2021-10-18 17:20:50 +02:00
rtnetlink.h Add Open Routing Protocol ID to rtnetlink.h 2021-03-24 16:31:23 -07:00
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h sctp: add SCTP_PLPMTUD_PROBE_INTERVAL sockopt for sock/asoc/transport 2021-06-22 11:28:51 -07:00
seccomp.h seccomp: Support atomic "addfd + send reply" 2021-06-28 12:49:52 -07:00
securebits.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h seg6: add support for SRv6 End.DT46 Behavior 2021-06-18 11:35:47 -07:00
selinux_netlink.h
sem.h
serial.h tty: cyclades, remove this orphan 2021-03-10 09:34:06 +01:00
serial_core.h tty: serial: Drop unused efm32 serial driver 2021-01-15 17:14:49 +01:00
serial_reg.h serial: 8250: Define RX trigger levels for OxSemi 950 devices 2021-07-27 12:05:46 +02:00
serio.h
shm.h
signal.h
signalfd.h signalfd: Remove SIL_PERF_EVENT fields from signalfd_siginfo 2021-05-18 16:20:54 -05:00
smc.h net/smc: add netlink support for SMC-Rv2 2021-10-16 14:58:13 +01:00
smc_diag.h
smiapp.h
snmp.h tcp: Add stats for socket migration. 2021-06-23 12:56:08 -07:00
sock_diag.h
socket.h sock: allow reading and changing sk_userlocks with setsockopt 2021-08-04 12:52:03 +01:00
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h uapi: fix statx attribute value overlap for DAX & MOUNT_ROOT 2020-12-03 10:03:14 -08:00
stddef.h stddef: Introduce DECLARE_FLEX_ARRAY() helper 2021-10-18 12:28:52 -07:00
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h net: arp: introduce arp_evict_nocarrier sysctl parameter 2021-11-01 19:57:14 -07:00
sysinfo.h
target_core_user.h scsi: target: tcmu: Add new feature KEEP_BUF 2021-08-03 07:27:42 -04:00
taskstats.h
tcp.h tcp: Sanitize CMSG flags and reserved args in tcp_zerocopy_receive. 2021-02-11 18:25:05 -08:00
tcp_metrics.h
tee.h tee: fix some comment typos in header files 2021-02-02 14:50:15 +01:00
termios.h tty: drop termiox user definitions 2021-01-07 16:17:32 +01:00
thermal.h thermal: Fix spelling mistake "disabed" -> "disabled" 2021-03-11 12:13:08 +01:00
time.h
time_types.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tls.h net/tls: support SM4 GCM/CCM algorithm 2021-09-16 14:36:26 +01:00
toshiba.h
tty.h
tty_flags.h tty: add ASYNC_SPLIT_TERMIOS to deprecation mask 2021-04-10 10:36:34 +02:00
types.h
udf_fs_i.h
udmabuf.h
udp.h
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
um_timetravel.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h userfaultfd/shmem: advertise shmem minor fault support 2021-06-30 20:47:27 -07:00
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h media: vpbe_osd.h/uvcvideo.h includes: fix trivial kernel-doc warnings 2021-03-22 10:24:07 +01:00
v4l2-common.h
v4l2-controls.h media: allegro: add control to disable encoder buffer 2021-10-20 15:56:40 +01:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h vdpa: Introduce query of device config layout 2021-11-01 05:26:49 -04:00
vduse.h vduse: Introduce VDUSE - vDPA Device in Userspace 2021-09-06 07:20:58 -04:00
veth.h
vfio.h vfio/pci: Revert nvlink removal uAPI breakage 2021-05-05 10:19:41 -06:00
vfio_ccw.h
vfio_zdev.h
vhost.h
vhost_types.h
videodev2.h media: videobuf2: handle V4L2_MEMORY_FLAG_NON_COHERENT flag 2021-09-30 10:07:57 +02:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_bt.h Bluetooth: Add support for virtio transport driver 2021-04-08 12:26:34 +02:00
virtio_config.h
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpio.h virtio_gpio: drop packed attribute 2021-11-04 16:36:54 +01:00
virtio_gpu.h virtio-gpu api: multiple context types with explicit initialization 2021-09-29 09:22:29 +02:00
virtio_i2c.h i2c: virtio: Add support for zero-length requests 2021-11-01 05:26:48 -04:00
virtio_ids.h virtio,vdpa,vhost: features, fixes 2021-09-11 14:48:42 -07:00
virtio_input.h
virtio_iommu.h
virtio_mem.h virtio-mem: support VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 2021-11-10 15:32:38 +01:00
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_pcidev.h um: virt-pci: fix uapi documentation 2021-08-26 22:28:03 +02:00
virtio_pmem.h
virtio_ring.h
virtio_rng.h
virtio_scmi.h firmware: arm_scmi: Add virtio transport 2021-08-05 10:24:08 +01:00
virtio_scsi.h
virtio_snd.h ALSA: virtio: add virtio sound driver 2021-03-07 09:07:16 +01:00
virtio_types.h
virtio_vsock.h virtio/vsock: add 'VIRTIO_VSOCK_SEQ_EOR' bit. 2021-09-05 16:23:09 -04:00
vm_sockets.h vsock: Enable y2038 safe timeval for timeout 2021-10-08 16:21:53 +01:00
vm_sockets_diag.h
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
watch_queue.h
watchdog.h
wireguard.h
wireless.h
wmi.h
wwan.h wwan: add interface creation support 2021-06-12 13:16:45 -07:00
x25.h
xattr.h
xdp_diag.h
xfrm.h xfrm: make user policy API complete 2021-09-15 13:41:36 +02:00
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h