linux/include/linux
Martin K. Petersen 8b60e2189f Merge patch series "Add Command Duration Limits support"
Niklas Cassel <nks@flawful.org> says:

This series adds support for Command Duration Limits.
The series is based on linux tag: v6.4-rc1
The series can also be found in git: https://github.com/floatious/linux/commits/cdl-v7

=================
CDL in ATA / SCSI
=================
Command Duration Limits is defined in:
T13 ATA Command Set - 5 (ACS-5) and
T10 SCSI Primary Commands - 6 (SPC-6) respectively
(a simpler version of CDL is defined in T10 SPC-5).

CDL defines Duration Limits Descriptors (DLD).
7 DLDs for read commands and 7 DLDs for write commands.
Simply put, a DLD contains a limit and a policy.

A command can specify that a certain limit should be applied by setting
the DLD index field (3 bits, so 0-7) in the command itself.

The DLD index points to one of the 7 DLDs.
DLD index 0 means no descriptor, so no limit.
DLD index 1-7 means DLD 1-7.

A DLD can have a few different policies, but the two major ones are:
-Policy 0xF (abort), command will be completed with command aborted error
(ATA) or status CHECK CONDITION (SCSI), with sense data indicating that
the command timed out.
-Policy 0xD (complete-unavailable), command will be completed without
error (ATA) or status GOOD (SCSI), with sense data indicating that the
command timed out. Note that the command will not have transferred any
data to/from the device when the command timed out, even though the
command returned success.

Regardless of the CDL policy, in case of a CDL timeout, the I/O will
result in a -ETIME error to user-space.

The DLDs are defined in the CDL log page(s) and are readable and writable.
Reading and writing the CDL DLDs are outside the scope of the kernel.
If a user wants to read or write the descriptors, they can do so using a
user-space application that sends passthrough commands, such as cdl-tools:
https://github.com/westerndigitalcorporation/cdl-tools

================================
The introduction of ioprio hints
================================
What the kernel does provide, is a method to let I/O use one of the CDL DLDs
defined in the device. Note that the kernel will simply forward the DLD index
to the device, so the kernel currently does not know, nor does it need to know,
how the DLDs are defined inside the device.

The way that the CDL DLD index is supplied to the kernel is by introducing a
new 10 bit "ioprio hint" field within the existing 16 bit ioprio definition.

Currently, only 6 out of the 16 ioprio bits are in use, the remaining 10 bits
are unused, and are currently explicitly disallowed to be set by the kernel.

For now, we only add ioprio hints representing CDL DLD index 1-7. Additional
ioprio hints for other QoS features could be defined in the future.

A theoretical future work could be to make an I/O scheduler aware of these
hints. E.g. for CDL, an I/O scheduler could make use of the duration limit
in each descriptor, and take that information into account while scheduling
commands. Right now, the ioprio hints will be ignored by the I/O schedulers.

==============================
How to use CDL from user-space
==============================
Since CDL is mutually exclusive with NCQ priority
(see ncq_prio_enable and sas_ncq_prio_enable in
Documentation/ABI/testing/sysfs-block-device),
CDL has to be explicitly enabled using:
echo 1 > /sys/block/$bdev/device/cdl_enable

Since the ioprio hints are supplied through the existing I/O priority API,
it should be simple for an application to make use of the ioprio hints.

It simply has to reuse one of the new macros defined in
include/uapi/linux/ioprio.h: IOPRIO_PRIO_HINT() or IOPRIO_PRIO_VALUE_HINT(),
and supply one of the new hints defined in include/uapi/linux/ioprio.h:
IOPRIO_HINT_DEV_DURATION_LIMIT_[1-7], which indicates that the I/O should
use the corresponding CDL DLD index 1-7.

By reusing the I/O priority API, the user can both define a DLD to use per
AIO (io_uring sqe->ioprio or libaio iocb->aio_reqprio) or per-thread
(ioprio_set()).

=======
Testing
=======
With the following fio patches:
https://github.com/floatious/fio/commits/cdl

fio adds support for ioprio hints, such that CDL can be tested using e.g.:
fio --ioengine=io_uring --cmdprio_percentage=10 --cmdprio_hint=DLD_index

A simple way to test is to use a DLD with a very short duration limit,
and send large reads. Regardless of the CDL policy, in case of a CDL
timeout, the I/O will result in a -ETIME error to user-space.

We also provide a CDL test suite located in the cdl-tools repo, see:
https://github.com/westerndigitalcorporation/cdl-tools#testing-a-system-command-duration-limits-support

We have tested this patch series using:
-real hardware
-the following QEMU implementation:
https://github.com/floatious/qemu/tree/cdl
(NOTE: the QEMU implementation requires you to define the CDL policy at compile
time, so you currently need to recompile QEMU when switching between policies.)

===================
Further information
===================
For further information about CDL, see Damien's slides:

Presented at SDC 2021:
https://www.snia.org/sites/default/files/SDC/2021/pdfs/SNIA-SDC21-LeMoal-Be-On-Time-command-duration-limits-Feature-Support-in%20Linux.pdf

Presented at Lund Linux Con 2022:
https://drive.google.com/file/d/1I6ChFc0h4JY9qZdO1bY5oCAdYCSZVqWw/view?usp=sharing

================
Changes since V6
================
-Rebased series on v6.4-rc1.
-Picked up Reviewed-by tags from Hannes (Thank you Hannes!)
-Picked up Reviewed-by tag from Christoph (Thank you Christoph!)
-Changed KernelVersion from 6.4 to 6.5 for new sysfs attributes.

For older change logs, see previous patch series versions:
https://lore.kernel.org/linux-scsi/20230406113252.41211-1-nks@flawful.org/
https://lore.kernel.org/linux-scsi/20230404182428.715140-1-nks@flawful.org/
https://lore.kernel.org/linux-scsi/20230309215516.3800571-1-niklas.cassel@wdc.com/
https://lore.kernel.org/linux-scsi/20230124190308.127318-1-niklas.cassel@wdc.com/
https://lore.kernel.org/linux-scsi/20230112140412.667308-1-niklas.cassel@wdc.com/
https://lore.kernel.org/linux-scsi/20221208105947.2399894-1-niklas.cassel@wdc.com/

Link: https://lore.kernel.org/r/20230511011356.227789-1-nks@flawful.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2023-05-22 17:09:51 -04:00
..
amba
atomic locking/atomic: Correct (cmp)xchg() instrumentation 2023-04-29 09:09:31 +02:00
avf
bcma
byteorder
can
cdx
ceph
clk
comedi
crush
decompress
device
dma
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 v6.4 merge window RDMA pull request 2023-04-29 17:21:24 -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
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 Release Notes 2023-04-29 11:04:14 -07:00
surface_aggregator
ulpi
unaligned
usb Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
8250_pci.h
acct.h
acpi.h hyperv-next for v6.4 2023-04-27 17:17:12 -07:00
acpi_agdi.h
acpi_apmt.h
acpi_dma.h
acpi_iort.h
acpi_mdio.h
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 platform/x86: apple-gmux: Fix iomem_base __iomem annotation 2023-04-06 14:24:04 +02:00
apple-mailbox.h
arch_topology.h
arm-cci.h
arm-smccc.h irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4 2023-04-08 10:51:23 +01:00
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 scsi: ata: libata: Handle completion of CDL commands using policy 0xD 2023-05-22 17:05:20 -04:00
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
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
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-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
blk_types.h Merge patch series "Add Command Duration Limits support" 2023-05-22 17:09:51 -04:00
blkdev.h for-6.4/block-2023-05-06 2023-05-06 08:28:58 -07:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h
bootmem_info.h
bottom_half.h
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
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
bpfilter.h
bpfptr.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf.h bpf: Remove KF_KPTR_GET kfunc flag 2023-04-16 08:51:24 -07:00
btf_ids.h
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-salt.h
build_bug.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.h
cfi_types.h
cgroup-defs.h
cgroup.h cgroup: rename cgroup_rstat_flush_"irqsafe" to "atomic" 2023-04-18 16:29:49 -07:00
cgroup_api.h
cgroup_rdma.h
cgroup_refcnt.h
cgroup_subsys.h
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.h
clocksource_ids.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-clang.h
compiler-gcc.h
compiler-version.h
compiler.h
compiler_attributes.h
compiler_types.h
completion.h
component.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
container.h
container_of.h
context_tracking.h Objtool changes for v6.4: 2023-04-28 14:02:54 -07:00
context_tracking_irq.h
context_tracking_state.h
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 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.h
cpuidle_haltpoll.h
cpumask.h
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 libcrc32c: remove crc32c_impl 2023-04-17 18:01:23 +02:00
crc32poly.h
crc64.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-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h dm: unexport dm_get_queue_limits() 2023-04-14 12:32:20 -04:00
device.h
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-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
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: 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.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_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
ethtool.h bonding: add software tx timestamping support 2023-04-18 20:48:59 -07:00
ethtool_netlink.h net: ethtool: create and export ethtool_dev_mm_supported() 2023-04-13 22:22:10 -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
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.h New code for 6.4: 2023-04-29 10:35:48 -07: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 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-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify_backend.h
fsverity.h fsverity: use WARN_ON_ONCE instead of WARN_ON 2023-04-11 19:23:15 -07:00
ftrace.h Minor tracing updates: 2023-05-05 13:11:02 -07:00
ftrace_irq.h
futex.h
fwnode.h
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 mm/page_alloc: rename page_alloc_init() to page_alloc_init_cpuhp() 2023-04-05 19:42:53 -07:00
gfp_api.h
gfp_types.h
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
hex.h kernel.h: split the hexadecimal related helpers to hex.h 2023-04-08 13:45:38 -07:00
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hid_bpf.h
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.h
hil_mlc.h
hippidevice.h
hisi_acc_qm.h
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: remove vmf_insert_pfn_xxx_prot() for huge page-table entries 2023-04-05 19:42:56 -07:00
hugetlb.h - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
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
if_tun.h
if_tunnel.h
if_vlan.h net: dsa: tag_ocelot: call only the relevant portion of __skb_vlan_pop() on TX 2023-04-23 14:16:45 +01:00
igmp.h
ihex.h
ima.h
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
interconnect-provider.h interconnect: drop unused icc_link_destroy() interface 2023-04-05 11:29:59 +03: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-pgtable.h
io.h
io_uring.h io_uring: Pass whole sqe to commands 2023-05-04 08:19:05 -06:00
io_uring_types.h io_uring/rsrc: remove rsrc_data refs 2023-04-15 14:44:57 -06:00
ioam6.h
ioam6_genl.h
ioam6_iptunnel.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
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
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
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 kernel.h: split the hexadecimal related helpers to hex.h 2023-04-08 13:45:38 -07:00
kernel_read_file.h
kernel_stat.h
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-checks.h
kmsan.h mm: kmsan: apply __must_check to non-void functions 2023-04-18 16:30:09 -07:00
kmsan_string.h
kmsan_types.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_api.h
kobject_ns.h
kprobes.h
kref.h
kref_api.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.h
ktime_api.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 scsi: ata: libata: Handle completion of CDL commands using policy 0xD 2023-05-22 17:05:20 -04:00
libfdt.h
libfdt_env.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.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
litex.h
livepatch.h
livepatch_sched.h
llc.h
llist.h
llist_api.h
local_lock.h
local_lock_internal.h
lockdep.h
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 lsm/stable-6.4 PR 20230420 2023-04-24 11:21:50 -07:00
lz4.h
lzo.h
mISDNdsp.h
mISDNhw.h
mISDNif.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.h
maple_tree.h
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
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 workingset: memcg: sleep when flushing stats in workingset_refault() 2023-04-18 16:29:50 -07:00
memfd.h memfd: pass argument of memfd_fcntl as int 2023-04-18 16:30:11 -07:00
memory-tiers.h
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
memregion.h
memremap.h
memstick.h
mhi.h
mhi_ep.h
micrel_phy.h
microchipphy.h
migrate.h
migrate_mode.h
mii.h
mii_timestamper.h
min_heap.h
minmax.h
misc_cgroup.h
miscdevice.h
mm.h Add support for new Linear Address Masking CPU feature. This is similar 2023-04-28 09:43:49 -07:00
mm_api.h
mm_inline.h mm/uffd: UFFD_FEATURE_WP_UNPOPULATED 2023-04-05 19:42:44 -07:00
mm_types.h Scheduler changes for v6.4: 2023-04-28 14:53:30 -07:00
mm_types_task.h
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
module.h modules-6.4-rc1 2023-04-27 16:36:55 -07:00
module_signature.h
module_symbol.h module: Ignore L0 and rename is_arm_mapping_symbol() 2023-04-13 17:15:50 -07:00
moduleloader.h
moduleparam.h
most.h
mount.h
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
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 ksmbd: fix racy issue from using ->d_parent and ->d_name 2023-04-24 00:09:20 -05:00
nd.h
ndctl.h
net.h
net_tstamp.h
netdev_features.h
netdevice.h net: optimize napi_threaded_poll() vs RPS/RFS 2023-04-23 13:35:07 +01:00
netfilter.h bpf: add bpf_link support for BPF_NETFILTER programs 2023-04-21 11:34:14 -07:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_netdev.h
netfs.h
netlink.h
netpoll.h
nfs.h nfs: move nfs_fhandle_hash to common include file 2023-04-26 09:05:00 -04:00
nfs3.h
nfs4.h
nfs_fs.h NFSv3: handle out-of-order write replies. 2023-04-11 16:13:21 -04:00
nfs_fs_i.h
nfs_fs_sb.h
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
nfsacl.h
nitro_enclaves.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
nospec.h
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.h Merge patch series "Use block pr_ops in LIO" 2023-05-22 16:35:02 -04:00
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.h
objtool_types.h
of.h Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07:00
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
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 - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
page-isolation.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
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.h
panic_notifier.h
parman.h
parport.h
parport_pc.h
parser.h
part_stat.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
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
pci_hotplug.h
pci_ids.h
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-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h
perf_event_api.h
perf_regs.h
personality.h
pfn.h
pfn_t.h
pgtable.h
pgtable_api.h
phonet.h
phy.h net: phy: phy_device: Call into the PHY driver to set LED blinking 2023-04-19 12:59:16 +01:00
phy_fixed.h
phy_led_triggers.h
phylink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-04-06 12:01:20 -07:00
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
platform_profile.h
pldmfw.h
plist.h
pm-trace.h
pm.h
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
poll.h
polynomial.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
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 block: Add PR callouts for read keys and reservation 2023-04-11 21:55:35 -04:00
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.h sched/psi: Allow unprivileged polling of N*2s period 2023-04-05 09:58:50 +02:00
psi_types.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.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: Delete deprecated functions pwm_request() and pwm_free() 2023-04-13 14:27:53 +02:00
pwm_backlight.h
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.h
ratelimit_types.h
rational.h
rbtree.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
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
rcuref.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: 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.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
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.h
rwlock_api_smp.h
rwlock_rt.h
rwlock_types.h
rwsem.h
sbitmap.h
scatterlist.h
scc.h
sched.h tracing updates for 6.4: 2023-04-28 15:57:53 -07:00
sched_clock.h
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.h
scx200_gpio.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.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.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.h
seq_file_net.h
seqlock.h
seqlock_api.h
serdev.h serdev: Add method to assert break signal over tty UART port 2023-04-23 21:51:25 -07:00
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_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
signal.h
signal_types.h
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h bpf-next-for-netdev 2023-04-21 20:32:37 -07:00
skmsg.h
slab.h - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
slab_def.h
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smp.h SMP cross-CPU function-call updates for v6.4: 2023-04-28 15:03:43 -07:00
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 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.h
static_call_types.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.h
string_helpers.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.h
swait_api.h
swap.h mm: correct arg in reclaim_pages()/reclaim_clean_pages_from_list() 2023-04-21 14:52:02 -07:00
swap_cgroup.h
swap_slots.h
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.h
sys_soc.h
syscall_user_dispatch.h ptrace: Provide set/get interface for syscall user dispatch 2023-04-16 14:23:07 +02:00
syscalls.h
syscalls_api.h
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.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: Encapsulate tz->device field 2023-04-27 19:20:12 +02:00
thread_info.h
threads.h
thunderbolt.h
ti-emif-sram.h
ti_wilink_st.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
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
torture.h
toshiba.h
tpm.h tpm: Re-enable TPM chip boostrapping non-tpm_tis TPM drivers 2023-04-28 13:06:36 +00:00
tpm_command.h
tpm_eventlog.h
trace.h
trace_clock.h
trace_events.h
trace_recursion.h
trace_seq.h
tracefs.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty.h Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
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
ubsan.h
ucs2_string.h
udp.h
uidgid.h
uio.h mm: hwpoison: coredump: support recovery from dump_user_range() 2023-05-02 17:21:50 -07:00
uio_driver.h
umh.h
unicode.h
units.h
uprobes.h
usb.h USB / Thunderbolt changes for 6.4-rc1 2023-04-27 11:42:11 -07:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_events.h
user_namespace.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.h VFIO updates for v6.4-rc1 2023-05-02 11:56:43 -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_ring: Use const to annotate read-only pointer params 2023-04-21 03:02:30 -04:00
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
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.h
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
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 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.h
zstd_errors.h
zstd_lib.h
zutil.h