linux-stable/include/linux
Peter Xu 2bad466cc9 mm/uffd: UFFD_FEATURE_WP_UNPOPULATED
Patch series "mm/uffd: Add feature bit UFFD_FEATURE_WP_UNPOPULATED", v4.

The new feature bit makes anonymous memory acts the same as file memory on
userfaultfd-wp in that it'll also wr-protect none ptes.

It can be useful in two cases:

(1) Uffd-wp app that needs to wr-protect none ptes like QEMU snapshot,
    so pre-fault can be replaced by enabling this flag and speed up
    protections

(2) It helps to implement async uffd-wp mode that Muhammad is working on [1]

It's debatable whether this is the most ideal solution because with the
new feature bit set, wr-protect none pte needs to pre-populate the
pgtables to the last level (PAGE_SIZE).  But it seems fine so far to
service either purpose above, so we can leave optimizations for later.

The series brings pte markers to anonymous memory too.  There's some
change in the common mm code path in the 1st patch, great to have some eye
looking at it, but hopefully they're still relatively straightforward.


This patch (of 2):

This is a new feature that controls how uffd-wp handles none ptes.  When
it's set, the kernel will handle anonymous memory the same way as file
memory, by allowing the user to wr-protect unpopulated ptes.

File memories handles none ptes consistently by allowing wr-protecting of
none ptes because of the unawareness of page cache being exist or not. 
For anonymous it was not as persistent because we used to assume that we
don't need protections on none ptes or known zero pages.

One use case of such a feature bit was VM live snapshot, where if without
wr-protecting empty ptes the snapshot can contain random rubbish in the
holes of the anonymous memory, which can cause misbehave of the guest when
the guest OS assumes the pages should be all zeros.

QEMU worked it around by pre-populate the section with reads to fill in
zero page entries before starting the whole snapshot process [1].

Recently there's another need raised on using userfaultfd wr-protect for
detecting dirty pages (to replace soft-dirty in some cases) [2].  In that
case if without being able to wr-protect none ptes by default, the dirty
info can get lost, since we cannot treat every none pte to be dirty (the
current design is identify a page dirty based on uffd-wp bit being
cleared).

In general, we want to be able to wr-protect empty ptes too even for
anonymous.

This patch implements UFFD_FEATURE_WP_UNPOPULATED so that it'll make
uffd-wp handling on none ptes being consistent no matter what the memory
type is underneath.  It doesn't have any impact on file memories so far
because we already have pte markers taking care of that.  So it only
affects anonymous.

The feature bit is by default off, so the old behavior will be maintained.
Sometimes it may be wanted because the wr-protect of none ptes will
contain overheads not only during UFFDIO_WRITEPROTECT (by applying pte
markers to anonymous), but also on creating the pgtables to store the pte
markers.  So there's potentially less chance of using thp on the first
fault for a none pmd or larger than a pmd.

The major implementation part is teaching the whole kernel to understand
pte markers even for anonymously mapped ranges, meanwhile allowing the
UFFDIO_WRITEPROTECT ioctl to apply pte markers for anonymous too when the
new feature bit is set.

Note that even if the patch subject starts with mm/uffd, there're a few
small refactors to major mm path of handling anonymous page faults.  But
they should be straightforward.

With WP_UNPOPUATED, application like QEMU can avoid pre-read faults all
the memory before wr-protect during taking a live snapshot.  Quotting from
Muhammad's test result here [3] based on a simple program [4]:

  (1) With huge page disabled
  echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
  ./uffd_wp_perf
  Test DEFAULT: 4
  Test PRE-READ: 1111453 (pre-fault 1101011)
  Test MADVISE: 278276 (pre-fault 266378)
  Test WP-UNPOPULATE: 11712

  (2) With Huge page enabled
  echo always > /sys/kernel/mm/transparent_hugepage/enabled
  ./uffd_wp_perf
  Test DEFAULT: 4
  Test PRE-READ: 22521 (pre-fault 22348)
  Test MADVISE: 4909 (pre-fault 4743)
  Test WP-UNPOPULATE: 14448

There'll be a great perf boost for no-thp case, while for thp enabled with
extreme case of all-thp-zero WP_UNPOPULATED can be slower than MADVISE,
but that's low possibility in reality, also the overhead was not reduced
but postponed until a follow up write on any huge zero thp, so potentially
it is faster by making the follow up writes slower.

[1] https://lore.kernel.org/all/20210401092226.102804-4-andrey.gruzdev@virtuozzo.com/
[2] https://lore.kernel.org/all/Y+v2HJ8+3i%2FKzDBu@x1n/
[3] https://lore.kernel.org/all/d0eb0a13-16dc-1ac1-653a-78b7273781e3@collabora.com/
[4] https://github.com/xzpeter/clibs/blob/master/uffd-test/uffd-wp-perf.c

[peterx@redhat.com: comment changes, oneliner fix to khugepaged]
  Link: https://lkml.kernel.org/r/ZB2/8jPhD3fpx5U8@x1n
Link: https://lkml.kernel.org/r/20230309223711.823547-1-peterx@redhat.com
Link: https://lkml.kernel.org/r/20230309223711.823547-2-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
Cc: Muhammad Usama Anjum <usama.anjum@collabora.com>
Cc: Nadav Amit <nadav.amit@gmail.com>
Cc: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-04-05 19:42:44 -07:00
..
amba
atomic
avf
bcma
byteorder
can can: bittiming: can_calc_bittiming(): add missing parameter to no-op function 2023-02-08 21:53:24 +01:00
ceph
clk
comedi
crush
decompress
device driver core: bus: add bus_get_dev_root() function 2023-02-10 10:16:42 +01:00
dma dmaengine updates for v6.3 2023-02-24 17:18:54 -08:00
dsa
extcon
firmware ARM: SoC drivers for 6.3 2023-02-27 10:04:49 -08:00
fpga
fsl
gpio Core changes: 2023-02-22 11:05:56 -08:00
greybus
hsi
i3c i3c: fix device.h kernel-doc warnings 2023-02-16 13:42:22 +01:00
iio
input
irqchip
isdn
lockd lockd: set file_lock start and end when decoding nlm4 testargs 2023-03-14 14:00:55 -04:00
mailbox
mdio net: dsa: seville: ignore mscc-miim read errors from Lynx PCS 2023-02-26 18:31:37 +00:00
mfd We have one small patch to the clk core this time around. It fixes a corner 2023-02-25 15:16:23 -08:00
mlx4 v6.3 RDMA pull request 2023-02-24 15:11:03 -08:00
mlx5 v6.3 RDMA pull request 2023-02-24 15:11:03 -08:00
mmc MMC core: 2023-02-27 09:47:26 -08:00
mtd This pull request contains updates for JFFS2, UBI and UBIFS 2023-03-01 09:06:51 -08:00
mux
net/intel
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
pcs
perf ARM: 2023-02-25 11:30:21 -08:00
phy
pinctrl I2C for 6.3: 2023-02-24 17:12:23 -08:00
platform_data Input updates for 6.3 merge window: 2023-02-25 15:01:32 -08:00
power
pse-pd
qed
raid
regulator
remoteproc
reset
rpmsg rpmsg: glink: smem: Wrap driver context 2023-02-14 08:19:38 -08:00
rtc
sched lazy tlb: allow lazy tlb mm refcounting to be configurable 2023-03-28 16:20:08 -07:00
soc ARM: SoC drivers for 6.3 2023-02-27 10:04:49 -08:00
soundwire soundwire updates for 6.3 2023-02-24 17:29:52 -08:00
spi Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
ssb
sunrpc SUNRPC: Remove ->xpo_secure_port() 2023-02-20 09:20:55 -05:00
surface_aggregator Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
ulpi
unaligned
usb USB / Thunderbolt driver changes for 6.3-rc1 2023-02-24 12:07:00 -08:00
8250_pci.h
acct.h
acpi.h Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
acpi_agdi.h
acpi_apmt.h
acpi_dma.h
acpi_iort.h
acpi_mdio.h net: mdio: fix owner field for mdio buses registered using ACPI 2023-03-19 10:48:35 +00:00
acpi_pmtmr.h
acpi_viot.h
adb.h
adfs_fs.h
adreno-smmu-priv.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
alcor_pci.h
align.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amd-pstate.h
anon_inodes.h
aperture.h
apm-emulation.h
apm_bios.h
apple-gmux.h
apple-mailbox.h
apple_bl.h
arch_topology.h
arm-cci.h
arm-smccc.h
arm_ffa.h
arm_sdei.h
armada-37xx-rwtm-mailbox.h
ascii85.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1_encoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_tcp.h
atmdev.h
atmel-isc-media.h
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atomic.h
attribute_container.h
audit.h fanotify,audit: Allow audit to use the full permission event response 2023-02-07 12:53:53 +01:00
audit_arch.h
auto_dev-ioctl.h
auto_fs.h
auxiliary_bus.h
auxvec.h
average.h
backing-dev-defs.h
backing-dev.h
backlight.h
badblocks.h
balloon_compaction.h
base64.h
bcd.h include/linux/bcd.h: provide bcd_is_valid() helper 2023-02-09 23:01:49 +01:00
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h block: export bio_split_rw 2023-02-15 19:38:50 +01:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h
bitrev.h
bits.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 block: do not reverse request order when flushing plug list 2023-03-14 09:25:50 -06:00
blk-pm.h
blk_types.h
blkdev.h block: count 'ios' and 'sectors' when io is done for bio-based device 2023-03-15 09:25:04 -06:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h bootconfig: Increase max nodes of bootconfig from 1024 to 8192 for DCC support 2023-02-22 08:27:49 +09:00
bootmem_info.h
bottom_half.h
bpf-cgroup-defs.h
bpf-cgroup.h
bpf-netns.h
bpf.h bpf: Zeroing allocated object from slab in bpf memory allocator 2023-02-15 15:40:06 -08:00
bpf_lirc.h
bpf_local_storage.h
bpf_lsm.h
bpf_mem_alloc.h
bpf_trace.h
bpf_types.h
bpf_verifier.h bpf: Migrate release_on_unlock logic to non-owning ref semantics 2023-02-13 13:37:37 -08:00
bpfilter.h
bpfptr.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf.h
btf_ids.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build-salt.h
build_bug.h
buildid.h
bvec.h
c2port.h
cache.h
cacheflush.h
cacheinfo.h
capability.h capability: just use a 'u64' instead of a 'u32[2]' array 2023-03-01 10:01:22 -08:00
cb710.h
cc_platform.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cfi.h
cfi_types.h
cgroup-defs.h
cgroup.h
cgroup_api.h
cgroup_rdma.h
cgroup_refcnt.h
cgroup_subsys.h
circ_buf.h
clk-provider.h clk: Avoid invalid function names in CLK_OF_DECLARE() 2023-03-09 15:40:49 -08:00
clk.h
clkdev.h
clockchips.h
clocksource.h
clocksource_ids.h
cm4000_cs.h
cma.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h
compat.h
compiler-clang.h
compiler-gcc.h
compiler-version.h
compiler.h
compiler_attributes.h Remove Intel compiler support 2023-03-05 10:49:37 -08:00
compiler_types.h Remove Intel compiler support 2023-03-05 10:49:37 -08:00
completion.h
component.h
configfs.h
connector.h
console.h TTY/Serial driver updates for 6.3-rc1 2023-02-24 12:17:14 -08:00
console_struct.h
consolemap.h
const.h
container.h
container_of.h
context_tracking.h entry: Fix noinstr warning in __enter_from_user_mode() 2023-03-21 11:53:16 +01:00
context_tracking_irq.h
context_tracking_state.h entry: Fix noinstr warning in __enter_from_user_mode() 2023-03-21 11:53:16 +01:00
cookie.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h cpufreq: Make cpufreq_unregister_driver() return void 2023-02-09 20:19:18 +01:00
cpuhotplug.h ARM: 2023-02-25 11:30:21 -08:00
cpuidle.h
cpuidle_haltpoll.h
cpumask.h Fixes for 6.3-rc3: 2023-03-25 12:57:34 -07:00
cpumask_api.h
cpuset.h
crash_core.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
cred.h
crypto.h crypto: api - Remove completion function scaffolding 2023-02-13 18:35:15 +08:00
cs5535.h
ctype.h
cuda.h
damon.h
dasd_mod.h
davinci_emac.h
dax.h dax/hmem: Move hmem device registration to dax_hmem.ko 2023-02-10 17:33:34 -08:00
dca.h
dcache.h
dccp.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dev_printk.h
devcoredump.h
devfreq-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h dm: correct block comments format. 2023-02-14 14:23:06 -05:00
device.h driver core: fw_devlink: Add DL_FLAG_CYCLE support to device links 2023-02-08 13:37:54 +01:00
device_cgroup.h
devm-helpers.h
devpts_fs.h
dfl.h
digsig.h
dim.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-bufio.h dm: change "unsigned" to "unsigned int" 2023-02-14 14:23:06 -05:00
dm-dirty-log.h dm: correct block comments format. 2023-02-14 14:23:06 -05:00
dm-io.h dm: change "unsigned" to "unsigned int" 2023-02-14 14:23:06 -05:00
dm-kcopyd.h dm: change "unsigned" to "unsigned int" 2023-02-14 14:23:06 -05:00
dm-region-hash.h dm: correct block comments format. 2023-02-14 14:23:06 -05:00
dm-verity-loadpin.h
dm9000.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-map-ops.h dma-mapping: no need to pass a bus_type into get_arch_dma_ops() 2023-02-15 12:35:20 +01:00
dma-mapping.h
dma-resv.h
dmaengine.h dmaengine updates for v6.3 2023-02-24 17:18:54 -08:00
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_config.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.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-bgrt.h
efi.h efi: earlycon: Reprobe after parsing config tables 2023-03-13 23:28:43 +01:00
efi_embedded_fw.h
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 net: add helper eth_addr_add() 2023-02-06 19:06:58 +01:00
ethtool.h net: ethtool: extend ringparam set/get APIs for rx_push 2023-02-13 11:05:12 +00:00
ethtool_netlink.h
eventfd.h
eventpoll.h
evm.h
export-internal.h
export.h
exportfs.h flexible-array transformations for 6.3-rc1 2023-02-25 12:53:42 -08:00
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h fanotify: define struct members to hold response decision context 2023-02-07 12:53:53 +01:00
fault-inject-usercopy.h
fault-inject.h
fb.h Merge drm/drm-fixes into drm-misc-fixes 2023-03-13 10:14:05 +01:00
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fiemap.h
file.h
fileattr.h
filelock.h
filter.h
find.h cpumask: introduce for_each_cpu_or 2023-03-19 10:02:04 -07:00
fips.h
firewire.h Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
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.h - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
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
fscache-cache.h
fscache.h
fscrypt.h fsverity updates for 6.3 2023-02-20 12:33:41 -08:00
fsi-occ.h
fsi-sbefifo.h
fsi.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify_backend.h
fsverity.h
ftrace.h
ftrace_irq.h
futex.h
fwnode.h driver core: fw_devlink: Consolidate device link flag computation 2023-02-08 13:37:54 +01:00
fwnode_mdio.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
gfp_api.h
gfp_types.h kasan: remove PG_skip_kasan_poison flag 2023-03-28 16:20:16 -07:00
glob.h
gnss.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
greybus.h
group_cpus.h
hardirq.h
hash.h
hashtable.h
hashtable_api.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h HID: core: Provide new max_buffer_size attribute to over-ride the default 2023-02-23 11:51:56 +01:00
hid_bpf.h
hidden.h
hiddev.h
hidraw.h
highmem-internal.h highmem: Enhance is_kmap_addr() to check kmap_local_page() mappings 2023-02-13 14:16:35 +01:00
highmem.h kasan: call clear_page with a match-all tag instead of changing page tag 2023-03-28 16:20:09 -07:00
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hisi_acc_qm.h Char/Misc and other driver subsystem changes for 6.3-rc1 2023-02-24 12:47:33 -08:00
hmm.h
host1x.h
host1x_context_bus.h
hp_sdc.h
hpet.h
hrtimer.h
hrtimer_api.h
hrtimer_defs.h
hte.h
huge_mm.h mm/thp: rename TRANSPARENT_HUGEPAGE_NEVER_DAX to _UNSUPPORTED 2023-03-28 16:20:18 -07:00
hugetlb.h - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
hugetlb_cgroup.h mm/hugetlb: increase use of folios in alloc_huge_page() 2023-02-13 15:54:27 -08:00
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h hwmon: Deprecate [devm_]hwmon_device_register_with_groups 2023-02-16 11:34:19 -08:00
hwspinlock.h
hyperv.h Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-mux.h
i2c-smbus.h
i2c.h i2c: Switch .probe() to not take an id parameter 2023-03-09 21:59:11 +01:00
i8042.h
i8253.h
icmp.h
icmpv6.h
idle_inject.h
idr.h
ieee80211.h wifi: brcmfmac: p2p: Introduce generic flexible array frame member 2023-02-16 09:33:25 +01:00
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_hsr.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_rmnet.h
if_tap.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h integrity-v6.3 2023-02-22 12:36:25 -08:00
imx-media.h
in.h
in6.h
indirect_call_wrapper.h
inet.h
inet_diag.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_syscalls.h
init_task.h
initrd.h
inotify.h
input.h
instruction_pointer.h
instrumentation.h
instrumented.h
integrity.h
intel-ish-client-if.h
intel_rapl.h
intel_tcc.h
intel_th.h
intel_tpmi.h platform/x86/intel/tpmi: ADD tpmi external interface for tpmi feature drivers 2023-02-06 13:47:40 +01:00
interconnect-provider.h interconnect: fix provider registration API 2023-03-07 22:19:05 +02:00
interconnect.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h io-mapping: don't disable preempt on RT in io_mapping_map_atomic_wc(). 2023-03-28 16:20:16 -07:00
io-pgtable.h
io.h
io_uring.h block/io_uring: pass in issue_flags for uring_cmd task_work handling 2023-03-20 20:01:25 -06:00
io_uring_types.h io_uring: rename 'in_idle' to 'in_cancel' 2023-02-22 09:57:23 -07:00
ioam6.h
ioam6_genl.h
ioam6_iptunnel.h
ioasid.h
iocontext.h
iomap.h New code for 6.3: 2023-02-22 13:50:13 -08:00
iommu-helper.h
iommu.h iommufd for 6.3 2023-02-24 14:34:12 -08:00
iommufd.h
iopoll.h
ioport.h
ioprio.h
iosys-map.h
iova.h
iova_bitmap.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
irq_poll.h
irq_sim.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h iommufd for 6.3 2023-02-24 14:34:12 -08:00
irqdomain_defs.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa-dma.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
ism.h
iversion.h
jbd2.h Bug fixes and regressions for ext4, the most serious of which is a 2023-03-12 08:55:55 -07:00
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.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-page-flags.h
kernel.h tracing: Always use canonical ftrace path 2023-02-18 14:34:09 -05:00
kernel_read_file.h
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h KEYS: Add new function key_create() 2023-02-13 10:11:20 +02:00
keyboard.h
keyctl.h
kfence.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsan-checks.h
kmsan.h
kmsan_string.h
kmsan_types.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_api.h
kobject_ns.h
kprobes.h x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range 2023-02-21 08:49:16 +09:00
kref.h
kref_api.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kstrtox.h
kthread.h
ktime.h
ktime_api.h
kvm_dirty_ring.h
kvm_host.h KVM: update code comment in struct kvm_vcpu 2023-02-07 17:58:19 -08:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lantiq.h
lapb.h
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
libfdt.h
libfdt_env.h
libgcc.h
libnvdimm.h cxl/pmem: Fix nvdimm registration races 2023-02-13 17:01:05 -08:00
libps2.h
license.h
limits.h
linear_range.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
litex.h
livepatch.h
llc.h
llist.h
llist_api.h
local_lock.h
local_lock_internal.h
lockdep.h locking/lockdep: Remove lockdep_init_map_crosslock. 2023-02-06 15:31:05 +01:00
lockdep_api.h
lockdep_types.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
maple_tree.h maple_tree: add mas_init() function 2023-02-09 16:51:30 -08:00
marvell_phy.h
math.h
math64.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h net: phy: add genphy_c45_ethtool_get/set_eee() support 2023-02-13 11:12:31 +00:00
mei_aux.h
mei_cl_bus.h
mem_encrypt.h
memblock.h
memcontrol.h mm: vmscan: add a map_nr_max field to shrinker_info 2023-03-28 16:20:16 -07:00
memfd.h
memory-tiers.h
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
memregion.h dax/hmem: Convey the dax range via memregion_info() 2023-02-10 17:33:29 -08:00
memremap.h
memstick.h
mhi.h
mhi_ep.h
micrel_phy.h net: micrel: Add support for lan8841 PHY 2023-02-08 09:16:07 +00:00
microchipphy.h
migrate.h include/linux/migrate.h: remove unneeded externs 2023-02-20 12:46:18 -08:00
migrate_mode.h
mii.h
mii_timestamper.h
min_heap.h
minmax.h
misc_cgroup.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
mm_api.h
mm_inline.h mm/uffd: UFFD_FEATURE_WP_UNPOPULATED 2023-04-05 19:42:44 -07:00
mm_types.h - Daniel Verkamp has contributed a memfd series ("mm/memfd: add 2023-02-23 17:09:35 -08:00
mm_types_task.h
mman.h
mmap_lock.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: multi-gen LRU: clean up sysfs code 2023-03-28 16:20:07 -07:00
mnt_idmapping.h
mnt_namespace.h
mod_devicetable.h
module.h modules-6.3-rc1 2023-02-23 14:05:08 -08:00
module_signature.h
moduleloader.h Livepatching changes for 6.3 2023-02-23 14:00:10 -08:00
moduleparam.h
most.h
mount.h Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
moxtet.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
mroute_base.h
msdos_fs.h
msdos_partition.h
msg.h
msi.h A set of updates for the interrupt susbsystem: 2023-03-05 11:19:16 -08:00
msi_api.h
mtio.h
mutex.h
mutex_api.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
namei.h NFSD 6.3 Release Notes 2023-02-22 14:21:40 -08:00
nd.h
ndctl.h
net.h
netdev_features.h
netdevice.h net: tunnels: annotate lockless accesses to dev->needed_headroom 2023-03-15 00:04:04 -07:00
netfilter.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf 2023-02-22 21:25:23 -08:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_netdev.h
netfs.h netfs: Add a function to extract an iterator into a scatterlist 2023-02-20 17:25:43 -06:00
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h
nfs_fs.h NFS Client Updates for Linux 6.3 2023-02-22 14:47:20 -08:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h NFS: Clean up O_DIRECT request allocation 2023-02-14 14:22:33 -05:00
nfs_ssc.h NFSD: enhance inter-server copy cleanup 2023-02-20 09:20:21 -05:00
nfs_xdr.h
nfsacl.h
nitro_enclaves.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
nospec.h uaccess: Add speculation barrier to copy_from_user() 2023-02-21 14:45:22 -08:00
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.h
nubus.h
numa.h
nvme-auth.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h nvme-tcp: fix nvme_tcp_term_pdu to match spec 2023-03-22 09:19:56 +01:00
nvme.h nvme-trace: show more opcode names 2023-03-15 14:58:52 +01:00
nvmem-consumer.h nvmem: core: move struct nvmem_cell_info to nvmem-provider.h 2023-02-06 19:06:59 +01:00
nvmem-provider.h nvmem: core: add nvmem_add_one_cell() 2023-02-06 19:06:59 +01:00
nvram.h
objagg.h
objtool.h x86/unwind/orc: Add 'signal' field to ORC metadata 2023-02-11 12:37:51 +01:00
of.h Devicetree updates for v6.3: 2023-02-24 13:31:53 -08: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 net: mdio: fix owner field for mdio buses registered using device-tree 2023-03-19 10:48:35 +00:00
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
oid_registry.h
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
once_lite.h
oom.h
openvswitch.h
osq_lock.h
overflow.h
packing.h
padata.h
page-flags-layout.h
page-flags.h kasan: remove PG_skip_kasan_poison flag 2023-03-28 16:20:16 -07:00
page-isolation.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page_reporting.h
page_table_check.h
pageblock-flags.h
pagemap.h mm: return an ERR_PTR from __filemap_get_folio 2023-04-05 19:42:42 -07:00
pagevec.h
pagewalk.h
panic.h
panic_notifier.h
parman.h
parport.h
parport_pc.h
parser.h
part_stat.h
pata_arasan_cf_data.h
pata_parport.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-ats.h
pci-doe.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h PCI: endpoint: Use link_up() callback in place of LINK_UP notifier 2023-02-14 07:27:32 +09:00
pci-epf.h PCI: endpoint: Use link_up() callback in place of LINK_UP notifier 2023-02-14 07:27:32 +09:00
pci-p2pdma.h
pci.h PCI: s390: Fix use-after-free of PCI resources with per-function hotplug 2023-03-13 09:15:11 +01:00
pci_hotplug.h
pci_ids.h virtio,vhost,vdpa: features, fixes 2023-02-25 11:48:02 -08:00
pcs-altera-tse.h
pcs-lynx.h
pcs-rzn1-miic.h
pe.h
peci-cpu.h
peci.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h pcpcntr: remove percpu_counter_sum_all() 2023-03-19 10:02:04 -07:00
perf_event.h
perf_event_api.h
perf_regs.h
personality.h
pfn.h
pfn_t.h
pgtable.h mm: add PTE pointer parameter to flush_tlb_fix_spurious_fault() 2023-03-28 16:20:12 -07:00
pgtable_api.h
phonet.h
phy.h net: phy: do not force EEE support 2023-02-23 13:43:23 +01:00
phy_fixed.h
phy_led_triggers.h
phylink.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h splice: Add a func to do a splice from a buffered file without ITER_PIPE 2023-02-20 17:25:43 -06:00
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
platform_profile.h
pldmfw.h
plist.h
pm-trace.h
pm.h PM: Add EXPORT macros for exporting PM functions 2023-02-13 19:17:34 +01:00
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pmbus.h
pmu.h
pnp.h
poison.h Networking changes for 6.3. 2023-02-21 18:24:12 -08:00
poll.h
polynomial.h
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
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.h
psi_types.h
psp-sev.h
psp-tee.h
pstore.h
pstore_blk.h
pstore_ram.h
pstore_zone.h
ptdump.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp_kvm.h
ptp_pch.h
ptr_ring.h
ptrace.h
ptrace_api.h
purgatory.h
pvclock_gtod.h
pwm.h
pwm_backlight.h backlight: pwm_bl: Drop support for legacy PWM probing 2023-02-22 10:55:22 +00:00
pxa2xx_ssp.h
pxa168_eth.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
randomize_kstack.h
range.h kernel/range: Uplevel the cxl subsystem's range_contains() helper 2023-02-10 17:32:37 -08:00
ras.h
ratelimit.h
ratelimit_types.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rbtree_types.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcupdate_trace.h
rcupdate_wait.h
rcutiny.h
rcutree.h
rcuwait.h
rcuwait_api.h
reboot-mode.h
reboot.h
reciprocal_div.h
ref_tracker.h
refcount.h
refcount_api.h
regmap.h regmap-irq: Remove unused mask_invert flag 2023-02-17 00:08:44 +00:00
regset.h
relay.h
remoteproc.h
resctrl.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
resume_user_mode.h
rethook.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h mm/hwpoison: convert TTU_IGNORE_HWPOISON to TTU_HWPOISON 2023-02-27 17:00:14 -08:00
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
rwbase_rt.h
rwlock.h
rwlock_api_smp.h
rwlock_rt.h
rwlock_types.h
rwsem.h
sbitmap.h
scatterlist.h
scc.h
sched.h Scheduler updates in this cycle are: 2023-02-20 17:41:08 -08:00
sched_clock.h
scmi_protocol.h
scpi_protocol.h
screen_info.h
scs.h
sctp.h
scx200.h
scx200_gpio.h
seccomp.h
secretmem.h
securebits.h
security.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selection.h
sem.h
semaphore.h
seq_buf.h
seq_file.h
seq_file_net.h
seqlock.h
seqlock_api.h
serdev.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_s3c.h
serial_sci.h
serio.h
set_memory.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h sh: intc: Avoid spurious sizeof-pointer-div warning 2023-02-27 10:49:43 +01:00
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h shmem: add support to ignore swap 2023-03-28 16:20:15 -07:00
shrinker.h mm: shrinkers: fix deadlock in shrinker debugfs 2023-02-09 15:56:51 -08:00
signal.h
signal_types.h
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h net/sched: cls_api: Support hardware miss to tc action 2023-02-20 16:46:10 -08:00
skmsg.h
slab.h
slab_def.h
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smp.h
smp_types.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sockptr.h
softirq.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_rt.h
spinlock_types.h
spinlock_types_raw.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h lib/stackdepot: move documentation comments to stackdepot.h 2023-02-16 20:43:52 -08:00
stackleak.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_call.h
static_call_types.h
static_key.h
stdarg.h
stddef.h
stm.h
stmmac.h net: stmmac: Fix for mismatched host/device DMA address width 2023-03-19 10:56:03 +00:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h string_helpers: Move string_is_valid() to the header 2023-02-09 22:30:24 -08:00
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
surface_acpi_notify.h
suspend.h
svga.h
sw842.h
swab.h
swait.h
swait_api.h
swap.h mm, memcg: Prevent memory.swappiness load/store tearing 2023-03-28 16:20:13 -07:00
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h
swiotlb.h swiotlb: remove swiotlb_max_segment 2023-02-16 18:10:18 +01:00
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscall_user_dispatch.h
syscalls.h
syscalls_api.h
syscore_ops.h
sysctl.h
sysfb.h efi: sysfb_efi: Fix DMI quirks not working for simpledrm 2023-03-18 11:44:57 +01:00
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tee_drv.h
termios_internal.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h thermal: core: Introduce thermal_cooling_device_update() 2023-03-22 15:20:38 +01:00
thread_info.h
threads.h
thunderbolt.h
ti-emif-sram.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time.h
time32.h
time64.h
time_namespace.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h sched/topology: Introduce for_each_numa_hop_mask() 2023-02-07 18:20:00 -08:00
torture.h
toshiba.h
tpm.h tpm: add vendor flag to command code validation 2023-02-13 10:11:20 +02:00
tpm_command.h
tpm_eventlog.h
trace.h tracing: Add trace_array_puts() to write into instance 2023-02-07 12:49:56 -05:00
trace_clock.h
trace_events.h tracing: Fix TASK_COMM_LEN in trace event format file 2023-02-12 10:23:39 -05:00
trace_recursion.h
trace_seq.h tracing: Acquire buffer from temparary trace sequence 2023-02-07 12:42:54 -05:00
tracefs.h
tracepoint-defs.h
tracepoint.h Tracing fixes for v6.3 2023-03-14 17:07:54 -07:00
transport_class.h
ts-nbus.h
tsacct_kern.h
tty.h
tty_buffer.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty_port.h
typecheck.h
types.h
u64_stats_sync.h
u64_stats_sync_api.h
uacce.h
uaccess.h uaccess: Add minimum bounds check on kernel buffer size 2023-02-08 15:26:58 -08:00
ubsan.h arm64: Support Clang UBSAN trap codes for better reporting 2023-02-08 15:26:58 -08:00
ucs2_string.h
udp.h
uidgid.h
uio.h 46 fs/cifs (smb3 client) changesets, 37 in fs/cifs and 9 for related helper functions and cleanup outside from Dave Howells and Willy 2023-02-22 17:12:44 -08:00
uio_driver.h
umh.h
unicode.h
units.h
uprobes.h
usb.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_events.h
user_namespace.h
userfaultfd_k.h mm/uffd: UFFD_FEATURE_WP_UNPOPULATED 2023-04-05 19:42:44 -07:00
usermode_driver.h
util_macros.h There is no particular theme here - mainly quick hits all over the tree. 2023-02-23 17:55:40 -08:00
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h vdpa: introduce get_vq_dma_device() 2023-02-20 19:26:58 -05:00
verification.h
vermagic.h
vexpress.h
vfio.h vfio: Update the kdoc for vfio_device_ops 2023-02-09 11:43:39 -07:00
vfio_pci_core.h
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio_anchor.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h docs: driver-api: virtio: virtio on Linux 2023-02-15 06:46:22 -05:00
virtio_console.h
virtio_dma_buf.h
virtio_net.h
virtio_pci_legacy.h
virtio_pci_modern.h
virtio_ring.h virtio_ring: per virtqueue dma device 2023-02-20 19:26:58 -05:00
virtio_vsock.h
vlynq.h
vm_event_item.h
vmalloc.h mm/vmalloc.c: add flags to mark vm_map_ram area 2023-02-09 16:51:42 -08:00
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h vringh: fix a typo in comments for vringh_kiov 2023-02-20 19:26:59 -05:00
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
w1.h
wait.h
wait_api.h
wait_bit.h
watch_queue.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wm97xx.h
wmi.h
workqueue.h
workqueue_api.h
writeback.h
ww_mutex.h
wwan.h
xarray.h
xattr.h
xxhash.h
xz.h
yam.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zstd_errors.h
zstd_lib.h
zutil.h