twx-linux/include/linux
Nhat Pham cf264e1329 cachestat: implement cachestat syscall
There is currently no good way to query the page cache state of large file
sets and directory trees.  There is mincore(), but it scales poorly: the
kernel writes out a lot of bitmap data that userspace has to aggregate,
when the user really doesn not care about per-page information in that
case.  The user also needs to mmap and unmap each file as it goes along,
which can be quite slow as well.

Some use cases where this information could come in handy:
  * Allowing database to decide whether to perform an index scan or
    direct table queries based on the in-memory cache state of the
    index.
  * Visibility into the writeback algorithm, for performance issues
    diagnostic.
  * Workload-aware writeback pacing: estimating IO fulfilled by page
    cache (and IO to be done) within a range of a file, allowing for
    more frequent syncing when and where there is IO capacity, and
    batching when there is not.
  * Computing memory usage of large files/directory trees, analogous to
    the du tool for disk usage.

More information about these use cases could be found in the following
thread:

https://lore.kernel.org/lkml/20230315170934.GA97793@cmpxchg.org/

This patch implements a new syscall that queries cache state of a file and
summarizes the number of cached pages, number of dirty pages, number of
pages marked for writeback, number of (recently) evicted pages, etc.  in a
given range.  Currently, the syscall is only wired in for x86
architecture.

NAME
    cachestat - query the page cache statistics of a file.

SYNOPSIS
    #include <sys/mman.h>

    struct cachestat_range {
        __u64 off;
        __u64 len;
    };

    struct cachestat {
        __u64 nr_cache;
        __u64 nr_dirty;
        __u64 nr_writeback;
        __u64 nr_evicted;
        __u64 nr_recently_evicted;
    };

    int cachestat(unsigned int fd, struct cachestat_range *cstat_range,
        struct cachestat *cstat, unsigned int flags);

DESCRIPTION
    cachestat() queries the number of cached pages, number of dirty
    pages, number of pages marked for writeback, number of evicted
    pages, number of recently evicted pages, in the bytes range given by
    `off` and `len`.

    An evicted page is a page that is previously in the page cache but
    has been evicted since. A page is recently evicted if its last
    eviction was recent enough that its reentry to the cache would
    indicate that it is actively being used by the system, and that
    there is memory pressure on the system.

    These values are returned in a cachestat struct, whose address is
    given by the `cstat` argument.

    The `off` and `len` arguments must be non-negative integers. If
    `len` > 0, the queried range is [`off`, `off` + `len`]. If `len` ==
    0, we will query in the range from `off` to the end of the file.

    The `flags` argument is unused for now, but is included for future
    extensibility. User should pass 0 (i.e no flag specified).

    Currently, hugetlbfs is not supported.

    Because the status of a page can change after cachestat() checks it
    but before it returns to the application, the returned values may
    contain stale information.

RETURN VALUE
    On success, cachestat returns 0. On error, -1 is returned, and errno
    is set to indicate the error.

ERRORS
    EFAULT cstat or cstat_args points to an invalid address.

    EINVAL invalid flags.

    EBADF  invalid file descriptor.

    EOPNOTSUPP file descriptor is of a hugetlbfs file

[nphamcs@gmail.com: replace rounddown logic with the existing helper]
  Link: https://lkml.kernel.org/r/20230504022044.3675469-1-nphamcs@gmail.com
Link: https://lkml.kernel.org/r/20230503013608.2431726-3-nphamcs@gmail.com
Signed-off-by: Nhat Pham <nphamcs@gmail.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Brian Foster <bfoster@redhat.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-06-09 16:25:16 -07:00
..
amba
atomic locking/atomic: Correct (cmp)xchg() instrumentation 2023-04-29 09:09:31 +02:00
avf
bcma
byteorder
can
cdx cdx: add device attributes 2023-03-29 12:26:32 +02:00
ceph
clk
comedi
crush
decompress
device driver core: class: properly reference count class_dev_iter() 2023-05-19 11:03:36 +01:00
dma dmaengine: ti: k3-udma: Workaround errata i2234 2023-03-31 17:49:36 +05:30
dsa
extcon
firmware Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07:00
fpga
fsl
gpio
greybus
hsi
i3c
iio iio: light: Add gain-time-scale helpers 2023-04-10 12:26:34 +01:00
input
irqchip irqchip/gic: Drop support for board files 2023-04-08 10:50:04 +01:00
isdn
lockd lockd: fix races in client GRANTED_MSG wait logic 2023-04-26 09:05:00 -04:00
mailbox
mdio
mfd pwm: Changes for v6.4-rc1 2023-05-03 11:25:01 -07:00
mlx4
mlx5 net/mlx5: DR, Check force-loopback RC QP capability independently from RoCE 2023-05-22 22:38:05 -07:00
mmc Networking changes for 6.4. 2023-04-26 16:07:23 -07:00
mtd Raw NAND core changes: 2023-04-19 20:39:03 +02:00
mux
net/intel
netfilter netfilter: nf_tables: don't write table validation state without mutex 2023-04-22 01:39:40 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
pcs
pds pds_core: publish events to the clients 2023-04-21 08:29:13 +01:00
perf
phy
pinctrl
platform_data USB / Thunderbolt changes for 6.4-rc1 2023-04-27 11:42:11 -07:00
power power: supply: bq27xxx: Ensure power_supply_changed() is called on current sign changes 2023-05-08 15:29:12 +02:00
pse-pd
qed
raid
regulator
remoteproc
reset
rpmsg rpmsg: qcom_smd: Make qcom_smd_unregister_edge() return void 2023-04-05 20:58:32 -07:00
rtc
sched IOMMU Updates for Linux 6.4 2023-04-30 13:00:38 -07:00
soc Networking changes for 6.4. 2023-04-26 16:07:23 -07:00
soundwire soundwire: amd: add runtime pm ops for AMD SoundWire manager driver 2023-04-12 15:30:36 +05:30
spi spi: Add TPM HW flow flag 2023-04-21 14:37:03 +01:00
ssb
sunrpc nfsd-6.4 fixes: 2023-05-17 09:56:01 -07:00
surface_aggregator
ulpi
unaligned
usb usb: gadget: drop superfluous ':' in doc string 2023-05-13 18:04:59 +09:00
8250_pci.h
acct.h
acpi_agdi.h
acpi_apmt.h
acpi_dma.h
acpi_iort.h
acpi_mdio.h
acpi_pmtmr.h
acpi_viot.h
acpi.h hyperv-next for v6.4 2023-04-27 17:17:12 -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
amd-pstate.h
anon_inodes.h
aperture.h
apm_bios.h
apm-emulation.h
apple-gmux.h platform/x86: apple-gmux: Fix iomem_base __iomem annotation 2023-04-06 14:24:04 +02:00
apple-mailbox.h
arch_topology.h
arm_ffa.h firmware: arm_ffa: Fix FFA device names for logical partitions 2023-05-08 20:40:46 +01:00
arm_sdei.h
arm-cci.h
arm-smccc.h irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4 2023-04-08 10:51:23 +01:00
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
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
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
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h btrfs, block: move REQ_CGROUP_PUNT to btrfs 2023-04-17 18:01:22 +02:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h
bitrev.h
bits.h
blk_types.h for-6.4/block-2023-04-21 2023-04-26 12:52:58 -07:00
blk-cgroup.h
blk-crypto-profile.h
blk-crypto.h
blk-integrity.h
blk-mq-pci.h
blk-mq-virtio.h
blk-mq.h for-6.4/block-2023-04-21 2023-04-26 12:52:58 -07:00
blk-pm.h
blkdev.h block: remove NFL4_UFLG_MASK 2023-05-20 05:38:01 -06: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_mem_alloc.h
bpf_trace.h
bpf_types.h bpf: fix link failure with NETFILTER=y INET=n 2023-04-22 08:21:05 -07:00
bpf_verifier.h bpf: Migrate bpf_rbtree_add and bpf_list_push_{front,back} to possibly fail 2023-04-15 17:36:50 -07:00
bpf-cgroup-defs.h
bpf-cgroup.h
bpf-netns.h
bpf.h bpf: add test_run support for netfilter program type 2023-04-21 11:34:50 -07:00
bpfilter.h
bpfptr.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf_ids.h
btf.h bpf: Remove KF_KPTR_GET kfunc flag 2023-04-16 08:51:24 -07:00
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h fs/buffer: add folio_create_empty_buffers helper 2023-04-21 14:52:01 -07:00
bug.h
build_bug.h
build-salt.h
buildid.h
bvec.h
c2port.h
cache.h
cacheflush.h
cacheinfo.h cacheinfo: Add use_arch[|_cache]_info field/function 2023-04-14 10:13:39 +01:00
capability.h
cb710.h
cc_platform.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cfi_types.h
cfi.h
cgroup_api.h
cgroup_rdma.h
cgroup_refcnt.h
cgroup_subsys.h
cgroup-defs.h
cgroup.h cgroup: remove cgroup_rstat_flush_atomic() 2023-06-09 16:25:15 -07:00
circ_buf.h
clk-provider.h Nothing looks out of the ordinary in this batch of clk driver updates. There 2023-04-29 17:29:39 -07:00
clk.h
clkdev.h
clockchips.h
clocksource_ids.h
clocksource.h
cma.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h mm: compaction: move compaction sysctl to its own file 2023-04-13 11:49:35 -07:00
compat.h
compiler_attributes.h
compiler_types.h
compiler-clang.h
compiler-gcc.h
compiler-version.h
compiler.h tracing: make ftrace_likely_update() declaration visible 2023-05-17 09:36:46 -07:00
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 Objtool changes for v6.4: 2023-04-28 14:02:54 -07:00
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 Devicetree updates for v6.4, part 2: 2023-04-27 10:09:05 -07:00
cpuhotplug.h arm64 updates for 6.4 2023-04-25 12:39:01 -07:00
cpuidle_haltpoll.h
cpuidle.h
cpumask_api.h
cpumask.h
cpuset.h
crash_core.h
crash_dump.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h libcrc32c: remove crc32c_impl 2023-04-17 18:01:23 +02:00
crc32poly.h
crc64.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h crypto: api - Add crypto_tfm_get 2023-04-20 18:20:04 +08:00
cs5535.h
ctype.h
cuda.h
damon.h
dasd_mod.h
davinci_emac.h
dax.h
dca.h
dcache.h
dccp.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h delayacct: track delays from IRQ/SOFTIRQ 2023-04-18 16:39:34 -07:00
delayed_call.h
dev_printk.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h dm: unexport dm_get_queue_limits() 2023-04-14 12:32:20 -04:00
device.h
devm-helpers.h
devpts_fs.h
dfl.h
digsig.h
dim.h linux/dim: Do nothing if no time delta between samples 2023-05-09 11:06:45 +02:00
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-bufio.h dm bufio: remove unused dm_bufio_release_move interface 2023-03-30 15:57:50 -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-map-ops.h dma-mapping: provide a fallback dma_default_coherent 2023-04-07 07:38:20 +02:00
dma-mapping.h
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_config.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
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 net: ethtool: create and export ethtool_dev_mm_supported() 2023-04-13 22:22:10 -07:00
ethtool.h bonding: add software tx timestamping support 2023-04-18 20:48:59 -07:00
eventfd.h
eventpoll.h
evm.h
export-internal.h
export.h
exportfs.h nfsd: allow reaping files still under writeback 2023-04-26 09:04:59 -04:00
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h f2fs: use common implementation of file type 2023-04-10 10:58:45 -07:00
f75375s.h
falloc.h
fanotify.h
fault-inject-usercopy.h
fault-inject.h fault-inject: allow configuration via configfs 2023-04-13 07:38:54 -06:00
fb.h Linux 6.3-rc4 2023-03-29 16:00:23 +02: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 bpf: Support 64-bit pointers to kfuncs 2023-04-13 21:36:41 -07:00
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 module: error out early on concurrent load of the same module file 2023-05-25 17:07:57 -07:00
fscache-cache.h
fscache.h
fscrypt.h There are a number of major cleanups in ext4 this cycle: 2023-04-26 08:57:41 -07: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 fsverity: use WARN_ON_ONCE instead of WARN_ON 2023-04-11 19:23:15 -07:00
ftrace_irq.h
ftrace.h Minor tracing updates: 2023-05-05 13:11:02 -07:00
futex.h
fwnode_mdio.h
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h
genl_magic_func.h genetlink: make _genl_cmd_to_str static 2023-04-01 20:27:55 -06:00
genl_magic_struct.h
getcpu.h
gfp_api.h
gfp_types.h
gfp.h mm/page_alloc: rename page_alloc_init() to page_alloc_init_cpuhp() 2023-04-05 19:42:53 -07:00
glob.h
gnss.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.h
greybus.h
group_cpus.h
hardirq.h
hash.h
hashtable_api.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hex.h kernel.h: split the hexadecimal related helpers to hex.h 2023-04-08 13:45:38 -07:00
hid_bpf.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h HID: Recognize "Digitizer" as a valid input application 2023-03-30 17:35:42 +02:00
hidden.h
hiddev.h
hidraw.h
highmem-internal.h
highmem.h mm/hwpoison: introduce copy_mc_highpage 2023-04-18 16:29:51 -07:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hisi_acc_qm.h
hmm.h
host1x_context_bus.h
host1x.h gpu: host1x: Make host1x_client_unregister() return void 2023-04-04 13:59:10 +02:00
hp_sdc.h
hpet.h
hrtimer_api.h
hrtimer_defs.h
hrtimer.h
hte.h
huge_mm.h mm: remove vmf_insert_pfn_xxx_prot() for huge page-table entries 2023-04-05 19:42:56 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h hwmon: constify pointers to hwmon_channel_info 2023-04-07 08:45:17 -07:00
hwspinlock.h
hyperv.h
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: gxp: fix build failure without CONFIG_I2C_SLAVE 2023-05-03 17:27:29 +02:00
i8042.h
i8253.h
icmp.h
icmpv6.h
idle_inject.h
idr.h
ieee80211.h wifi: ieee80211: correctly mark FTM frames non-bufferable 2023-04-13 16:32:02 +02:00
ieee802154.h
if_arp.h
if_bridge.h bridge: Add internal flags for per-{Port, VLAN} neighbor suppression 2023-04-21 08:25:49 +01:00
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 net: fix stack overflow when LRO is disabled for virtual interfaces 2023-05-19 22:46:37 -07:00
if_tun.h
if_tunnel.h
if_vlan.h net: add vlan_get_protocol_and_depth() helper 2023-05-10 10:25:55 +01:00
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_tcc.h
intel_th.h
intel_tpmi.h
intel-ish-client-if.h
interconnect-provider.h interconnect: drop unused icc_link_destroy() interface 2023-04-05 11:29:59 +03:00
interconnect.h
interrupt.h
interval_tree_generic.h
interval_tree.h
io_uring_types.h io_uring/rsrc: remove rsrc_data refs 2023-04-15 14:44:57 -06:00
io_uring.h io_uring: make io_uring_sqe_cmd() unconditionally available 2023-05-09 07:59:54 -06:00
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
iocontext.h
iomap.h iomap: Remove IOMAP_DIO_NOSYNC unused dio flag 2023-04-21 08:54:47 -07:00
iommu-helper.h
iommu.h IOMMU Updates for Linux 6.4 2023-04-30 13:00:38 -07:00
iommufd.h vfio-iommufd: Make vfio_iommufd_emulated_bind() return iommufd_access ID 2023-03-31 13:43:32 -03:00
iopoll.h
ioport.h
ioprio.h
iosys-map.h
iova_bitmap.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_defs.h
irqdomain.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
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 kernel.h: split the hexadecimal related helpers to hex.h 2023-04-08 13:45:38 -07:00
kernelcapi.h
kernfs.h
kexec.h kexec: remove unnecessary arch_kexec_kernel_image_load() 2023-04-08 13:45:38 -07:00
key-type.h
key.h
keyboard.h
keyctl.h
kfence.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsan_string.h
kmsan_types.h
kmsan-checks.h
kmsan.h mm: kmsan: apply __must_check to non-void functions 2023-04-18 16:30:09 -07:00
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 mm/ksm: move disabling KSM from s390/gmap code to KSM code 2023-05-02 17:21:50 -07:00
kstrtox.h
kthread.h
ktime_api.h
ktime.h
kvm_dirty_ring.h
kvm_host.h s390: 2023-05-01 12:06:20 -07: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 - New Drivers 2023-05-02 10:36:02 -07:00
libata.h
libfdt_env.h
libfdt.h
libgcc.h libgcc: add forward declarations for generic library routines 2023-04-27 13:45:31 -07:00
libnvdimm.h
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_sched.h
livepatch.h
llc.h
llist_api.h
llist.h
local_lock_internal.h
local_lock.h
lockdep_api.h
lockdep_types.h debugobjects,locking: Annotate debug_object_fill_pool() wait type violation 2023-05-02 14:48:14 +02:00
lockdep.h Two fixes for debugobjects: 2023-05-28 07:15:33 -04:00
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 lsm/stable-6.4 PR 20230420 2023-04-24 11:21:50 -07:00
lz4.h
lzo.h
mailbox_client.h mailbox: Allow direct registration to a channel 2023-04-18 11:48:55 -05:00
mailbox_controller.h
map_benchmark.h
maple_tree.h
maple.h
marvell_phy.h
math64.h
math.h
mbcache.h
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 mm/memtest: add results of early memtest to /proc/meminfo 2023-04-05 19:42:55 -07:00
memcontrol.h memcg: remove mem_cgroup_flush_stats_atomic() 2023-06-09 16:25:15 -07:00
memfd.h memfd: pass argument of memfd_fcntl as int 2023-04-18 16:30:11 -07:00
memory_hotplug.h
memory-tiers.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
mii_timestamper.h
mii.h
min_heap.h
minmax.h
misc_cgroup.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_api.h
mm_inline.h mm/uffd: UFFD_FEATURE_WP_UNPOPULATED 2023-04-05 19:42:44 -07:00
mm_types_task.h
mm_types.h Scheduler changes for v6.4: 2023-04-28 14:53:30 -07:00
mm.h Add support for new Linear Address Masking CPU feature. This is similar 2023-04-28 09:43:49 -07:00
mman.h
mmap_lock.h mm: add per-VMA lock and helper functions to control it 2023-04-05 20:02:57 -07:00
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: Multi-gen LRU: remove wait_event_killable() 2023-04-18 16:30:11 -07:00
mnt_idmapping.h
mnt_namespace.h
mod_devicetable.h cdx: add the cdx bus driver 2023-03-29 12:26:32 +02:00
module_signature.h
module_symbol.h module: Ignore L0 and rename is_arm_mapping_symbol() 2023-04-13 17:15:50 -07:00
module.h modules-6.4-rc1 2023-04-27 16:36:55 -07:00
moduleloader.h
moduleparam.h
most.h
mount.h
moxtet.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute_base.h
mroute.h
msdos_fs.h
msdos_partition.h
msg.h
msi_api.h
msi.h x86/pci/xen: populate MSI sysfs entries 2023-05-24 18:08:49 +02:00
mtio.h
mutex_api.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
namei.h ksmbd: fix racy issue from using ->d_parent and ->d_name 2023-04-24 00:09:20 -05:00
nd.h
ndctl.h
net_tstamp.h net: add struct kernel_hwtstamp_config and make net_hwtstamp_validate() use it 2023-04-03 10:04:27 +01:00
net.h
netdev_features.h
netdevice.h net: optimize napi_threaded_poll() vs RPS/RFS 2023-04-23 13:35:07 +01:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_netdev.h
netfilter.h bpf: add bpf_link support for BPF_NETFILTER programs 2023-04-21 11:34:14 -07:00
netfs.h
netlink.h
netpoll.h
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFSv3: handle out-of-order write replies. 2023-04-11 16:13:21 -04:00
nfs_iostat.h NFS: Remove all NFSIOS_FSCACHE counters due to conversion to netfs API 2023-04-11 13:08:26 -04:00
nfs_page.h NFS: Convert buffered read paths to use netfs when fscache is enabled 2023-04-11 13:08:26 -04:00
nfs_ssc.h
nfs_xdr.h NFSv4.2: Rework scratch handling for READ_PLUS 2023-04-28 15:48:45 -04:00
nfs.h nfs: move nfs_fhandle_hash to common include file 2023-04-26 09:05:00 -04:00
nfsacl.h
nitro_enclaves.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
nospec.h
notifier.h srcu: Begin offloading srcu_struct fields to srcu_update 2023-04-04 08:35:34 -07:00
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme-auth.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme.h
nvmem-consumer.h nvmem: core: introduce NVMEM layouts 2023-04-05 19:41:11 +02:00
nvmem-provider.h nvmem: Add macro to register nvmem layout drivers 2023-04-05 19:41:13 +02:00
nvram.h
objagg.h
objtool_types.h
objtool.h
of_address.h of/address: Add of_property_read_reg() helper 2023-04-13 17:46:35 -05:00
of_clk.h
of_device.h Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07:00
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: Drop unnecessary includes in headers 2023-04-13 17:46:34 -05:00
of_reserved_mem.h
of.h Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -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 init,mm: fold late call to page_ext_init() to page_alloc_init_late() 2023-04-05 19:42:54 -07:00
page_idle.h
page_owner.h
page_ref.h
page_reporting.h
page_table_check.h
page-flags-layout.h
page-flags.h - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
page-isolation.h
pageblock-flags.h mm, treewide: redefine MAX_ORDER sanely 2023-04-05 19:42:46 -07:00
pagemap.h - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
pagevec.h
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 x86/amd_nb: Add PCI ID for family 19h model 78h 2023-05-08 11:25:19 +02:00
pci-acpi.h
pci-ats.h
pci-doe.h PCI/DOE: Make mailbox creation API private 2023-04-18 10:36:58 -07:00
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h
pci.h cxl for v6.4 2023-04-30 11:51:51 -07:00
pcs-altera-tse.h
pcs-lynx.h
pcs-rzn1-miic.h
pe.h efi/pe: Import new BTI/IBT header flags from the spec 2023-04-20 15:43:34 +02:00
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
phy_led_triggers.h
phy.h mdio_bus: unhide mdio_bus_init prototype 2023-05-17 21:29:09 -07:00
phylink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-04-06 12:01:20 -07:00
pid_namespace.h
pid.h pid: add pidfd_prepare() 2023-04-03 11:16:56 +02:00
pim.h
pipe_fs_i.h
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 posix-cpu-timers: Implement the missing timer_wait_running callback 2023-04-21 15:34:33 +02:00
power_supply.h power: supply: core: auto-exposure of simple-battery data 2023-03-29 22:38:56 +02:00
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.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 kill the last remaining user of proc_ns_fget() 2023-04-20 22:55:35 -04:00
processor.h
profile.h
projid.h
property.h device property: make device_property functions take const device * 2023-04-20 14:25:07 +02:00
pruss_driver.h
psci.h
pseudo_fs.h
psi_types.h sched/psi: Allow unprivileged polling of N*2s period 2023-04-05 09:58:50 +02:00
psi.h sched/psi: Allow unprivileged polling of N*2s period 2023-04-05 09:58:50 +02:00
psp-platform-access.h i2c: designware: Use PCI PSP driver for communication 2023-04-20 18:20:05 +08:00
psp-sev.h
psp-tee.h
psp.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
ptp_pch.h
ptr_ring.h
ptrace_api.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h pwm: Delete deprecated functions pwm_request() and pwm_free() 2023-04-13 14:27:53 +02: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
ras.h
ratelimit_types.h
ratelimit.h
rational.h
rbtree_augmented.h lib/rbtree: use '+' instead of '|' for setting color. 2023-04-18 16:39:33 -07:00
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 mm/slab: document kfree() as allowed for kmem_cache_alloc() objects 2023-03-29 10:35:41 +02:00
rcuref.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 regmap: allow upshifting register addresses before performing operations 2023-04-07 17:28:19 +01:00
regset.h
relay.h
remoteproc.h
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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-04-13 16:04:28 -07:00
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rv.h
rwbase_rt.h
rwlock_api_smp.h
rwlock_rt.h
rwlock_types.h
rwlock.h
rwsem.h
sbitmap.h
scatterlist.h
scc.h
sched_clock.h
sched.h tracing updates for 6.4: 2023-04-28 15:57:53 -07:00
scmi_protocol.h
scpi_protocol.h
screen_info.h
scs.h
sctp.h sctp: delete the nested flexible array payload 2023-04-21 08:19:30 +01:00
scx200_gpio.h
scx200.h
seccomp.h
secretmem.h
securebits.h
security.h v6.4/vfs.misc 2023-04-24 13:39:58 -07:00
sed-opal.h sed-opal: geometry feature reporting command 2023-04-19 14:07:13 -06:00
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h
sem.h
semaphore.h Change DEFINE_SEMAPHORE() to take a number argument 2023-04-18 11:15:24 -07:00
seq_buf.h seq_buf: Add seq_buf_do_printk() helper 2023-04-25 21:03:14 -04:00
seq_file_net.h
seq_file.h
seqlock_api.h
seqlock.h
serdev.h serdev: Add method to assert break signal over tty UART port 2023-04-23 21:51:25 -07:00
serial_8250.h
serial_bcm63xx.h
serial_core.h
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 userfaultfd: convert mfill_atomic() to use a folio 2023-04-18 16:29:55 -07:00
shrinker.h mm: shrinkers: fix race condition on debugfs cleanup 2023-05-17 15:24:33 -07:00
signal_types.h
signal.h
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h tls: rx: strp: force mixed decrypted records into copy mode 2023-05-19 08:37:37 +01:00
skmsg.h bpf, sockmap: Improved check for empty queue 2023-05-23 16:10:11 +02:00
slab_def.h
slab.h - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smp_types.h
smp.h SMP cross-CPU function-call updates for v6.4: 2023-04-28 15:03:43 -07:00
smpboot.h
smsc911x.h
smscphy.h net: phy: smsc: add support for edpd tunable 2023-04-03 10:08:43 +01:00
sock_diag.h
socket.h
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 srcu: Begin offloading srcu_struct fields to srcu_update 2023-04-04 08:35:34 -07:00
srcutree.h Merge branches 'rcu/staging-core', 'rcu/staging-docs' and 'rcu/staging-kfree', remote-tracking branches 'paul/srcu-cf.2023.04.04a', 'fbq/rcu/lockdep.2023.03.27a' and 'fbq/rcu/rcutorture.2023.03.20a' into rcu/staging 2023-04-05 13:50:37 +00:00
ssbi.h
stackdepot.h
stackleak.h
stackprotector.h
stacktrace.h
start_kernel.h init: Mark start_kernel() __noreturn 2023-04-14 17:31:23 +02:00
stat.h
statfs.h
static_call_types.h
static_call.h
static_key.h
stdarg.h
stddef.h
stm.h
stmmac.h net: stmmac: dwmac4: Allow platforms to specify some DMA/MTL offsets 2023-04-13 12:50:46 +02:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
surface_acpi_notify.h
suspend.h PM: Add sysfs files to represent time spent in hardware sleep state 2023-04-20 19:06:12 +02:00
svga.h
sw842.h
swab.h
swait_api.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h workingset: refactor LRU refault to expose refault recency check 2023-06-09 16:25:16 -07:00
swapfile.h
swapops.h
swiotlb.h dma-mapping updates for Linux 6.4 2023-04-29 10:29:57 -07:00
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscall_user_dispatch.h ptrace: Provide set/get interface for syscall user dispatch 2023-04-16 14:23:07 +02:00
syscalls_api.h
syscalls.h cachestat: implement cachestat syscall 2023-06-09 16:25:16 -07:00
syscore_ops.h
sysctl.h sysctl: remove register_sysctl_paths() 2023-05-02 19:24:16 -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
termios_internal.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h thermal: core: Encapsulate tz->device field 2023-04-27 19:20:12 +02:00
thread_info.h
threads.h
thunderbolt.h
ti_wilink_st.h
ti-emif-sram.h
tick.h tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem 2023-04-05 13:47:43 +00:00
tifm.h
timb_dma.h
timb_gpio.h
time32.h
time64.h
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.h tpm: Prevent hwrng from activating during resume 2023-05-16 02:43:12 +03:00
trace_clock.h
trace_events.h
trace_recursion.h
trace_seq.h
trace.h
tracefs.h
tracepoint-defs.h
tracepoint.h
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 Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
typecheck.h
types.h
u64_stats_sync_api.h
u64_stats_sync.h
uacce.h
uaccess.h
ubsan.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h
uio.h mm: hwpoison: coredump: support recovery from dump_user_range() 2023-05-02 17:21:50 -07:00
umh.h
unicode.h
units.h
uprobes.h
usb_usual.h
usb.h USB / Thunderbolt changes for 6.4-rc1 2023-04-27 11:42:11 -07:00
usbdevice_fs.h
user_events.h tracing/user_events: Align structs with tabs for readability 2023-03-29 06:52:09 -04:00
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
usermode_driver.h
util_macros.h
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h virtio-vdpa: add VIRTIO_F_NOTIFICATION_DATA feature support 2023-04-21 03:02:35 -04:00
verification.h
vermagic.h
vexpress.h
vfio_pci_core.h
vfio.h VFIO updates for v6.4-rc1 2023-05-02 11:56:43 -07: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_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_dma_buf.h
virtio_net.h
virtio_pci_legacy.h
virtio_pci_modern.h
virtio_ring.h virtio_ring: add a struct device forward declaration 2023-04-21 03:02:35 -04:00
virtio_vsock.h vsock: support sockmap 2023-03-29 08:19:38 +01:00
virtio.h virtio_ring: Use const to annotate read-only pointer params 2023-04-21 03:02:30 -04:00
vlynq.h
vm_event_item.h mm: introduce per-VMA lock statistics 2023-04-05 20:03:01 -07:00
vmalloc.h mm: vmalloc: convert vread() to vread_iter() 2023-04-05 19:42:57 -07:00
vmpressure.h
vmstat.h mm: introduce per-VMA lock statistics 2023-04-05 20:03:01 -07:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h vringh: address kdoc warnings 2023-04-21 03:02:34 -04:00
vt_buffer.h linux/vt_buffer.h: allow either builtin or modular for macros 2023-04-24 11:48:33 +02:00
vt_kern.h
vt.h
vtime.h
w1-gpio.h
w1.h
wait_api.h
wait_bit.h
wait.h
watch_queue.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wm97xx.h
wmi.h
workqueue_api.h
workqueue.h
writeback.h btrfs, mm: remove the punt_to_cgroup field in struct writeback_control 2023-04-17 18:01:22 +02:00
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_errors.h
zstd_lib.h
zstd.h
zutil.h