twx-linux/include/uapi/linux
Stefan Roesch d7597f59d1 mm: add new api to enable ksm per process
Patch series "mm: process/cgroup ksm support", v9.

So far KSM can only be enabled by calling madvise for memory regions.  To
be able to use KSM for more workloads, KSM needs to have the ability to be
enabled / disabled at the process / cgroup level.

Use case 1:
  The madvise call is not available in the programming language.  An
  example for this are programs with forked workloads using a garbage
  collected language without pointers.  In such a language madvise cannot
  be made available.

  In addition the addresses of objects get moved around as they are
  garbage collected.  KSM sharing needs to be enabled "from the outside"
  for these type of workloads.

Use case 2:
  The same interpreter can also be used for workloads where KSM brings
  no benefit or even has overhead.  We'd like to be able to enable KSM on
  a workload by workload basis.

Use case 3:
  With the madvise call sharing opportunities are only enabled for the
  current process: it is a workload-local decision.  A considerable number
  of sharing opportunities may exist across multiple workloads or jobs (if
  they are part of the same security domain).  Only a higler level entity
  like a job scheduler or container can know for certain if its running
  one or more instances of a job.  That job scheduler however doesn't have
  the necessary internal workload knowledge to make targeted madvise
  calls.

Security concerns:

  In previous discussions security concerns have been brought up.  The
  problem is that an individual workload does not have the knowledge about
  what else is running on a machine.  Therefore it has to be very
  conservative in what memory areas can be shared or not.  However, if the
  system is dedicated to running multiple jobs within the same security
  domain, its the job scheduler that has the knowledge that sharing can be
  safely enabled and is even desirable.

Performance:

  Experiments with using UKSM have shown a capacity increase of around 20%.

  Here are the metrics from an instagram workload (taken from a machine
  with 64GB main memory):

   full_scans: 445
   general_profit: 20158298048
   max_page_sharing: 256
   merge_across_nodes: 1
   pages_shared: 129547
   pages_sharing: 5119146
   pages_to_scan: 4000
   pages_unshared: 1760924
   pages_volatile: 10761341
   run: 1
   sleep_millisecs: 20
   stable_node_chains: 167
   stable_node_chains_prune_millisecs: 2000
   stable_node_dups: 2751
   use_zero_pages: 0
   zero_pages_sharing: 0

After the service is running for 30 minutes to an hour, 4 to 5 million
shared pages are common for this workload when using KSM.


Detailed changes:

1. New options for prctl system command
   This patch series adds two new options to the prctl system call. 
   The first one allows to enable KSM at the process level and the second
   one to query the setting.

The setting will be inherited by child processes.

With the above setting, KSM can be enabled for the seed process of a cgroup
and all processes in the cgroup will inherit the setting.

2. Changes to KSM processing
   When KSM is enabled at the process level, the KSM code will iterate
   over all the VMA's and enable KSM for the eligible VMA's.

   When forking a process that has KSM enabled, the setting will be
   inherited by the new child process.

3. Add general_profit metric
   The general_profit metric of KSM is specified in the documentation,
   but not calculated.  This adds the general profit metric to
   /sys/kernel/debug/mm/ksm.

4. Add more metrics to ksm_stat
   This adds the process profit metric to /proc/<pid>/ksm_stat.

5. Add more tests to ksm_tests and ksm_functional_tests
   This adds an option to specify the merge type to the ksm_tests. 
   This allows to test madvise and prctl KSM.

   It also adds a two new tests to ksm_functional_tests: one to test
   the new prctl options and the other one is a fork test to verify that
   the KSM process setting is inherited by client processes.


This patch (of 3):

So far KSM can only be enabled by calling madvise for memory regions.  To
be able to use KSM for more workloads, KSM needs to have the ability to be
enabled / disabled at the process / cgroup level.

1. New options for prctl system command

   This patch series adds two new options to the prctl system call.
   The first one allows to enable KSM at the process level and the second
   one to query the setting.

   The setting will be inherited by child processes.

   With the above setting, KSM can be enabled for the seed process of a
   cgroup and all processes in the cgroup will inherit the setting.

2. Changes to KSM processing

   When KSM is enabled at the process level, the KSM code will iterate
   over all the VMA's and enable KSM for the eligible VMA's.

   When forking a process that has KSM enabled, the setting will be
   inherited by the new child process.

  1) Introduce new MMF_VM_MERGE_ANY flag

     This introduces the new flag MMF_VM_MERGE_ANY flag.  When this flag
     is set, kernel samepage merging (ksm) gets enabled for all vma's of a
     process.

  2) Setting VM_MERGEABLE on VMA creation

     When a VMA is created, if the MMF_VM_MERGE_ANY flag is set, the
     VM_MERGEABLE flag will be set for this VMA.

  3) support disabling of ksm for a process

     This adds the ability to disable ksm for a process if ksm has been
     enabled for the process with prctl.

  4) add new prctl option to get and set ksm for a process

     This adds two new options to the prctl system call
     - enable ksm for all vmas of a process (if the vmas support it).
     - query if ksm has been enabled for a process.

3. Disabling MMF_VM_MERGE_ANY for storage keys in s390

   In the s390 architecture when storage keys are used, the
   MMF_VM_MERGE_ANY will be disabled.

Link: https://lkml.kernel.org/r/20230418051342.1919757-1-shr@devkernel.io
Link: https://lkml.kernel.org/r/20230418051342.1919757-2-shr@devkernel.io
Signed-off-by: Stefan Roesch <shr@devkernel.io>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Rik van Riel <riel@surriel.com>
Cc: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-04-21 14:52:03 -07:00
..
android binder: return pending info for frozen async txns 2023-01-19 17:14:18 +01:00
byteorder
caif
can can: raw: add CAN XL support 2022-09-15 09:08:09 +02:00
cifs
dvb Merge tag 'br-v6.2i' of git://linuxtv.org/hverkuil/media_tree into media_stage 2022-12-07 17:58:47 +01:00
genwqe
hdlc
hsi headers: Remove some left-over license text in include/uapi/linux/hsi/ 2022-11-17 22:49:39 +01:00
iio iio: add modifers for pitch, yaw, roll 2022-09-21 18:42:55 +01:00
isdn
misc
mmc treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
netfilter_arp treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
netfilter_bridge treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
netfilter_ipv4 treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
netfilter_ipv6 netfilter: ip6t_LOG: Fix a typo in a comment 2022-08-09 19:51:05 +02:00
nfsd
raid treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
sched
spi spi: add SPI_RX_CPHA_FLIP mode bit 2022-04-19 13:13:47 +01:00
sunrpc
surface_aggregator
tc_act net: sched: add helper support in act_ct 2022-11-08 12:15:19 +01:00
tc_ematch
usb usb: uvc: Enumerate valid values for color matching 2023-02-06 13:46:42 +01:00
a.out.h
acct.h taskstats: version 12 with thread group and exe info 2022-04-29 14:38:03 -07:00
acrn.h virt: acrn: Mark the uuid field as unused 2022-11-23 19:55:22 +01:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h agpgart.h: do not include <stdlib.h> from exported header 2022-05-13 10:56:10 +02:00
aio_abi.h
am437x-vpfe.h
amt.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
aspeed-video.h media: aspeed: Support aspeed mode to reduce compressed data 2022-11-04 16:56:41 +01:00
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h net: atm: bring back zatm uAPI 2022-08-11 10:31:19 -07:00
atm.h
atmapi.h
atmarp.h
atmbr2684.h atm: uapi: fix spelling typos in comments 2022-12-22 18:18:37 -08:00
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h audit: fix undefined behavior in bit shift for AUDIT_BIT 2022-10-31 07:29:47 -04:00
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h
auxvec.h rseq: Introduce feature size and alignment ELF auxiliary vector entries 2022-12-27 12:52:10 +01:00
ax25.h
batadv_packet.h batman-adv: tvlv: prepare for tvlv enabled multicast packet type 2023-01-21 19:01:59 +01:00
batman_adv.h
baycom.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
blkzoned.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
bpf_common.h
bpf_perf_event.h
bpf.h bpf: Add BPF_FIB_LOOKUP_SKIP_NEIGH for bpf_fib_lookup 2023-02-17 22:12:04 +01:00
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: Add btf enum64 support 2022-06-07 10:20:42 -07:00
btrfs_tree.h btrfs: add nr_global_roots to the super block definition 2022-12-05 18:00:58 +01:00
btrfs.h btrfs: ioctl: return device fsid from DEV_INFO ioctl 2023-03-06 19:28:19 +01:00
cachefiles.h cachefiles: implement on-demand read 2022-05-18 00:11:18 +08:00
can.h can: canxl: introduce CAN XL data structure 2022-09-15 09:08:09 +02:00
capability.h capabilities: fix undefined behavior in bit shift for CAP_TO_MASK 2022-11-05 01:25:57 -04:00
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h
cdrom.h cdrom: mark CDROMGETSPINDOWN/CDROMSETSPINDOWN obsolete 2022-05-15 18:31:28 -06:00
cec-funcs.h media: cec: add support for Absolute Volume Control 2022-09-24 08:50:04 +02:00
cec.h media: cec: add support for Absolute Volume Control 2022-09-24 08:50:04 +02:00
cfm_bridge.h
cgroupstats.h
chio.h
close_range.h
cm4000_cs.h
cn_proc.h
coda.h
coff.h
comedi.h
connector.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
const.h
coresight-stm.h
counter.h counter: Introduce the Count capture component 2022-09-30 14:32:35 +02:00
cramfs_fs.h
cryptouser.h
cuda.h
cxl_mem.h cxl/mem: Fix UAPI command comment 2023-02-10 17:54:45 -08:00
cyclades.h
cycx_cfm.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
dcbnl.h net: dcb: add new rewrite table 2023-01-20 09:33:22 +00:00
dccp.h
devlink.h devlink: Expose port function commands to control migratable 2022-12-07 20:09:18 -08:00
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h fs: dlm: remove DLM_LSFL_FS from uapi 2022-08-23 14:54:54 -05:00
dlmconstants.h
dm-ioctl.h flexible-array transformations in UAPI for 6.0-rc1 2022-08-02 19:50:47 -07:00
dm-log-userspace.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
dma-buf.h Merge drm/drm-next into drm-misc-next 2022-06-20 18:21:25 +02:00
dma-heap.h
dns_resolver.h
dqblk_xfs.h
dw100.h media: uapi: Add a control for DW100 driver 2022-08-29 15:32:13 +02:00
edd.h
efs_fs_sb.h
elf-em.h LoongArch: Add ELF-related definitions 2022-06-03 20:09:27 +08:00
elf-fdpic.h
elf.h LoongArch changes for v6.3 2023-03-01 09:27:00 -08:00
errno.h
errqueue.h
erspan.h
ethtool_netlink.h net: ethtool: extend ringparam set/get APIs for rx_push 2023-02-13 11:05:12 +00:00
ethtool.h net: ethtool: netlink: retrieve stats from multiple sources (eMAC, pMAC) 2023-01-23 12:44:18 +00:00
eventpoll.h eventpoll: add EPOLL_URING_WAKE poll wakeup flag 2022-11-21 07:45:29 -07:00
f2fs.h f2fs: introduce F2FS_IOC_START_ATOMIC_REPLACE 2022-11-28 12:46:23 -08:00
fadvise.h
falloc.h
fanotify.h fanotify: define struct members to hold response decision context 2023-02-07 12:53:53 +01:00
fb.h linux/fb.h: Spelling s/palette/palette/ 2022-04-04 08:55:23 +02:00
fcntl.h mm/memfd: add F_SEAL_EXEC 2023-01-18 17:12:37 -08:00
fd.h
fdreg.h
fib_rules.h
fiemap.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
filter.h
firewire-cdev.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
firewire-constants.h
fou.h ynl: broaden the license even more 2023-03-16 21:20:32 -07:00
fpga-dfl.h
fs.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
fscrypt.h fscrypt: remove unused Speck definitions 2022-12-01 19:58:50 -08:00
fsi.h
fsl_hypervisor.h
fsl_mc.h
fsmap.h
fsverity.h
fuse.h fuse: optional supplementary group in create requests 2023-01-26 17:10:38 +01:00
futex.h
gameport.h
gen_stats.h
genetlink.h genetlink: correct uAPI defines 2022-08-10 13:49:50 +01:00
gfs2_ondisk.h
gpio.h gpiolib: cdev: Add hardware timestamp clock type 2022-05-04 11:06:13 +02:00
gsmmux.h tty: n_gsm: add keep alive support 2023-02-16 13:50:50 +01:00
gtp.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h HID: convert defines of HID class requests into a proper enum 2022-09-20 11:53:32 +01:00
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h
idxd.h dmaengine: idxd: Fix crc_val field for completion record 2022-11-14 03:56:37 +05:30
if_addr.h
if_addrlabel.h
if_alg.h crypto: af_alg - Support symmetric encryption via keyring keys 2022-10-28 12:36:34 +08:00
if_arcnet.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
if_arp.h
if_bonding.h
if_bridge.h net: bridge: Add netlink knobs for number / maximum MDB entries 2023-02-06 08:48:26 +00:00
if_cablemodem.h
if_eql.h
if_ether.h can: canxl: update CAN infrastructure for CAN XL frames 2022-09-15 09:08:09 +02:00
if_fc.h
if_fddi.h
if_hippi.h
if_infiniband.h
if_link.h net: bridge: Add netlink knobs for number / maximum MDB entries 2023-02-06 08:48:26 +00:00
if_ltalk.h
if_macsec.h net: macsec: Expose MACSEC_SALT_LEN definition to user space 2022-08-18 20:37:35 -07:00
if_packet.h packet: add TP_STATUS_GSO_TCP for tp_status 2023-02-01 20:54:27 -08:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
if_slip.h
if_team.h
if_tun.h uapi/linux/if_tun.h: Added new offload types for USO4/6. 2022-12-12 09:29:56 +00:00
if_tunnel.h
if_vlan.h
if_x25.h
if_xdp.h
if.h
ife.h
igmp.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
ila.h
in6.h
in_route.h
in.h inet: Add IP_LOCAL_PORT_RANGE socket option 2023-01-25 22:45:00 -08:00
inet_diag.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
inotify.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
input-event-codes.h HID: add mapping for camera access keys 2022-11-22 17:50:36 -08:00
input.h Input updates for v5.19-rc6 2022-07-17 07:52:46 -07:00
io_uring.h hardening updates for v6.3-rc1 2023-02-21 11:07:23 -08:00
ioam6_genl.h
ioam6_iptunnel.h
ioam6.h ipv6: ioam: Replace 0-length array with flexible array 2023-01-06 19:22:53 -08:00
ioctl.h
iommu.h
iommufd.h iommufd: vfio container FD ioctl compatibility 2022-11-30 20:16:49 -04:00
ioprio.h
ip6_tunnel.h
ip_vs.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
ip.h uapi: add missing ip/ipv6 header dependencies for linux/stddef.h 2023-02-06 09:01:00 +00:00
ipc.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi_ssif_bmc.h ipmi: ssif_bmc: Add SSIF BMC driver 2022-10-17 09:51:26 -05:00
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h uapi: add missing ip/ipv6 header dependencies for linux/stddef.h 2023-02-06 09:01:00 +00:00
irqnr.h
iso_fs.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
isst_if.h
ivtv.h
ivtvfb.h
jffs2.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
joystick.h
kcm.h
kcmp.h
kcov.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
kd.h VT: Add KD_FONT_OP_SET/GET_TALL operations 2023-01-19 16:28:57 +01:00
kdev_t.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kexec.h LoongArch: Add ELF-related definitions 2022-06-03 20:09:27 +08:00
keyboard.h
keyctl.h
kfd_ioctl.h drm/amdkfd: bump KFD version for unified ctx save/restore memory 2022-07-12 16:50:44 -04:00
kfd_sysfs.h
kvm_para.h
kvm.h * Two more V!=R patches 2023-02-15 12:35:26 -05:00
l2tp.h uapi: move IPPROTO_L2TP to in.h 2022-09-20 09:13:38 +02:00
landlock.h landlock: Support file truncation 2022-10-19 09:01:44 +02:00
libc-compat.h
limits.h
lirc.h media: lirc: revert removal of unused feature flags 2022-05-25 09:51:36 -07:00
llc.h
loadpin.h LoadPin: Enable loading from trusted dm-verity devices 2022-07-08 10:46:53 -07:00
loop.h loop: remove most the top-of-file boilerplate comment from the UAPI header 2022-05-10 06:30:05 -06:00
lp.h
lwtunnel.h xfrm: lwtunnel: add lwtunnel support for xfrm interfaces in collect_md mode 2022-08-29 10:44:08 +02:00
magic.h mm: Convert all PageMovable users to movable_operations 2022-08-02 12:34:03 -04:00
major.h
map_to_7segment.h
map_to_14segment.h
matroxfb.h
max2175.h
mctp.h
mdio.h net: phy: add genphy_c45_ethtool_get/set_eee() support 2023-02-13 11:12:31 +00:00
media-bus-format.h drm-misc-next for v6.3: 2023-01-04 14:59:25 +01:00
media.h media: media.h: remove unneeded <stdint.h> inclusion 2022-04-24 08:27:37 +01:00
mei.h
membarrier.h sched/membarrier: Introduce MEMBARRIER_CMD_GET_REGISTRATIONS 2023-01-07 11:29:29 +01:00
memfd.h mm/memfd: add MFD_NOEXEC_SEAL and MFD_EXEC 2023-01-18 17:12:37 -08:00
mempolicy.h
mii.h
minix_fs.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
mman.h
mmtimer.h
module.h
mount.h
mpls_iptunnel.h
mpls.h
mptcp.h mptcp: add pm listener events 2022-12-01 20:06:06 -08:00
mqueue.h
mroute6.h
mroute.h
mrp_bridge.h
msdos_fs.h
msg.h
mtio.h
nbd-netlink.h
nbd.h
ncsi.h
ndctl.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
neighbour.h bridge: Add MAC Authentication Bypass (MAB) support 2022-11-03 20:46:32 -07:00
net_dropmon.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
net_namespace.h
net_tstamp.h net_tstamp: add SOF_TIMESTAMPING_OPT_ID_TCP 2022-12-08 19:49:21 -08:00
net.h
netconf.h
netdev.h ynl: broaden the license even more 2023-03-16 21:20:32 -07:00
netdevice.h
netfilter_arp.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h netfilter: remove NFPROTO_DECNET 2022-09-07 16:46:03 +02:00
netlink_diag.h
netlink.h netlink: remove the flex array from struct nlmsghdr 2022-11-18 18:36:54 -08:00
netrom.h
nexthop.h
nfc.h
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211-vnd-intel.h
nl80211.h wifi: nl80211: Allow authentication frames and set keys on NAN interface 2023-02-14 12:35:02 +01:00
nsfs.h
nubus.h
nvme_ioctl.h nvme: enable uring-passthrough for admin commands 2022-05-20 06:17:33 -06:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h
openvswitch.h net: openvswitch: Add support to count upcall packets 2022-12-09 10:43:46 +00:00
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h cxl: add RAS status unmasking for CXL 2023-02-14 14:12:54 -08:00
pci.h
pcitest.h
perf_event.h perf: Add perf_event_attr::config3 2023-02-07 11:52:00 +00:00
personality.h
pfkeyv2.h
pfrut.h
pg.h
phantom.h
phonet.h
pidfd.h
pkt_cls.h net/sched: flower: Add L2TPv3 filter 2022-09-20 09:13:38 +02:00
pkt_sched.h net/sched: taprio: allow user input of per-tc max SDU 2022-09-29 18:52:05 -07:00
pktcdvd.h Revert "pktcdvd: remove driver." 2023-01-04 14:44:13 -07:00
pmu.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h
pps.h
pr.h block: Add error codes for common PR failures 2022-12-01 03:22:20 +00:00
prctl.h mm: add new api to enable ksm per process 2023-04-21 14:52:03 -07:00
psample.h
psci.h firmware/psci: Fix MEM_PROTECT_RANGE function numbers 2023-01-06 17:12:39 +00:00
psp-sev.h
ptp_clock.h
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
remoteproc_cdev.h
resource.h
rfkill.h rfkill: uapi: fix RFKILL_IOCTL_MAX_SIZE ioctl request definition 2022-05-09 14:00:07 +02:00
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h media: rockchip: rkisp1: Define macros for DPCC configurations in UAPI 2022-09-24 08:31:54 +02:00
romfs_fs.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
rose.h
route.h
rpl_iptunnel.h
rpl.h net: ipv6: rpl_iptunnel: Replace 0-length arrays with flexible arrays 2023-01-06 19:28:01 -08:00
rpmsg_types.h
rpmsg.h
rseq.h rseq: Extend struct rseq with per-memory-map concurrency ID 2022-12-27 12:52:12 +01:00
rtc.h
rtnetlink.h net/sched: act_api: add specific EXT_WARN_MSG for tc action 2023-03-16 21:25:45 -07:00
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
seccomp.h seccomp: Add wait_killable semantic to seccomp user notifier 2022-05-03 14:11:58 -07:00
securebits.h
sed-opal.h sed-opal: add support flag for SUM in status ioctl 2023-02-17 06:15:53 -07:00
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h Networking changes for 6.0. 2022-08-03 16:29:08 -07:00
seg6_local.h seg6: add NEXT-C-SID support for SRv6 End behavior 2022-09-20 12:33:22 +02:00
seg6.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
selinux_netlink.h
sem.h
serial_core.h serial: 8250_pci1xxxx: Add driver for quad-uart support 2023-02-08 13:10:15 +01:00
serial_reg.h serial: 8250: Define IIR 64 byte bit & cleanup related code 2023-01-19 15:01:20 +01:00
serial.h serial: Convert serial_rs485 to kernel doc 2022-11-03 03:43:05 +01:00
serio.h
sev-guest.h virt: sevguest: Add support to get extended report 2022-04-07 16:47:12 +02:00
shm.h
signal.h
signalfd.h
smc_diag.h
smc.h net/smc: Extend SMC-R link group netlink attribute 2022-07-18 11:19:17 +01:00
smiapp.h
snmp.h icmp: Add counters for rate limits 2023-01-26 10:52:18 +01:00
sock_diag.h
socket.h socket: Don't use u8 type in uapi socket.h 2022-06-01 16:48:05 -07:00
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h statx: add direct I/O alignment information 2022-09-11 19:47:04 -05:00
stddef.h
stm.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
string.h
suspend_ioctls.h
swab.h include/uapi/linux/swab: Fix potentially missing __always_inline 2022-11-09 14:06:51 +01:00
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h net, neigh: introduce interval_probe_time_ms for periodic probe 2022-06-30 13:14:35 +02:00
sysinfo.h
target_core_user.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
taskstats.h delayacct: track delays from write-protect copy 2022-06-01 15:55:25 -07:00
tcp_metrics.h
tcp.h tcp: add rcv_wnd and plb_rehash to TCP_INFO 2022-10-28 10:47:42 +01:00
tdx-guest.h virt: Add TDX guest driver 2022-11-17 11:04:23 -08:00
tee.h tee: remove flags TEE_IOCTL_SHM_MAPPED and TEE_IOCTL_SHM_DMA_BUF 2022-04-26 10:17:03 +02:00
termios.h
thermal.h
time_types.h
time.h
timerfd.h
times.h
timex.h
tiocl.h
tipc_config.h net, uapi: remove inclusion of arpa/inet.h 2022-04-06 13:48:02 +01:00
tipc_netlink.h
tipc_sockets_diag.h
tipc.h
tls.h net: tls: Add ARIA-GCM algorithm 2022-09-27 17:29:09 -07:00
toshiba.h
tty_flags.h
tty.h tty: Add N_CAN327 line discipline ID for ELM327 based CAN driver 2022-06-27 16:25:41 +02:00
types.h linux/types.h: reinstate "__bitwise__" macro for user space use 2022-05-25 10:08:59 -07:00
ublk_cmd.h ublk_drv: add mechanism for supporting unprivileged ublk device 2023-01-29 15:18:34 -07:00
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 treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
usbip.h usbip: add USBIP_URB_* URB transfer flags 2022-08-31 09:07:53 +02:00
userfaultfd.h mm: userfaultfd: add UFFDIO_CONTINUE_MODE_WP to install WP PTEs 2023-04-05 19:42:48 -07:00
userio.h
utime.h
utsname.h
uuid.h uuid: Decouple guid_t and uuid_le types and respective macros 2023-01-31 15:57:19 +01:00
uvcvideo.h media: uvcvideo: Silence memcpy() run-time false positive warnings 2023-01-15 23:45:15 +02:00
v4l2-common.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
v4l2-controls.h media: meye: remove this deprecated driver 2023-01-22 09:54:31 +01:00
v4l2-dv-timings.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
v4l2-mediabus.h headers: Remove some left-over license text in include/uapi/linux/v4l2-* 2022-12-07 17:58:46 +01:00
v4l2-subdev.h media: subdev: add stream based configuration 2023-01-22 09:38:20 +01:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h vdpa: merge functionally duplicated dev_features attributes 2022-12-28 05:09:46 -05:00
vduse.h vduse: Support querying information of IOVA regions 2022-08-11 04:26:08 -04:00
veth.h
vfio_ccw.h
vfio_zdev.h vfio-pci/zdev: different maxstbl for interpreted devices 2022-07-11 09:54:37 +02:00
vfio.h vfio/type1: exclude mdevs from VFIO_UPDATE_VADDR 2023-02-09 11:39:14 -07:00
vhost_types.h vhost-vdpa: Introduce RESUME backend feature bit 2023-02-20 19:26:56 -05:00
vhost.h vhost-vdpa: uAPI to resume the device 2023-02-20 19:26:56 -05:00
videodev2.h media: Add Y210, Y212 and Y216 formats 2023-01-20 17:46:00 +02:00
virtio_9p.h treewide: uapi: Replace zero-length arrays with flexible-array members 2022-06-28 21:26:05 +02:00
virtio_balloon.h
virtio_blk.h virtio_blk: mark all zone fields LE 2023-02-15 06:46:22 -05:00
virtio_bt.h virtio_bt: Fix alignment in configuration struct 2022-12-12 14:19:23 -08:00
virtio_config.h virtio: queue_reset: add VIRTIO_F_RING_RESET 2022-08-11 04:06:40 -04:00
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpio.h
virtio_gpu.h
virtio_i2c.h
virtio_ids.h virtio: fix virtio transitional ids 2022-05-10 07:22:28 -04:00
virtio_input.h
virtio_iommu.h
virtio_mem.h
virtio_mmio.h
virtio_net.h uapi/linux/virtio_net.h: Added USO types. 2022-12-12 09:29:56 +00:00
virtio_pci.h virtio_pci: struct virtio_pci_common_cfg add queue_reset 2022-08-11 04:06:40 -04:00
virtio_pcidev.h
virtio_pmem.h
virtio_ring.h virtio: kerneldocs fixes and enhancements 2022-08-16 01:40:24 -04:00
virtio_rng.h
virtio_scmi.h
virtio_scsi.h
virtio_snd.h
virtio_types.h
virtio_vsock.h
vm_sockets_diag.h
vm_sockets.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
x25.h
xattr.h
xdp_diag.h
xfrm.h xfrm: add new packet offload flag 2022-12-05 10:30:47 +01:00
xilinx-v4l2-controls.h
zorro_ids.h
zorro.h