linux-yocto/include/uapi/linux
Axel Rasmussen 7677f7fd8b userfaultfd: add minor fault registration mode
Patch series "userfaultfd: add minor fault handling", v9.

Overview
========

This series adds a new userfaultfd feature, UFFD_FEATURE_MINOR_HUGETLBFS.
When enabled (via the UFFDIO_API ioctl), this feature means that any
hugetlbfs VMAs registered with UFFDIO_REGISTER_MODE_MISSING will *also*
get events for "minor" faults.  By "minor" fault, I mean the following
situation:

Let there exist two mappings (i.e., VMAs) to the same page(s) (shared
memory).  One of the mappings is registered with userfaultfd (in minor
mode), and the other is not.  Via the non-UFFD mapping, the underlying
pages have already been allocated & filled with some contents.  The UFFD
mapping has not yet been faulted in; when it is touched for the first
time, this results in what I'm calling a "minor" fault.  As a concrete
example, when working with hugetlbfs, we have huge_pte_none(), but
find_lock_page() finds an existing page.

We also add a new ioctl to resolve such faults: UFFDIO_CONTINUE.  The idea
is, userspace resolves the fault by either a) doing nothing if the
contents are already correct, or b) updating the underlying contents using
the second, non-UFFD mapping (via memcpy/memset or similar, or something
fancier like RDMA, or etc...).  In either case, userspace issues
UFFDIO_CONTINUE to tell the kernel "I have ensured the page contents are
correct, carry on setting up the mapping".

Use Case
========

Consider the use case of VM live migration (e.g. under QEMU/KVM):

1. While a VM is still running, we copy the contents of its memory to a
   target machine. The pages are populated on the target by writing to the
   non-UFFD mapping, using the setup described above. The VM is still running
   (and therefore its memory is likely changing), so this may be repeated
   several times, until we decide the target is "up to date enough".

2. We pause the VM on the source, and start executing on the target machine.
   During this gap, the VM's user(s) will *see* a pause, so it is desirable to
   minimize this window.

3. Between the last time any page was copied from the source to the target, and
   when the VM was paused, the contents of that page may have changed - and
   therefore the copy we have on the target machine is out of date. Although we
   can keep track of which pages are out of date, for VMs with large amounts of
   memory, it is "slow" to transfer this information to the target machine. We
   want to resume execution before such a transfer would complete.

4. So, the guest begins executing on the target machine. The first time it
   touches its memory (via the UFFD-registered mapping), userspace wants to
   intercept this fault. Userspace checks whether or not the page is up to date,
   and if not, copies the updated page from the source machine, via the non-UFFD
   mapping. Finally, whether a copy was performed or not, userspace issues a
   UFFDIO_CONTINUE ioctl to tell the kernel "I have ensured the page contents
   are correct, carry on setting up the mapping".

We don't have to do all of the final updates on-demand. The userfaultfd manager
can, in the background, also copy over updated pages once it receives the map of
which pages are up-to-date or not.

Interaction with Existing APIs
==============================

Because this is a feature, a registered VMA could potentially receive both
missing and minor faults.  I spent some time thinking through how the
existing API interacts with the new feature:

UFFDIO_CONTINUE cannot be used to resolve non-minor faults, as it does not
allocate a new page.  If UFFDIO_CONTINUE is used on a non-minor fault:

- For non-shared memory or shmem, -EINVAL is returned.
- For hugetlb, -EFAULT is returned.

UFFDIO_COPY and UFFDIO_ZEROPAGE cannot be used to resolve minor faults.
Without modifications, the existing codepath assumes a new page needs to
be allocated.  This is okay, since userspace must have a second
non-UFFD-registered mapping anyway, thus there isn't much reason to want
to use these in any case (just memcpy or memset or similar).

- If UFFDIO_COPY is used on a minor fault, -EEXIST is returned.
- If UFFDIO_ZEROPAGE is used on a minor fault, -EEXIST is returned (or -EINVAL
  in the case of hugetlb, as UFFDIO_ZEROPAGE is unsupported in any case).
- UFFDIO_WRITEPROTECT simply doesn't work with shared memory, and returns
  -ENOENT in that case (regardless of the kind of fault).

Future Work
===========

This series only supports hugetlbfs.  I have a second series in flight to
support shmem as well, extending the functionality.  This series is more
mature than the shmem support at this point, and the functionality works
fully on hugetlbfs, so this series can be merged first and then shmem
support will follow.

This patch (of 6):

This feature allows userspace to intercept "minor" faults.  By "minor"
faults, I mean the following situation:

Let there exist two mappings (i.e., VMAs) to the same page(s).  One of the
mappings is registered with userfaultfd (in minor mode), and the other is
not.  Via the non-UFFD mapping, the underlying pages have already been
allocated & filled with some contents.  The UFFD mapping has not yet been
faulted in; when it is touched for the first time, this results in what
I'm calling a "minor" fault.  As a concrete example, when working with
hugetlbfs, we have huge_pte_none(), but find_lock_page() finds an existing
page.

This commit adds the new registration mode, and sets the relevant flag on
the VMAs being registered.  In the hugetlb fault path, if we find that we
have huge_pte_none(), but find_lock_page() does indeed find an existing
page, then we have a "minor" fault, and if the VMA has the userfaultfd
registration flag, we call into userfaultfd to handle it.

This is implemented as a new registration mode, instead of an API feature.
This is because the alternative implementation has significant drawbacks
[1].

However, doing it this was requires we allocate a VM_* flag for the new
registration mode.  On 32-bit systems, there are no unused bits, so this
feature is only supported on architectures with
CONFIG_ARCH_USES_HIGH_VMA_FLAGS.  When attempting to register a VMA in
MINOR mode on 32-bit architectures, we return -EINVAL.

[1] https://lore.kernel.org/patchwork/patch/1380226/

[peterx@redhat.com: fix minor fault page leak]
  Link: https://lkml.kernel.org/r/20210322175132.36659-1-peterx@redhat.com

Link: https://lkml.kernel.org/r/20210301222728.176417-1-axelrasmussen@google.com
Link: https://lkml.kernel.org/r/20210301222728.176417-2-axelrasmussen@google.com
Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chinwen Chang <chinwen.chang@mediatek.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Lokesh Gidra <lokeshgidra@google.com>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: "Michal Koutn" <mkoutny@suse.com>
Cc: Michel Lespinasse <walken@google.com>
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Shaohua Li <shli@fb.com>
Cc: Shawn Anastasio <shawn@anastas.io>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Steven Price <steven.price@arm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Adam Ruprecht <ruprecht@google.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Cannon Matthews <cannonmatthews@google.com>
Cc: "Dr . David Alan Gilbert" <dgilbert@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Mina Almasry <almasrymina@google.com>
Cc: Oliver Upton <oupton@google.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-05-05 11:27:22 -07:00
..
android binder: tell userspace to dump current backtrace when detected oneway spamming 2021-04-10 10:52:04 +02:00
byteorder
caif net: caif: drop duplicate words in comments 2020-07-15 20:34:11 -07:00
can can: isotp: add SF_BROADCAST support for functional addressing 2020-12-10 09:31:40 +01:00
cifs cifs: Set witness notification handler for messages from userspace daemon 2020-12-14 09:16:22 -06:00
dvb media: dvb: tag deprecated DVB APIs as such 2019-06-05 10:55:30 -04:00
genwqe
hdlc wan/hdlc_x25: make lapb params configurable 2020-01-21 11:41:36 +01:00
hsi
iio iio: buffer: add ioctl() to support opening extra buffers for IIO device 2021-03-11 20:47:05 +00:00
isdn isdn/capi: check message length in capi_write() 2019-09-07 17:44:25 +02:00
misc bcm-vk: add bcm_vk UAPI 2021-01-25 18:44:44 +01:00
mmc mmc: fix compilation of user API 2020-05-28 11:22:14 +02:00
netfilter netfilter: nftables: add catch-all set element support 2021-04-27 18:06:29 +02:00
netfilter_arp net, uapi: fix -Wpointer-arith warnings 2019-10-04 14:25:17 -07:00
netfilter_bridge uapi: revert flexible-array conversions 2020-05-04 11:30:15 -05:00
netfilter_ipv4 net, uapi: fix -Wpointer-arith warnings 2019-10-04 14:25:17 -07:00
netfilter_ipv6 net, uapi: fix -Wpointer-arith warnings 2019-10-04 14:25:17 -07:00
nfsd UAPI: nfsfh.h: Replace one-element array with flexible-array member 2021-03-31 15:59:14 -04:00
raid raid: md_p.h: drop duplicated word in a comment 2020-07-21 22:05:32 -07:00
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: Add DTX driver 2021-03-17 18:39:38 +01:00
tc_act net/sched: act_mpls: Add action to push MPLS LSE before Ethernet header 2020-10-03 17:28:45 -07: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 acct: stop using get_seconds() 2019-12-18 18:07:31 +01:00
acrn.h virt: acrn: Introduce irqfd 2021-02-09 10:58:19 +01:00
adb.h
adfs_fs.h fs/adfs: correct disc record structure 2019-06-26 20:14:13 -04:00
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h drivers/misc: Add Aspeed P2A control driver 2019-04-25 19:33:34 +02:00
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h atm: Replace HTTP links with HTTPS ones 2020-07-13 17:01:44 -07:00
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h audit: report audit wait metric in audit status reply 2020-07-21 11:21:44 -04:00
auto_dev-ioctl.h autofs: fix doubled word 2020-08-12 10:58:00 -07:00
auto_fs.h autofs: add ignore mount option 2019-03-07 18:32:01 -08:00
auto_fs4.h
auxvec.h
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
bcache.h bcache: introduce BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE for large bucket 2021-01-09 09:21:03 -07:00
bcm933xx_hcs.h
bfs_fs.h bfs: extra sanity checking and static inode bitmap 2019-01-04 13:13:47 -08:00
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 block: fix uapi blkzoned.h comments 2020-10-09 12:47:02 -06:00
bpf_common.h
bpf_perf_event.h
bpf.h bpf: Add a bpf_snprintf helper 2021-04-19 15:27:36 -07:00
bpfilter.h treewide: add "WITH Linux-syscall-note" to SPDX tag of uapi headers 2019-07-25 11:05:10 +02:00
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: Add BTF_KIND_FLOAT to uapi 2021-03-04 17:58:15 -08:00
btrfs_tree.h btrfs: calculate inline extent buffer page size based on page size 2020-12-09 19:16:10 +01:00
btrfs.h btrfs: introduce ZONED feature flag 2020-12-08 15:54:16 +01:00
can.h can: uapi: can.h: mark union inside struct can_frame packed 2021-03-29 09:51:49 +02:00
capability.h capabilities: require CAP_SETFCAP to map uid 0 2021-04-20 14:28:33 -07: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 block: scsi_ioctl: Avoid the use of one-element arrays 2020-10-02 17:58:52 -06:00
cec-funcs.h media: cec-funcs.h: use new CEC_OP_UI_CMD defines 2019-10-07 07:55:17 -03:00
cec.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01: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 scsi: ch: add include guard to chio.h 2019-10-09 22:31:14 -04:00
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 coda: add hinting support for partial file caching 2019-07-16 19:23:23 -07:00
coff.h linux/coff.h: add include guard 2019-09-25 17:51:39 -07:00
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 coresight: stm: Support marked packet 2020-09-17 18:46:04 +02:00
cramfs_fs.h
cryptouser.h crypto: add header include guards 2019-08-02 14:44:02 +10:00
cuda.h
cxl_mem.h cxl/mem: Add set of informational commands 2021-02-16 20:36:39 -08:00
cycx_cfm.h
dcbnl.h net: Fix misspellings of "configure" and "configuration" 2019-10-28 13:41:01 -07:00
dccp.h
devlink.h devlink: Support get and set state of port function 2021-01-22 11:32:08 -08:00
dlm_device.h uapi: revert flexible-array conversions 2020-05-04 11:30:15 -05:00
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm-ioctl.h dm: add support for passing through inline crypto support 2021-02-11 09:45:25 -05:00
dm-log-userspace.h
dma-buf.h dma-buf: Fix SET_NAME ioctl uapi 2020-04-27 16:29:41 +05:30
dma-heap.h dma-buf: heaps: Use _IOCTL_ for userspace IOCTL identifier 2019-12-17 21:37:40 +05:30
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 Move EM_UNICORE to uapi/linux/elf-em.h 2019-03-20 21:11:22 -04:00
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 icmp: support rfc 4884 2020-07-19 19:20:22 -07:00
erspan.h
ethtool_netlink.h ethtool: add interface to read RMON stats 2021-04-16 16:59:20 -07:00
ethtool.h ethtool: add interface to read RMON stats 2021-04-16 16:59:20 -07: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: add support for FAN_REPORT_NAME 2020-07-27 23:24:00 +02:00
fb.h drm/fb-helper: Fix vt restore 2020-06-24 21:34:11 +02:00
fcntl.h vfs: add faccessat2 syscall 2020-05-14 16:44:25 +02:00
fd.h floppy: cleanups: remove trailing whitespaces 2021-04-20 08:59:03 -06:00
fdreg.h floppy: add references to 82077's extra registers 2020-05-12 19:34:52 +03:00
fib_rules.h
fiemap.h A lot of bug fixes and cleanups for ext4, including: 2020-06-05 16:19:28 -07:00
filter.h
firewire-cdev.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
firewire-constants.h
fou.h fou: Support binding FoU socket 2019-03-27 13:30:07 -07:00
fpga-dfl.h fpga: dfl: afu: add AFU interrupt support 2020-07-06 21:37:08 -07:00
fs.h fs/ext4: Introduce DAX inode flag 2020-05-28 22:09:47 -04: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: 32-bit user space ioctl compat for fuse device 2021-03-16 15:20:16 +01:00
futex.h
gameport.h
gen_stats.h net_sched: add TCA_STATS_PKT64 attribute 2019-11-05 18:20:55 -08:00
genetlink.h genetlink: allow dumping command-specific policy 2020-10-03 14:18:29 -07:00
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 tty: n_gsm: add ioctl to map serial device to mux'ed tty 2019-09-04 12:43:54 +02:00
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 hsr: enhance netlink socket interface to support PRP 2020-07-27 12:20:40 -07:00
hw_breakpoint.h
hyperv.h hyperv: hyperv.h: drop a duplicated word 2020-07-23 17:55:20 +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: standardize naming of RFC 8335 PROBE constants 2021-04-28 13:42:23 -07:00
icmpv6.h ICMPV6: add support for RFC 8335 PROBE 2021-03-30 13:29:39 -07:00
idxd.h dmaengine: idxd: fix delta_rec and crc size field for completion record 2021-04-12 13:26:03 +05:30
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 uapi: revert flexible-array conversions 2020-05-04 11:30:15 -05:00
if_arp.h
if_bonding.h bonding: add a vlan+srcmac tx hashing option 2021-01-19 19:30:32 -08:00
if_bridge.h net: bridge: mcast: add support for raw L2 multicast groups 2020-10-30 17:49:19 -07:00
if_cablemodem.h
if_eql.h
if_ether.h bridge: uapi: cfm: Added EtherType used by the CFM protocol. 2020-10-29 18:39:43 -07: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 macvlan: Add nodst option to macvlan type source 2021-04-25 18:35:01 -07:00
if_ltalk.h
if_macsec.h macsec: Netlink support of XPN cipher suites (IEEE 802.1AEbw) 2020-03-16 01:42:31 -07:00
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 l2tp: remove tunnel and session debug flags field 2020-08-22 12:44:37 -07:00
if_pppox.h
if_slip.h
if_team.h
if_tun.h tun: Add ioctl() TUNGETDEVNETNS cmd to allow obtaining real net ns of tun device 2019-03-21 13:19:15 -07:00
if_tunnel.h Revert "GTP: add support for flow based tunneling API" 2021-02-04 09:29:57 -08:00
if_vlan.h vlan: support binding link state to vlan member bridge ports 2019-04-19 13:58:17 -07:00
if_x25.h docs: networking: convert x25-iface.txt to ReST 2020-05-01 12:24:40 -07:00
if_xdp.h xsk: Add new statistics 2020-07-13 15:32:56 -07:00
if.h net: Add IF_OPER_TESTING 2020-04-20 12:43:24 -07:00
ife.h
igmp.h bridge: Snoop Multicast Router Advertisements 2019-01-22 17:18:09 -08:00
ila.h
in_route.h
in.h net: Fix some comments 2020-08-27 07:55:59 -07:00
in6.h icmp6: support rfc 4884 2020-07-24 17:12:41 -07:00
inet_diag.h ip: expose inet sockopts through inet_diag 2020-09-03 15:17:28 -07:00
inotify.h
input-event-codes.h Input: allocate keycode for Fn + right shift 2020-09-08 16:31:14 -07:00
input.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
io_uring.h io_uring: add full-fledged dynamic buffers support 2021-04-25 10:14:04 -06:00
ioctl.h
iommu.h iommu/vt-d: Check UAPI data processed by IOMMU core 2020-10-01 14:52:46 +02:00
ip_vs.h ipvs: allow tunneling with gre encapsulation 2019-07-04 02:29:49 +02:00
ip.h
ip6_tunnel.h
ipc.h
ipmi_bmc.h treewide: add "WITH Linux-syscall-note" to SPDX tag of uapi headers 2019-07-25 11:05:10 +02:00
ipmi_msgdefs.h ipmi:msghandler: retry to get device id on an error 2020-09-15 09:57:45 -05:00
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h net: allow user to set metric on default route learned via Router Advertisement 2021-01-26 18:39:45 -08:00
ipx.h
irqnr.h
iso_fs.h
isst_if.h platform/x86: ISST: drop a duplicated word in isst_if.h 2020-07-27 16:34:12 +03:00
ivtv.h
ivtvfb.h
jffs2.h jffs2: Remove C++ style comments from uapi header 2019-08-22 17:24:51 +02:00
joystick.h
kcm.h
kcmp.h
kcov.h kcov: fix struct layout for kcov_remote_arg 2020-01-04 13:55:09 -08:00
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 mm: convert PG_balloon to PG_offline 2019-03-05 21:07:14 -08:00
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 parisc: add kexec syscall support 2019-09-08 15:37:04 +02:00
keyboard.h vt: keyboard, sort key types by their number 2020-11-04 16:43:38 +01:00
keyctl.h watch_queue: Add a key/keyring notification facility 2020-05-19 15:19:06 +01:00
kfd_ioctl.h drm/amdkfd: Bump KFD API version 2021-03-23 23:40:55 -04:00
kvm_para.h KVM: X86: Yield to IPI target if necessary 2019-07-02 18:56:01 +02:00
kvm.h KVM: x86/xen: Add support for vCPU runstate information 2021-03-02 14:30:54 -05:00
l2tp.h net: l2tp: reduce log level of messages in receive path, add counter instead 2021-03-03 16:55:02 -08:00
libc-compat.h
lightnvm.h lightnvm: remove duplicate include in lightnvm.h 2021-04-13 09:16:12 -06:00
limits.h linux/kernel.h: split *_MAX and *_MIN macros into <linux/limits.h> 2019-03-07 18:31:59 -08:00
lirc.h media: rc: improve LIRC documentation 2020-11-26 14:19:10 +01:00
llc.h
loop.h loop: Add LOOP_CONFIGURE ioctl 2020-05-21 08:20:35 -06:00
lp.h
lwtunnel.h net: ipv6: add rpl sr tunnel 2020-03-29 22:30:57 -07:00
magic.h /dev/mem: Revoke mappings when a driver claims the region 2020-05-27 11:10:05 +02: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
matroxfb.h
max2175.h
mdio.h net: phy: add constants for 2.5G and 5G speed in PCS speed register 2021-04-08 13:15:33 -07: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 mei: add connect with vtag ioctl 2020-08-18 15:44:44 +02:00
membarrier.h rseq/membarrier: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ 2020-09-25 14:23:27 +02:00
memfd.h
mempolicy.h numa balancing: migrate on fault among multiple bound nodes 2021-02-24 13:38:34 -08:00
meye.h
mii.h ethtool: provide UAPI for PHY master/slave configuration. 2020-05-06 17:45:45 -07:00
minix_fs.h
mman.h powerpc/8xx: Support 16k hugepages with 4k pages 2020-09-15 22:13:31 +10:00
mmtimer.h
module.h
mount.h fs: introduce MOUNT_ATTR_IDMAP 2021-01-24 14:43:45 +01:00
mpls_iptunnel.h
mpls.h
mptcp.h mptcp: add mptcp reset option support 2021-04-02 14:21:50 -07:00
mqueue.h
mroute.h ipmr: Add high byte of VIF ID to igmpmsg 2020-09-10 12:25:51 -07:00
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 fat: move MAX_FAT to fat.h and change it to inline function 2019-01-04 13:13:47 -08:00
msg.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
mtio.h
n_r3964.h
nbd-netlink.h
nbd.h
ncsi.h
ndctl.h ACPI: NFIT: Define runtime firmware activation commands 2020-07-25 19:34:47 -06:00
neighbour.h net: bridge: add a flag to avoid refreshing fdb when changing/adding 2020-06-24 14:36:33 -07:00
net_dropmon.h uapi: revert flexible-array conversions 2020-05-04 11:30:15 -05:00
net_namespace.h netns: enable to dump full nsid translation table 2018-11-27 16:20:20 -08:00
net_tstamp.h ethtool: add timestamping related string sets 2020-03-29 22:32:36 -07:00
net.h
netconf.h
netdevice.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv4.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter_ipv6.h netfilter: remove NFC_* cache bits 2018-12-01 12:38:32 +01:00
netfilter.h netfilter: restore NF_INET_NUMHOOKS 2020-10-14 20:28:05 -07:00
netlink_diag.h
netlink.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
netrom.h
nexthop.h nexthop: Add netlink defines and enumerators for resilient NH groups 2021-03-11 16:12:59 -08:00
nfc.h
nfs_fs.h NFSv4.2: add client side xattr caching. 2020-07-13 17:52:46 -04:00
nfs_idmap.h
nfs_mount.h NFS: Move internal constants out of uapi/linux/nfs_mount.h 2019-04-25 14:18:14 -04: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_mount.h
nfs4.h NFSv4.2: support EXCHGID4_FLAG_SUPP_FENCE_OPS 4.2 EXCHANGE_ID flag 2020-10-16 09:28:43 -04:00
nfsacl.h NFSACL: Replace PROC() macro with open code 2020-10-02 09:37:41 -04:00
nilfs2_api.h
nilfs2_ondisk.h nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header 2019-07-12 11:05:40 -07:00
nitro_enclaves.h nitro_enclaves: Add ioctl interface definition 2020-09-22 13:58:40 +02:00
nl80211.h nl80211: Add new RSNXE related nl80211 extended features 2021-04-19 12:04:37 +02:00
nsfs.h
nubus.h
nvme_ioctl.h nvme: change nvme_passthru_cmd64 to explicitly mark rsvd 2019-11-06 06:17:38 +09:00
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 net: openvswitch: fix TTL decrement action netlink message format 2020-11-27 11:03:06 -08:00
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h pci-v5.11-changes 2020-12-15 16:49:59 -08:00
pci.h
pcitest.h misc: pci_endpoint_test: Add ioctl to clear IRQ 2020-04-02 17:57:10 +01:00
perf_event.h perf: Extend PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE 2021-04-19 20:03:29 +02:00
personality.h
pfkeyv2.h
pg.h block: pg: add header include guard 2019-10-02 20:32:27 -06:00
phantom.h
phonet.h
pidfd.h pidfd: support PIDFD_NONBLOCK in pidfd_open() 2020-09-04 12:34:50 +02:00
pkt_cls.h net/sched: act_police: add support for packet-per-second policing 2021-03-13 14:18:09 -08:00
pkt_sched.h sch_htb: Hierarchical QoS hardware offload 2021-01-22 20:41:29 -08:00
pktcdvd.h
pmu.h m68k/mac: Fix PRAM accessors 2019-01-22 10:21:45 +01:00
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
ppdev.h ppdev: add header include guard 2019-07-30 20:34:34 +02:00
ppp_defs.h y2038: syscall implementation cleanups 2019-12-01 14:00:59 -08:00
ppp-comp.h
ppp-ioctl.h ppp: Fix PPPIOCUNBRIDGECHAN request number 2020-12-21 17:36:48 -08:00
pps.h
pr.h
prctl.h arm64: Introduce prctl(PR_PAC_{SET,GET}_ENABLED_KEYS) 2021-04-13 17:31:44 +01: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 firmware/psci: add support for SYSTEM_RESET2 2019-04-16 23:05:21 +02:00
psp-sev.h crypto: ccp - Add support for SEV-ES to the PSP driver 2020-04-30 15:19:33 +10:00
ptp_clock.h ptp: introduce a phase offset in the periodic output request 2020-07-19 19:22:56 -07:00
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 random: ignore GRND_RANDOM in getentropy(2) 2020-01-07 16:07:01 -05:00
raw.h char: raw: do not leak CONFIG_MAX_RAW_DEVS to userspace 2020-07-10 14:50:51 +02:00
rds.h rds: transport module should be auto loaded when transport is set 2020-06-25 16:26:25 -07:00
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
remoteproc_cdev.h remoteproc: Add remoteproc character device interface 2020-08-04 20:16:37 -07:00
resource.h y2038: rusage: use __kernel_old_timeval 2019-11-15 14:38:29 +01: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_iptunnel.h net: ipv6: add rpl sr tunnel 2020-03-29 22:30:57 -07:00
rpl.h uapi: fix big endian definition of ipv6_rpl_sr_hdr 2021-01-25 15:14:16 -08:00
rpmsg_types.h rpmsg: Introduce __rpmsg{16|32|64} types 2020-11-24 10:10:59 -06:00
rpmsg.h
rseq.h
rtc.h rtc: introduce features bitfield 2021-01-16 23:19:26 +01:00
rtnetlink.h Add Open Routing Protocol ID to rtnetlink.h 2021-03-24 16:31:23 -07:00
rxrpc.h rxrpc: Fix accept on a connection that need securing 2020-10-05 16:35:57 +01:00
scc.h linux/scc.h: make uapi linux/scc.h self-contained 2019-12-04 19:44:12 -08:00
sched.h clone3: allow spawning processes into cgroups 2020-02-12 17:57:51 -05:00
scif_ioctl.h
screen_info.h
sctp.h sctp: add SCTP_REMOTE_UDP_ENCAPS_PORT sockopt 2020-10-30 15:24:11 -07:00
seccomp.h seccomp: Introduce addfd ioctl to seccomp user notifier 2020-07-14 16:29:42 -07:00
securebits.h
sed-opal.h block: sed-opal: Add support to read/write opal tables generically 2019-11-04 07:11:31 -07:00
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h seg6_iptunnel: Refactor seg6_lwt_headroom out of uapi header 2020-08-03 17:57:40 -07:00
seg6_local.h seg6: add support for the SRv6 End.DT4 behavior 2020-12-04 13:30:50 -08:00
seg6.h
selinux_netlink.h
sem.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
serial_core.h tty: serial: Drop unused efm32 serial driver 2021-01-15 17:14:49 +01:00
serial_reg.h
serial.h tty: cyclades, remove this orphan 2021-03-10 09:34:06 +01:00
serio.h Input: avoid BIT() macro usage in the serio.h UAPI header 2020-03-24 15:59:34 -07:00
shm.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
signal.h
signalfd.h signal: Introduce TRAP_PERF si_code and si_perf to siginfo 2021-04-16 16:32:41 +02:00
smc_diag.h
smc.h net/smc: Add support for obtaining SMCR device list 2020-12-01 17:56:13 -08:00
smiapp.h
snmp.h net: udp: introduce UDP_MIB_MEMERRORS for udp_mem 2020-11-09 15:34:44 -08:00
sock_diag.h bpf: INET_DIAG support in bpf_sk_storage 2020-02-27 18:50:19 -08:00
socket.h net/socket: fix GCC8+ Wpacked-not-aligned warnings 2019-08-03 11:02:46 -07:00
sockios.h net: socket: implement 64-bit timestamps 2019-04-19 14:07:40 -07:00
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
stm.h
string.h
suspend_ioctls.h
swab.h include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for swap 2020-02-21 11:22:15 -08:00
switchtec_ioctl.h PCI/switchtec: Add Gen4 flash information interface support 2020-01-15 11:00:39 -06:00
sync_file.h
synclink.h
sysctl.h net: allow user to set metric on default route learned via Router Advertisement 2021-01-26 18:39:45 -08:00
sysinfo.h
target_core_user.h scsi: target: tcmu: Implement tmr_notify callback 2020-07-28 22:25:30 -04:00
taskstats.h tsacct: add 64-bit btime field 2019-12-18 18:07:31 +01:00
tcp_metrics.h
tcp.h tcp: Sanitize CMSG flags and reserved args in tcp_zerocopy_receive. 2021-02-11 18:25:05 -08:00
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: core: genetlink support for events/cmd/sampling 2020-07-07 15:55:21 +02:00
time_types.h y2038: rename itimerval to __kernel_old_itimerval 2019-12-18 18:07:33 +01:00
time.h y2038: hide timeval/timespec/itimerval/itimerspec types 2020-02-21 11:22:15 -08:00
timerfd.h
times.h
timex.h y2038: sparc: remove use of struct timex 2019-12-18 18:07:33 +01:00
tiocl.h
tipc_config.h net, uapi: fix -Wpointer-arith warnings 2019-10-04 14:25:17 -07:00
tipc_netlink.h tipc: add automatic rekeying for encryption key 2020-09-18 13:58:37 -07:00
tipc_sockets_diag.h
tipc.h tipc: add automatic rekeying for encryption key 2020-09-18 13:58:37 -07:00
tls.h net/tls: add CHACHA20-POLY1305 specific defines and structures 2020-11-27 14:32:37 -08:00
toshiba.h
tty_flags.h tty: add ASYNC_SPLIT_TERMIOS to deprecation mask 2021-04-10 10:36:34 +02:00
tty.h
types.h include/: replace HTTP links with HTTPS ones 2020-08-12 10:57:59 -07:00
udf_fs_i.h
udmabuf.h
udp.h xfrm: add espintcp (RFC 8229) 2019-12-09 09:59:07 +01:00
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
um_timetravel.h um: Implement time-travel=ext 2020-03-29 23:29:08 +02:00
un.h
unistd.h
unix_diag.h net: Add UNIX_DIAG_UID to Netlink UNIX socket diagnostics. 2019-05-22 10:36:35 -07:00
usbdevice_fs.h USB: usbfs: Add a capability flag for runtime suspend 2019-08-14 16:52:13 +02:00
usbip.h
userfaultfd.h userfaultfd: add minor fault registration mode 2021-05-05 11:27:22 -07:00
userio.h
utime.h y2038: uapi: change __kernel_time_t to __kernel_old_time_t 2019-11-15 14:38:29 +01:00
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: v4l: Add HDR10 static metadata controls 2021-04-06 14:56:00 +02:00
v4l2-dv-timings.h
v4l2-mediabus.h media: v4l2: extend the CSC API to subdevice. 2020-09-26 10:22:29 +02:00
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 virt: vbox: Add a few new vmmdev request types to the userspace whitelist 2020-07-10 13:45:32 +02:00
vboxguest.h virt: vbox: Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl 2020-07-10 13:45:32 +02:00
vdpa.h vdpa: Enable user to query vdpa device info 2021-02-23 07:52:56 -05:00
veth.h
vfio_ccw.h vfio-ccw: Introduce a new CRW region 2020-06-03 11:27:43 +02:00
vfio_zdev.h vfio: Introduce capability definitions for VFIO_DEVICE_GET_INFO 2020-10-07 14:23:44 -06:00
vfio.h vfio/pci: remove vfio_pci_nvlink2 2021-04-06 11:54:13 -06:00
vhost_types.h vhost: vdpa: report iova range 2020-10-23 11:55:28 -04:00
vhost.h vhost: vdpa: report iova range 2020-10-23 11:55:28 -04:00
videodev2.h media: v4l: Add HDR10 static metadata controls 2021-04-06 14:56:00 +02:00
virtio_9p.h virtio_9p: correct tags for config space fields 2020-08-05 09:30:19 -04:00
virtio_balloon.h virtio_balloon: correct tags for config space fields 2020-08-05 09:30:20 -04:00
virtio_blk.h virtio_blk: correct tags for config space fields 2020-08-05 11:08:39 -04:00
virtio_bt.h Bluetooth: Add support for virtio transport driver 2021-04-08 12:26:34 +02:00
virtio_config.h virtio: VIRTIO_F_IOMMU_PLATFORM -> VIRTIO_F_ACCESS_PLATFORM 2020-08-03 16:11:42 -04:00
virtio_console.h virtio_console: correct tags for config space fields 2020-08-05 11:08:39 -04:00
virtio_crypto.h virtio_crypto: correct tags for config space fields 2020-08-05 11:08:39 -04:00
virtio_fs.h virtiofs: set up virtio_fs dax_device 2020-09-10 11:39:22 +02:00
virtio_gpu.h virtio-gpu api: Add a comment on VIRTIO_GPU_SHM_ID_HOST_VISIBLE 2020-11-20 10:44:41 +01:00
virtio_ids.h Bluetooth: Add support for virtio transport driver 2021-04-08 12:26:34 +02:00
virtio_input.h virtio_input: correct tags for config space fields 2020-08-05 11:08:40 -04:00
virtio_iommu.h virtio_iommu: correct tags for config space fields 2020-08-05 11:08:40 -04:00
virtio_mem.h virtio_mem: correct tags for config space fields 2020-08-05 11:08:40 -04:00
virtio_mmio.h virtio: Implement get_shm_region for MMIO transport 2020-09-10 10:05:58 +02:00
virtio_net.h virtio_net: use LE accessors for speed/duplex 2020-08-05 11:08:41 -04:00
virtio_pci.h virtio: Implement get_shm_region for PCI transport 2020-09-10 10:05:58 +02:00
virtio_pmem.h virtio_pmem: correct tags for config space fields 2020-08-05 11:08:40 -04:00
virtio_ring.h virtio: force spec specified alignment on types 2020-06-02 02:45:13 -04:00
virtio_rng.h
virtio_scsi.h virtio_scsi: correct tags for config space fields 2020-08-05 11:08:40 -04:00
virtio_types.h
virtio_vsock.h
vm_sockets_diag.h
vm_sockets.h vm_sockets: Add VMADDR_FLAG_TO_HOST vsock flag 2020-12-14 19:33:39 -08:00
vmcore.h treewide: add "WITH Linux-syscall-note" to SPDX tag of uapi headers 2019-07-25 11:05:10 +02:00
vsockmon.h
vt.h
vtpm_proxy.h
wait.h pidfd: add P_PIDFD to waitid() 2019-08-01 21:49:46 +02:00
watch_queue.h watch_queue: Add a key/keyring notification facility 2020-05-19 15:19:06 +01:00
watchdog.h
wireguard.h wireguard: global: fix spelling mistakes in comments 2019-12-16 19:22:22 -08:00
wireless.h net/wireless: wireless.h: drop duplicate word in comments 2020-07-31 09:24:23 +02:00
wmi.h treewide: add "WITH Linux-syscall-note" to SPDX tag of uapi headers 2019-07-25 11:05:10 +02:00
x25.h
xattr.h ext4: support xattr gnu.* namespace for the Hurd 2020-06-12 13:23:34 -04:00
xdp_diag.h xsk: Add xdp statistics to xsk_diag 2020-07-13 15:32:56 -07:00
xfrm.h xfrm: introduce oseq-may-wrap flag 2020-06-24 07:51:01 +02:00
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h