twx-linux/include/linux
Zach O'Keefe 7d8faaf155 mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse
This idea was introduced by David Rientjes[1].

Introduce a new madvise mode, MADV_COLLAPSE, that allows users to request
a synchronous collapse of memory at their own expense.

The benefits of this approach are:

* CPU is charged to the process that wants to spend the cycles for the
  THP
* Avoid unpredictable timing of khugepaged collapse

Semantics

This call is independent of the system-wide THP sysfs settings, but will
fail for memory marked VM_NOHUGEPAGE.  If the ranges provided span
multiple VMAs, the semantics of the collapse over each VMA is independent
from the others.  This implies a hugepage cannot cross a VMA boundary.  If
collapse of a given hugepage-aligned/sized region fails, the operation may
continue to attempt collapsing the remainder of memory specified.

The memory ranges provided must be page-aligned, but are not required to
be hugepage-aligned.  If the memory ranges are not hugepage-aligned, the
start/end of the range will be clamped to the first/last hugepage-aligned
address covered by said range.  The memory ranges must span at least one
hugepage-sized region.

All non-resident pages covered by the range will first be
swapped/faulted-in, before being internally copied onto a freshly
allocated hugepage.  Unmapped pages will have their data directly
initialized to 0 in the new hugepage.  However, for every eligible
hugepage aligned/sized region to-be collapsed, at least one page must
currently be backed by memory (a PMD covering the address range must
already exist).

Allocation for the new hugepage may enter direct reclaim and/or
compaction, regardless of VMA flags.  When the system has multiple NUMA
nodes, the hugepage will be allocated from the node providing the most
native pages.  This operation operates on the current state of the
specified process and makes no persistent changes or guarantees on how
pages will be mapped, constructed, or faulted in the future

Return Value

If all hugepage-sized/aligned regions covered by the provided range were
either successfully collapsed, or were already PMD-mapped THPs, this
operation will be deemed successful.  On success, process_madvise(2)
returns the number of bytes advised, and madvise(2) returns 0.  Else, -1
is returned and errno is set to indicate the error for the most-recently
attempted hugepage collapse.  Note that many failures might have occurred,
since the operation may continue to collapse in the event a single
hugepage-sized/aligned region fails.

	ENOMEM	Memory allocation failed or VMA not found
	EBUSY	Memcg charging failed
	EAGAIN	Required resource temporarily unavailable.  Try again
		might succeed.
	EINVAL	Other error: No PMD found, subpage doesn't have Present
		bit set, "Special" page no backed by struct page, VMA
		incorrectly sized, address not page-aligned, ...

Most notable here is ENOMEM and EBUSY (new to madvise) which are intended
to provide the caller with actionable feedback so they may take an
appropriate fallback measure.

Use Cases

An immediate user of this new functionality are malloc() implementations
that manage memory in hugepage-sized chunks, but sometimes subrelease
memory back to the system in native-sized chunks via MADV_DONTNEED;
zapping the pmd.  Later, when the memory is hot, the implementation could
madvise(MADV_COLLAPSE) to re-back the memory by THPs to regain hugepage
coverage and dTLB performance.  TCMalloc is such an implementation that
could benefit from this[2].

Only privately-mapped anon memory is supported for now, but additional
support for file, shmem, and HugeTLB high-granularity mappings[2] is
expected.  File and tmpfs/shmem support would permit:

* Backing executable text by THPs.  Current support provided by
  CONFIG_READ_ONLY_THP_FOR_FS may take a long time on a large system which
  might impair services from serving at their full rated load after
  (re)starting.  Tricks like mremap(2)'ing text onto anonymous memory to
  immediately realize iTLB performance prevents page sharing and demand
  paging, both of which increase steady state memory footprint.  With
  MADV_COLLAPSE, we get the best of both worlds: Peak upfront performance
  and lower RAM footprints.
* Backing guest memory by hugapages after the memory contents have been
  migrated in native-page-sized chunks to a new host, in a
  userfaultfd-based live-migration stack.

[1] https://lore.kernel.org/linux-mm/d098c392-273a-36a4-1a29-59731cdf5d3d@google.com/
[2] https://github.com/google/tcmalloc/tree/master/tcmalloc

[jrdr.linux@gmail.com: avoid possible memory leak in failure path]
  Link: https://lkml.kernel.org/r/20220713024109.62810-1-jrdr.linux@gmail.com
[zokeefe@google.com add missing kfree() to madvise_collapse()]
  Link: https://lore.kernel.org/linux-mm/20220713024109.62810-1-jrdr.linux@gmail.com/
  Link: https://lkml.kernel.org/r/20220713161851.1879439-1-zokeefe@google.com
[zokeefe@google.com: delay computation of hpage boundaries until use]]
  Link: https://lkml.kernel.org/r/20220720140603.1958773-4-zokeefe@google.com
Link: https://lkml.kernel.org/r/20220706235936.2197195-10-zokeefe@google.com
Signed-off-by: Zach O'Keefe <zokeefe@google.com>
Signed-off-by: "Souptick Joarder (HPE)" <jrdr.linux@gmail.com>
Suggested-by: David Rientjes <rientjes@google.com>
Cc: Alex Shi <alex.shi@linux.alibaba.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Chris Kennelly <ckennelly@google.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: David Hildenbrand <david@redhat.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Hugh Dickins <hughd@google.com>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Pasha Tatashin <pasha.tatashin@soleen.com>
Cc: Pavel Begunkov <asml.silence@gmail.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Rongwei Wang <rongwei.wang@linux.alibaba.com>
Cc: SeongJae Park <sj@kernel.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Yang Shi <shy828301@gmail.com>
Cc: Zi Yan <ziy@nvidia.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2022-09-11 20:25:46 -07:00
..
amba
atomic
avf
bcma
byteorder
can can: dev: add generic function can_eth_ioctl_hwts() 2022-07-28 11:44:30 +02:00
ceph libceph: clean up ceph_osdc_start_request prototype 2022-08-03 14:05:39 +02:00
clk
comedi
crush
decompress
device
dma pci-v5.20-changes 2022-08-04 19:30:35 -07:00
dsa add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
extcon
firmware Pin control bulk changes for v6.0: 2022-08-10 11:01:44 -07:00
fpga
fsl
gpio gpio: updates for v6.0-rc1 2022-08-04 18:34:05 -07:00
greybus
hsi
i3c
iio
input
irqchip irqchip/mmp: Declare init functions in common header file 2022-07-25 09:42:24 +01:00
isdn
lockd lockd: detect and reject lock arguments that overflow 2022-08-04 10:28:48 -04:00
mailbox mailbox: mtk-cmdq: Remove proprietary cmdq_task_cb 2022-08-02 15:06:57 -05:00
mdio add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
mfd - Core Frameworks 2022-08-06 10:25:16 -07:00
mlx4
mlx5 net/mlx5: Avoid false positive lockdep warning by adding lock_class_key 2022-08-22 12:57:08 -07:00
mmc mmc: core: Add support for SDIO wakeup interrupt 2022-07-26 16:58:31 +02:00
mtd SPI NOR core changes: 2022-08-01 21:31:22 +02:00
mux
net/intel
netfilter
netfilter_arp
netfilter_bridge netfilter: ebtables: reject blobs that don't provide all entry points 2022-08-23 18:23:15 +02:00
netfilter_ipv4
netfilter_ipv6
pcs
perf
phy
pinctrl
platform_data fbdev fixes and updates for kernel v5.20-rc1 2022-08-07 09:53:58 -07:00
power
qed
raid
regulator regulator: Consumer load management improvements 2022-07-28 00:01:30 +01:00
remoteproc
reset
rpmsg
rtc
sched - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
soc SPDX changes for 6.0-rc1 2022-08-04 12:12:54 -07:00
soundwire sound updates for 6.0-rc1 2022-08-06 10:19:51 -07:00
spi
ssb
sunrpc NFS client updates for Linux 5.20 2022-08-10 14:04:32 -07:00
surface_aggregator
ulpi
unaligned
usb SPDX changes for 6.0-rc1 2022-08-04 12:12:54 -07:00
8250_pci.h
a.out.h
acct.h
acpi_agdi.h
acpi_dma.h
acpi_iort.h
acpi_mdio.h
acpi_pmtmr.h
acpi_viot.h
acpi.h More ACPI updates for 5.20-rc1 2022-08-11 13:26:09 -07:00
adb.h
adfs_fs.h
adreno-smmu-priv.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
alcor_pci.h
align.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
anon_inodes.h
aperture.h
apm_bios.h
apm-emulation.h
apple_bl.h
apple-gmux.h
apple-mailbox.h
arch_topology.h
arm_ffa.h
arm_sdei.h
arm-cci.h
arm-smccc.h
armada-37xx-rwtm-mailbox.h
ascii85.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1_encoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h
atalk.h
ath9k_platform.h
atm_tcp.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
atm.h
atmdev.h
atmel_pdc.h
atmel-isc-media.h
atmel-mci.h
atmel-ssc.h
atomic.h
attribute_container.h
audit_arch.h
audit.h audit, io_uring, io-wq: Fix memory leak in io_sq_thread() and io_wqe_worker() 2022-08-04 08:33:54 -06:00
auto_dev-ioctl.h
auto_fs.h
auxiliary_bus.h
auxvec.h
average.h
backing-dev-defs.h bdi: remove enum wb_congested_state 2022-07-29 18:12:35 -07:00
backing-dev.h writeback: remove inode_to_wb_is_valid() 2022-07-29 18:07:15 -07:00
backlight.h
badblocks.h
balloon_compaction.h mm: Convert all PageMovable users to movable_operations 2022-08-02 12:34:03 -04:00
base64.h lib/base64: RFC4648-compliant base64 encoding 2022-08-02 17:14:47 -06:00
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h
bit_spinlock.h
bitfield.h
bitmap.h Bitmap patches for v6.0-rc1 2022-08-07 17:52:35 -07:00
bitops.h wait_on_bit: add an acquire memory barrier 2022-08-26 09:30:25 -07:00
bitrev.h
bits.h
blk_types.h
blk-cgroup.h
blk-crypto-profile.h
blk-crypto.h
blk-integrity.h
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h blk-mq: remove unused function blk_mq_queue_stopped() 2022-08-18 07:38:10 -06:00
blk-pm.h
blkdev.h for-5.20/block-2022-08-04 2022-08-04 20:00:14 -07:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h
bootmem_info.h
bottom_half.h
bpf_lirc.h
bpf_local_storage.h
bpf_lsm.h
bpf_trace.h
bpf_types.h
bpf_verifier.h
bpf-cgroup-defs.h
bpf-cgroup.h
bpf-netns.h
bpf.h bpf: Support bpf_trampoline on functions with IPMODIFY (e.g. livepatch) 2022-07-22 22:04:37 +02:00
bpfilter.h
bpfptr.h BPF: Fix potential bad pointer dereference in bpf_sys_bpf() 2022-08-04 16:57:43 -07:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf_ids.h bpf: Fix build error in case of !CONFIG_DEBUG_INFO_BTF 2022-07-22 09:07:07 -07:00
btf.h bpf: Add support for forcing kfunc args to be trusted 2022-07-21 21:03:09 -07:00
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h wait_on_bit: add an acquire memory barrier 2022-08-26 09:30:25 -07:00
bug.h
build_bug.h
build-salt.h
buildid.h
bvec.h
c2port.h
cache.h
cacheflush.h
cacheinfo.h
capability.h
cb710.h
cc_platform.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cfi.h
cgroup_api.h
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h Several core optimizations: 2022-08-03 09:45:08 -07:00
cgroup.h sched/psi: Remove redundant cgroup_psi() when !CONFIG_CGROUPS 2022-08-15 12:35:31 -10:00
circ_buf.h
clk-provider.h Merge branches 'clk-basic', 'clk-mtk', 'clk-devm-enable' and 'clk-ti-dt' into clk-next 2022-08-02 12:19:18 -07:00
clk.h
clkdev.h
clockchips.h
clocksource_ids.h
clocksource.h
cm4000_cs.h
cma.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h
compat.h
compiler_attributes.h
compiler_types.h
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler-version.h
compiler.h
completion.h
component.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
const.h
container_of.h
container.h
context_tracking_irq.h
context_tracking_state.h
context_tracking.h
cookie.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter.h
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h
cpufeature.h
cpufreq.h
cpuhotplug.h Updates for interrupt core and drivers: 2022-08-01 12:48:15 -07:00
cpuidle_haltpoll.h
cpuidle.h
cpumask_api.h
cpumask.h lib/cpumask: add inline cpumask_next_wrap() for UP 2022-08-15 11:00:44 -07:00
cpuset.h
crash_core.h
crash_dump.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h
cs5535.h
ctype.h
cuda.h
damon.h
dasd_mod.h
davinci_emac.h
dax.h
dca.h
dcache.h We have a good pile of various fixes and cleanups from Xiubo, Jeff, 2022-08-11 12:41:07 -07:00
dccp.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dev_printk.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h dm: fix dm-raid crash if md_handle_request() splits bio 2022-07-28 17:36:30 -04:00
device.h
devm-helpers.h
devpts_fs.h
dfl.h
digsig.h
dim.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-bufio.h dm bufio: Add DM_BUFIO_CLIENT_NO_SLEEP flag 2022-07-28 17:46:14 -04:00
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm-verity-loadpin.h
dma-buf.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence-unwrap.h
dma-fence.h
dma-heap.h
dma-iommu.h
dma-map-ops.h remoteproc updates for v5.20 2022-08-08 15:16:29 -07:00
dma-mapping.h dma-mapping: add flags to dma_map_ops to indicate PCI P2PDMA support 2022-07-26 07:27:48 -04:00
dma-resv.h
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.h
ds2782_battery.h
dtlk.h
dtpm.h
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi_embedded_fw.h
efi-bgrt.h
efi.h EFI efivars sysfs interface removal 2022-08-03 14:41:36 -07:00
efs_vh.h
eisa.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote-lto.h
elfnote.h
enclosure.h
energy_model.h
entry-common.h
entry-kvm.h
err.h
errname.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h
ethtool_netlink.h
ethtool.h
eventfd.h
eventpoll.h
evm.h
export-internal.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject-usercopy.h
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fiemap.h
file.h
fileattr.h
filter.h
find.h
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_proportions.h
font.h
fortify-string.h
fprobe.h
freelist.h
freezer.h
frontswap.h
fs_api.h
fs_context.h
fs_enet_pd.h
fs_parser.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_types.h
fs_uart_pd.h
fs.h io_uring-6.0-2022-08-13 2022-08-13 13:28:54 -07:00
fscache-cache.h
fscache.h This was a moderately busy cycle for documentation, but nothing all that 2022-08-02 19:24:24 -07:00
fscrypt.h fscrypt: add fscrypt_context_for_new_inode 2022-08-03 00:54:11 +02:00
fsi-occ.h
fsi-sbefifo.h
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h
fsnotify.h
fsverity.h
ftrace_irq.h
ftrace.h ftrace: Allow IPMODIFY and DIRECT ops on the same function 2022-07-22 22:04:30 +02:00
futex.h
fwnode_mdio.h
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp_api.h
gfp_types.h Bitmap patches for v6.0-rc1 2022-08-07 17:52:35 -07:00
gfp.h
glob.h
gnss.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.h
greybus.h
hardirq.h
hash.h
hashtable_api.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hidden.h
hiddev.h
hidraw.h
highmem-internal.h highmem: Make __kunmap_{local,atomic}() take const void pointer 2022-07-25 17:45:40 +02:00
highmem.h highmem: delete a sentence from kmap_local_page() kdocs 2022-08-08 18:06:46 -07:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
hisi_acc_qm.h
hmm.h
host1x_context_bus.h
host1x.h
hp_sdc.h
hpet.h
hrtimer_api.h
hrtimer_defs.h
hrtimer.h
htcpld.h
hte.h
huge_mm.h mm/madvise: introduce MADV_COLLAPSE sync hugepage collapse 2022-09-11 20:25:46 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h mm, hwpoison, hugetlb: support saving mechanism of raw error pages 2022-08-08 18:06:44 -07:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
hypervisor.h PCI: Extend isolated function probing to s390 2022-07-22 16:06:03 -05:00
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-mux.h
i2c-smbus.h
i2c.h i2c: extend documentation about retvals of master_xfer functions 2022-07-26 23:13:36 +02:00
i8042.h
i8253.h
icmp.h
icmpv6.h
idle_inject.h
idr.h
ieee80211.h wifi: ieee80211: add helper functions for detecting TM/FTM frames 2022-07-22 14:28:22 +02:00
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
if_ether.h
if_fddi.h
if_hsr.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_rmnet.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
if_tap.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h
imx-media.h
in6.h
in.h
indirect_call_wrapper.h
inet_diag.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_syscalls.h
init_task.h
init.h
initrd.h
inotify.h
input.h
instruction_pointer.h
instrumentation.h
instrumented.h
integrity.h
intel_rapl.h
intel_th.h
intel-ish-client-if.h
intel-svm.h
interconnect-provider.h
interconnect.h
interrupt.h
interval_tree_generic.h
interval_tree.h
io_uring_types.h io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
io_uring.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io-pgtable.h
io.h
ioam6_genl.h
ioam6_iptunnel.h
ioam6.h
ioasid.h
iocontext.h
iomap.h New code for 6.0: 2022-08-11 13:11:49 -07:00
iommu-helper.h
iommu.h
iopoll.h
ioport.h
ioprio.h
iosys-map.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi.h
ipv6_route.h
ipv6.h
irq_poll.h
irq_sim.h
irq_work.h
irq.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa-dma.h PCI: Move isa_dma_bridge_buggy out of asm/dma.h 2022-07-22 17:24:47 -05:00
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
iversion.h
jbd2.h Add new ioctls to set and get the file system UUID in the ext4 2022-08-04 20:13:46 -07:00
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan-enabled.h
kasan-tags.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kcsan-checks.h
kcsan.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_read_file.h
kernel_stat.h
kernel-page-flags.h
kernel.h
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h
keyboard.h
keyctl.h
kfence.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_api.h
kobject_ns.h
kobject.h
kprobes.h
kref_api.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kstrtox.h
kthread.h
ktime_api.h
ktime.h
kvm_dirty_ring.h
kvm_host.h KVM: Rename mmu_notifier_* to mmu_invalidate_* 2022-08-19 04:05:41 -04:00
kvm_irqfd.h
kvm_para.h
kvm_types.h Merge remote-tracking branch 'kvm/next' into kvm-next-5.20 2022-08-01 03:21:00 -04:00
l2tp.h
lantiq.h
lapb.h net: add missing includes and forward declarations under net/ 2022-07-22 12:53:22 +01:00
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-class-multicolor.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-ti-lmu-common.h
leds.h
libata.h ata: libata: Set __ATA_BASE_SHT max_sectors 2022-08-21 01:29:50 +09:00
libfdt_env.h
libfdt.h
libgcc.h
libnvdimm.h cxl/region: Introduce cxl_pmem_region objects 2022-07-26 12:23:01 -07:00
libps2.h
license.h
limits.h
linear_range.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
list.h
litex.h
livepatch.h
llc.h
llist_api.h
llist.h
local_lock_internal.h
local_lock.h
lockdep_api.h
lockdep_types.h
lockdep.h
lockref.h
log2.h
logic_iomem.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hook_defs.h
lsm_hooks.h
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
map_benchmark.h
maple.h
marvell_phy.h
math64.h
math.h
mbcache.h mbcache: automatically delete entries from cache on freeing 2022-08-02 23:56:25 -04:00
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_aux.h
mei_cl_bus.h
mem_encrypt.h
memblock.h
memcontrol.h Revert "memcg: cleanup racy sum avoidance code" 2022-08-28 14:02:44 -07:00
memfd.h
memory_hotplug.h
memory.h
mempolicy.h
mempool.h
memregion.h
memremap.h
memstick.h
mhi_ep.h
mhi.h
micrel_phy.h
microchipphy.h
migrate_mode.h
migrate.h - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
mii_timestamper.h
mii.h
min_heap.h
minmax.h
misc_cgroup.h
miscdevice.h misc: Mark MICROCODE_MINOR unused 2022-07-27 14:04:52 +02:00
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_api.h
mm_inline.h
mm_types_task.h
mm_types.h
mm.h mm: re-allow pinning of zero pfns (again) 2022-08-28 14:02:44 -07:00
mman.h
mmap_lock.h
mmdebug.h ceph: switch back to testing for NULL folio->private in ceph_dirty_folio 2022-08-03 00:54:12 +02:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: cleanup is_highmem() 2022-07-29 18:07:19 -07:00
mnt_idmapping.h
mnt_namespace.h
mod_devicetable.h
module_signature.h
module.h
moduleloader.h
moduleparam.h
most.h
mount.h
moxtet.h
mpage.h fs: remove the nobh helpers 2022-08-02 12:34:04 -04:00
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute_base.h
mroute.h
msdos_fs.h
msdos_partition.h
msg.h
msi.h
mtio.h
mutex_api.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
namei.h
nd.h
ndctl.h
net.h Updates to various subsystems which I help look after. lib, ocfs2, 2022-08-07 10:03:24 -07:00
netdev_features.h
netdevice.h net: Fix data-races around sysctl_devconf_inherit_init_net. 2022-08-24 13:46:58 +01:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_netdev.h
netfilter.h
netfs.h Folio changes for 6.0 2022-08-03 10:35:43 -07:00
netlink.h
netpoll.h
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS: Cleanup to remove unused flag NFS_CONTEXT_RESEND_WRITES 2022-08-13 13:02:14 -04:00
nfs_iostat.h
nfs_page.h NFS: Improve write error tracing 2022-08-09 14:11:34 -04:00
nfs_ssc.h NFSD: Fix strncpy() fortify warning 2022-07-29 20:16:58 -04:00
nfs_xdr.h nfs: only issue commit in DIO codepath if we have uncommitted data 2022-07-23 15:28:59 -04:00
nfs.h
nfsacl.h
nitro_enclaves.h
nl802154.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
nls.h
nmi.h watchdog: export lockup_detector_reconfigure 2022-07-27 21:35:32 +10:00
node.h
nodemask.h lib/nodemask: inline next_node_in() and node_random() 2022-08-01 08:13:21 -07:00
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme-auth.h nvme-auth: Diffie-Hellman key exchange support 2022-08-02 17:14:49 -06:00
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme.h nvme: add definitions for NVMe In-Band authentication 2022-08-02 17:14:47 -06:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
objagg.h
objtool.h This was a moderately busy cycle for documentation, but nothing all that 2022-08-02 19:24:24 -07:00
of_address.h
of_clk.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h Devicetree updates for v6.0: 2022-08-04 18:08:34 -07:00
oid_registry.h
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once_lite.h
once.h
oom.h
openvswitch.h
osq_lock.h
overflow.h
packing.h
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page_reporting.h
page_table_check.h
page-flags-layout.h
page-flags.h mm: hugetlb_vmemmap: move code comments to vmemmap_dedup.rst 2022-08-08 18:06:43 -07:00
page-isolation.h
pageblock-flags.h
pagemap.h - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
pagevec.h - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
pagewalk.h
panic_notifier.h
panic.h
parman.h
parport_pc.h
parport.h
parser.h
part_stat.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h cxl for 6.0 2022-08-10 11:07:26 -07:00
pci-acpi.h
pci-ats.h
pci-doe.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h PCI/P2PDMA: Remove pci_p2pdma_[un]map_sg() 2022-07-26 07:28:08 -04:00
pci.h PCI: Remove pci_mmap_page_range() wrapper 2022-07-29 12:08:44 -05:00
pcs-lynx.h
pcs-rzn1-miic.h
pda_power.h
pe.h
peci-cpu.h
peci.h
percpu_counter.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event_api.h
perf_event.h
perf_regs.h
personality.h
pfn_t.h
pfn.h
pgtable_api.h
pgtable.h
phonet.h
phy_fixed.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
phy_led_triggers.h
phy.h
phylink.h
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h ITER_PIPE: fold data_start() and pipe_space_for_user() together 2022-08-08 22:37:19 -04:00
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
platform_profile.h
pldmfw.h
plist.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pm-trace.h
pm.h
pmbus.h
pmu.h
pnp.h
poison.h
poll.h
polynomial.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h
powercap.h
ppp_channel.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
ppp_defs.h flow_dissector: Add PPPoE dissectors 2022-07-26 09:49:12 -07:00
ppp-comp.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
pps_kernel.h
pr.h
prandom.h
preempt.h
prefetch.h
prime_numbers.h
printk.h
prmt.h
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h
pruss_driver.h
psci.h
pseudo_fs.h
psi_types.h
psi.h sched/psi: Remove unused parameter nbytes of psi_trigger_create() 2022-08-15 12:35:25 -10:00
psp-sev.h
psp-tee.h
pstore_blk.h
pstore_ram.h
pstore_zone.h
pstore.h
ptdump.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp_kvm.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
ptp_pch.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
ptr_ring.h
ptrace_api.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qcom-geni-se.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h radix-tree: replace gfp.h inclusion with gfp_types.h 2022-08-14 13:31:03 -07:00
raid_class.h
ramfs.h
random.h random: handle archrandom with multiple longs 2022-07-25 13:26:14 +02:00
randomize_kstack.h
range.h
ras.h
ratelimit_types.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree_types.h
rbtree.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate_trace.h
rcupdate_wait.h
rcupdate.h
rcutiny.h
rcutree.h
rcuwait_api.h
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
ref_tracker.h
refcount_api.h
refcount.h
regmap.h
regset.h
relay.h
remoteproc.h remoteproc: rename len of rpoc_vring to num 2022-08-11 04:06:37 -04:00
resctrl.h
reset-controller.h
reset.h
resource_ext.h
resource.h
restart_block.h
resume_user_mode.h
rethook.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rv.h rv/include: Add deterministic automata monitor definition via C macros 2022-07-30 14:01:28 -04:00
rwbase_rt.h
rwlock_api_smp.h
rwlock_rt.h
rwlock_types.h
rwlock.h
rwsem.h
s3c_adc_battery.h
sbitmap.h
scatterlist.h lib/scatterlist: add flag for indicating P2PDMA segments in an SGL 2022-07-26 07:27:47 -04:00
scc.h
sched_clock.h
sched.h Various fixes: a deadline scheduler fix, a migration fix, a Sparse fix and a comment fix. 2022-08-06 17:34:06 -07:00
scmi_protocol.h Power management updates for 5.20-rc1 2022-08-02 11:17:00 -07:00
scpi_protocol.h
screen_info.h
scs.h
sctp.h
scx200_gpio.h
scx200.h
seccomp.h
secretmem.h
securebits.h
security.h SafeSetID changes for Linux 6.0 2022-08-02 15:12:13 -07:00
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
seq_file.h
seqlock_api.h
seqlock.h
serdev.h
serial_8250.h
serial_bcm63xx.h
serial_core.h TTY / Serial driver changes for 6.0-rc1 2022-08-08 11:31:40 -07:00
serial_max3100.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
set_memory.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h mm/shmem: fix chattr fsflags support in tmpfs 2022-08-20 15:17:45 -07:00
shrinker.h
signal_types.h
signal.h
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2022-07-22 16:55:44 -07:00
skmsg.h net: fix refcount bug in sk_psock_get (2) 2022-08-10 21:47:58 -07:00
slab_def.h
slab.h
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp_types.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h Networking changes for 6.0. 2022-08-03 16:29:08 -07:00
sockptr.h
softirq.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_api.h
spinlock_rt.h
spinlock_types_raw.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h
stackleak.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_call_types.h
static_call.h
static_key.h
stdarg.h
stddef.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h
stringhash.h
stringify.h
sungem_phy.h add missing includes and forward declarations to networking includes under linux/ 2022-07-28 11:29:36 +02:00
sunserialcore.h
sunxi-rsb.h
superhyway.h
surface_acpi_notify.h
suspend.h
svga.h
sw842.h
swab.h
swait_api.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h - The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe 2022-08-05 16:32:45 -07:00
swapfile.h
swapops.h mm, hwpoison: make unpoison aware of raw error info in hwpoisoned hugepage 2022-08-08 18:06:44 -07:00
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscall_user_dispatch.h
syscalls_api.h
syscalls.h
syscore_ops.h
sysctl.h mm: hugetlb_vmemmap: improve hugetlb_vmemmap code readability 2022-08-08 18:06:43 -07:00
sysfb.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tee_drv.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h thermal/core: Add thermal_trip in thermal_zone 2022-07-28 17:29:56 +02:00
thread_info.h
threads.h
thunderbolt.h
ti_wilink_st.h
ti-emif-sram.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time32.h
time64.h time: Correct the prototype of ns_to_kernel_old_timeval and ns_to_timespec64 2022-08-09 20:02:13 +02:00
time_namespace.h
time.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm_eventlog.h tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH 2022-08-03 23:56:20 +03:00
tpm.h
trace_clock.h
trace_events.h
trace_recursion.h
trace_seq.h
trace.h
tracefs.h
tracepoint-defs.h
tracepoint.h Tracing updates for 5.20 / 6.0 2022-08-05 09:41:12 -07:00
transport_class.h
ts-nbus.h
tsacct_kern.h
tty_buffer.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty_port.h
tty.h
typecheck.h
types.h
u64_stats_sync_api.h
u64_stats_sync.h
uacce.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h
uio.h get rid of non-advancing variants 2022-08-08 22:37:24 -04:00
umh.h
unicode.h
units.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_events.h
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h mm/uffd: reset write protection when unregister with wp-mode 2022-08-20 15:17:45 -07:00
usermode_driver.h
util_macros.h
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h vdpa: Add suspend operation 2022-08-11 04:31:14 -04:00
verification.h
vermagic.h
vexpress.h
vfio_pci_core.h VFIO updates for v6.0-rc1 2022-08-06 08:59:35 -07:00
vfio.h vfio: Replace phys_pfn with pages for vfio_pin_pages() 2022-07-25 13:41:22 -06:00
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_anchor.h virtio: replace restricted mem access flag with callback 2022-08-01 07:42:49 +02:00
virtio_byteorder.h
virtio_caif.h
virtio_config.h virtio: kerneldocs fixes and enhancements 2022-08-16 01:40:24 -04:00
virtio_console.h
virtio_dma_buf.h
virtio_net.h
virtio_pci_legacy.h
virtio_pci_modern.h virtio_pci: introduce helper to get/set queue reset 2022-08-11 04:06:40 -04:00
virtio_ring.h virtio_ring: split: stop __vring_new_virtqueue as export symbol 2022-08-11 04:06:38 -04:00
virtio_vsock.h
virtio.h virtio: kerneldocs fixes and enhancements 2022-08-16 01:40:24 -04:00
vlynq.h
vm_event_item.h mm: add DEVICE_ZONE to FOR_ALL_ZONES 2022-08-20 15:17:45 -07:00
vmacache.h
vmalloc.h
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
w1.h
wait_api.h
wait_bit.h wait_on_bit: add an acquire memory barrier 2022-08-26 09:30:25 -07:00
wait.h wait: Fix __wait_event_hrtimeout for RT/DL tasks 2022-07-28 12:35:12 +02:00
watch_queue.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue_api.h
workqueue.h
writeback.h for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
ww_mutex.h
wwan.h
xarray.h
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd_errors.h
zstd_lib.h
zstd.h
zutil.h