Johannes Weiner
6c0600ad29
UPSTREAM: mm: memcontrol: recursive memory.low protection
...
Right now, the effective protection of any given cgroup is capped by its
own explicit memory.low setting, regardless of what the parent says. The
reasons for this are mostly historical and ease of implementation: to make
delegation of memory.low safe, effective protection is the min() of all
memory.low up the tree.
Unfortunately, this limitation makes it impossible to protect an entire
subtree from another without forcing the user to make explicit protection
allocations all the way to the leaf cgroups - something that is highly
undesirable in real life scenarios.
Consider memory in a data center host. At the cgroup top level, we have a
distinction between system management software and the actual workload the
system is executing. Both branches are further subdivided into individual
services, job components etc.
We want to protect the workload as a whole from the system management
software, but that doesn't mean we want to protect and prioritize
individual workload wrt each other. Their memory demand can vary over
time, and we'd want the VM to simply cache the hottest data within the
workload subtree. Yet, the current memory.low limitations force us to
allocate a fixed amount of protection to each workload component in order
to get protection from system management software in general. This
results in very inefficient resource distribution.
Another concern with mandating downward allocation is that, as the
complexity of the cgroup tree grows, it gets harder for the lower levels
to be informed about decisions made at the host-level. Consider a
container inside a namespace that in turn creates its own nested tree of
cgroups to run multiple workloads. It'd be extremely difficult to
configure memory.low parameters in those leaf cgroups that on one hand
balance pressure among siblings as the container desires, while also
reflecting the host-level protection from e.g. rpm upgrades, that lie
beyond one or more delegation and namespacing points in the tree.
It's highly unusual from a cgroup interface POV that nested levels have to
be aware of and reflect decisions made at higher levels for them to be
effective.
To enable such use cases and scale configurability for complex trees, this
patch implements a resource inheritance model for memory that is similar
to how the CPU and the IO controller implement work-conserving resource
allocations: a share of a resource allocated to a subree always applies to
the entire subtree recursively, while allowing, but not mandating,
children to further specify distribution rules.
That means that if protection is explicitly allocated among siblings,
those configured shares are being followed during page reclaim just like
they are now. However, if the memory.low set at a higher level is not
fully claimed by the children in that subtree, the "floating" remainder is
applied to each cgroup in the tree in proportion to its size. Since
reclaim pressure is applied in proportion to size as well, each child in
that tree gets the same boost, and the effect is neutral among siblings -
with respect to each other, they behave as if no memory control was
enabled at all, and the VM simply balances the memory demands optimally
within the subtree. But collectively those cgroups enjoy a boost over the
cgroups in neighboring trees.
E.g. a leaf cgroup with a memory.low setting of 0 no longer means that
it's not getting a share of the hierarchically assigned resource, just
that it doesn't claim a fixed amount of it to protect from its siblings.
This allows us to recursively protect one subtree (workload) from another
(system management), while letting subgroups compete freely among each
other - without having to assign fixed shares to each leaf, and without
nested groups having to echo higher-level settings.
The floating protection composes naturally with fixed protection.
Consider the following example tree:
A A: low = 2G
/ \ A1: low = 1G
A1 A2 A2: low = 0G
As outside pressure is applied to this tree, A1 will enjoy a fixed
protection from A2 of 1G, but the remaining, unclaimed 1G from A is split
evenly among A1 and A2, coming out to 1.5G and 0.5G.
There is a slight risk of regressing theoretical setups where the
top-level cgroups don't know about the true budgeting and set bogusly high
"bypass" values that are meaningfully allocated down the tree. Such
setups would rely on unclaimed protection to be discarded, and
distributing it would change the intended behavior. Be safe and hide the
new behavior behind a mount option, 'memory_recursiveprot'.
Change-Id: I7935aa5271093d4b84a5ce0deeda9593ea0ac4ee
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: Roman Gushchin <guro@fb.com>
Acked-by: Chris Down <chris@chrisdown.name>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Michal Koutný <mkoutny@suse.com>
Link: http://lkml.kernel.org/r/20200227195606.46212-4-hannes@cmpxchg.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-01-14 18:13:12 -08:00
..
amba
avf
bcma
byteorder
can
ceph
clk
crush
decompress
dma
dsa
extcon
firmware
fpga
fsl
gpio
greybus
haven
hsi
i3c
iio
iio: frequency: adf4350: Fix ADF4350_REG3_12BIT_CLKDIV_MODE
2025-10-29 13:59:50 +01:00
input
irqchip
isdn
lockd
mailbox
mdio
mfd
mlx4
net/mlx4_core: Avoid impossible mlx4_db_alloc() order value
2025-06-04 14:32:33 +02:00
mlx5
RDMA/mlx5: Enforce same type port association for multiport RoCE
2025-01-09 13:23:34 +01:00
mmc
mtd
Merge tag 'ASB-2024-12-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2024-12-17 03:24:53 +02:00
mux
netfilter
Revert "netfilter: Replace zero-length array with flexible-array member"
2025-01-14 17:17:17 +00:00
netfilter_arp
Revert "netfilter: Replace zero-length array with flexible-array member"
2025-01-14 17:17:17 +00:00
netfilter_bridge
Revert "netfilter: Replace zero-length array with flexible-array member"
2025-01-14 17:17:17 +00:00
netfilter_ipv4
Revert "netfilter: Replace zero-length array with flexible-array member"
2025-01-14 17:17:17 +00:00
netfilter_ipv6
Revert "netfilter: Replace zero-length array with flexible-array member"
2025-01-14 17:17:17 +00:00
perf
phy
pinctrl
platform_data
Merge tag 'ASB-2024-10-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2024-10-09 18:08:17 +00:00
power
qed
qed: Improve the stack space of filter_config()
2024-08-19 05:33:30 +02:00
qpnp
raid
regulator
Merge tag 'ASB-2025-09-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-09-12 18:48:05 +03:00
remoteproc
reset
rpmsg
rtc
sched
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
slimbus
soc
soundwire
spi
Revert "spi: Fix deadlock when adding SPI controllers on SPI buses"
2024-11-21 22:00:36 +00:00
ssb
sunrpc
SUNRPC: Replace internal use of SOCKWQ_ASYNC_NOSPACE
2024-12-14 19:44:42 +01:00
ulpi
unaligned
usb
Merge tag 'ASB-2025-10-06_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-10-08 15:17:54 +03:00
wimax
8250_pci.h
a.out.h
acct.h
acpi.h
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
adb.h
adc-tm-clients.h
adfs_fs.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
alcor_pci.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
android_kabi.h
android_vendor.h
anon_inodes.h
UPSTREAM: fs: add LSM-supporting anon-inode interface
2025-02-20 04:17:45 +02:00
apm-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arch_topology.h
arm-cci.h
arm-smccc.h
arm_sdei.h
armada-37xx-rwtm-mailbox.h
ascii85.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
ata: libata-scsi: Fix system suspend for a security locked drive
2025-12-03 12:45:21 +01:00
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control().
2025-09-04 14:05:54 +02:00
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atomic-fallback.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
backing-dev.h
writeback: fix false warning in inode_to_wb()
2025-05-02 07:39:19 +02:00
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
Revert "coredump: hand a pidfd to the usermode coredump helper"
2025-06-05 07:57:32 +00:00
bio-crypt-ctx.h
bio.h
bit_spinlock.h
bitfield.h
bitmap.h
fix bitmap corruption on close_range() with CLOSE_RANGE_UNSHARE
2024-09-04 13:14:50 +02:00
bitops.h
bitrev.h
bits.h
blk-cgroup.h
blk-crypto.h
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h
blk-pm.h
blk_types.h
blkdev.h
Merge 5.4.287 into android11-5.4-lts
2024-12-16 10:50:16 +00:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bottom_half.h
bpf-cgroup.h
UPSTREAM: bpf: Fix potentially incorrect results with bpf_get_local_storage()
2026-01-14 18:12:57 -08:00
bpf-netns.h
UPSTREAM: bpf: Introduce SK_LOOKUP program type with a dedicated attach point
2026-01-14 18:12:05 -08:00
bpf.h
BACKPORT: bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues
2026-01-14 18:13:10 -08:00
bpf_lirc.h
bpf_local_storage.h
UPSTREAM: bpf: Split bpf_local_storage to bpf_sk_storage
2026-01-14 18:12:20 -08:00
bpf_lsm.h
UPSTREAM: bpf: Implement bpf_local_storage for inodes
2026-01-14 18:12:21 -08:00
bpf_trace.h
bpf_types.h
UPSTREAM: bpf: Fix OOB read when printing XDP link fdinfo
2026-01-14 18:12:56 -08:00
bpf_verifier.h
UPSTREAM: bpf: Add helper macro bpf_for_each_reg_in_vstate
2026-01-14 18:13:03 -08:00
bpfilter.h
UPSTREAM: umd: For clarity rename umh_info umd_info
2026-01-14 18:12:15 -08:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf.h
UPSTREAM: bpf: Introduce bpf_per_cpu_ptr()
2026-01-14 18:12:39 -08:00
btf_ids.h
BACKPORT: btf: Add BTF_ID_LIST_SINGLE macro
2026-01-14 18:12:31 -08:00
btpower.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build-salt.h
build_bug.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
UPSTREAM: bpf, capability: Introduce CAP_BPF
2026-01-14 17:44:17 -08:00
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cfi.h
cgroup-defs.h
UPSTREAM: mm: memcontrol: recursive memory.low protection
2026-01-14 18:13:12 -08:00
cgroup.h
UPSTREAM: cgroup: use cgrp->kn->id as the cgroup ID
2025-12-23 13:36:09 -08:00
cgroup_rdma.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
compat.h
BACKPORT: epoll: wire up syscall epoll_pwait2
2025-12-22 07:42:50 +02:00
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler.h
compiler_attributes.h
Fix gcc 4.9 build issue in 5.4.y
2024-08-19 05:33:53 +02:00
compiler_types.h
This is the 5.4.302 stable release
2025-12-03 14:36:44 +00:00
completion.h
component.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
container.h
context_tracking.h
context_tracking_state.h
cookie.h
UPSTREAM: bpf, net: Rework cookie generator as per-cpu one
2026-01-14 18:12:39 -08:00
cordic.h
coredump.h
coresight-cti.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter.h
counter_enum.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h
cpufreq_times.h
cpuhotplug.h
cpuidle.h
cpuidle_haltpoll.h
cpumask.h
Merge tag 'ASB-2024-10-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2024-10-09 18:08:17 +00:00
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-qti-common.h
crypto.h
crypto_qti_virt.h
cryptohash.h
BACKPORT: crypto: lib/sha1 - rename "sha" to "sha1"
2025-12-23 13:36:17 -08:00
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
devcoredump.h
devfreq-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h
This is the 5.4.283 stable release
2024-09-06 11:18:13 +00:00
device.h
Merge tag 'ASB-2025-12-01_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-12-04 19:21:35 +02:00
device_cgroup.h
devpts_fs.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
dm9000.h
dma-buf-ref.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence.h
dma-iommu.h
dma-mapping-fast.h
dma-mapping.h
Merge tag 'ASB-2025-08-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-09-01 13:17:46 +03:00
dma-noncoherent.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_genl.h
drbd_genl_api.h
drbd_limits.h
ds2782_battery.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
eeprom_93cx6.h
misc: eeprom: eeprom_93cx6: Add quirk for extra read clock cycle
2024-12-14 19:44:55 +01:00
eeprom_93xx46.h
efi-bgrt.h
efi.h
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
energy_model.h
err.h
errno.h
error-injection.h
errqueue.h
errseq.h
esoc_client.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
BACKPORT: bpf: Add support for BTF pointers to x86 JIT
2025-12-23 13:35:36 -08:00
extcon-provider.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fastcvpd.h
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
UPSTREAM: close_range(): fix the logics in descriptor table trimming
2025-12-22 04:28:18 +02:00
fec.h
file.h
filter.h
UPSTREAM: bpf: net: Change sk_getsockopt() to take the sockptr_t argument
2026-01-14 18:13:09 -08:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_proportions.h
font.h
frame.h
freezer.h
frontswap.h
fs.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
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
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
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
glob.h
gnss.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
greybus.h
guest_shm.h
habmm.h
hardirq.h
hash.h
hashtable.h
hdcp_qseecom.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
This is the 5.4.295 stable release
2025-06-30 08:05:33 +00:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hmm.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
Revert "hrtimers: Handle CPU state correctly on hotplug"
2025-04-26 12:28:45 +02:00
hrtimer_defs.h
htcpld.h
huge_mm.h
hugetlb.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
hugetlb_cgroup.h
hugetlb_inline.h
Revert "mm: provide speculative fault infrastructure"
2025-05-24 05:44:05 +00:00
hw_breakpoint.h
hw_random.h
hwkm.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
Drivers: hv: util: Avoid accessing a ringbuffer not initialized yet
2025-01-09 13:23:33 +01:00
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-msm-v2.h
i2c-mux.h
i2c-pxa.h
i2c-smbus.h
i2c.h
i2c: Use IS_REACHABLE() for substituting empty ACPI functions
2024-09-12 11:03:50 +02:00
i8042.h
i8253.h
clockevents/drivers/i8253: Fix stop sequence for timer 0
2025-04-10 14:29:34 +02:00
icmp.h
icmpv6.h
ide.h
idle_inject.h
idr.h
ieee80211.h
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.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: vlan: Replace BUG() with WARN_ON_ONCE() in vlan_dev_* stubs
2025-08-28 16:21:27 +02: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_task.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-ish-client-if.h
intel-pti.h
intel-svm.h
intel_rapl.h
intel_th.h
interconnect-provider.h
interconnect.h
interrupt.h
Merge branch 'android11-5.4-lts' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-10-08 15:23:13 +03:00
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io-pgtable-fast.h
io-pgtable.h
io.h
ioc3.h
iocontext.h
iomap.h
iommu-helper.h
iommu.h
Merge android11-5.4.281 ( d62984a) into msm-5.4
2024-10-29 01:43:17 -07:00
ion.h
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipa.h
ipa_eth.h
ipa_fmwk.h
ipa_mhi.h
ipa_odu_bridge.h
ipa_qdss.h
ipa_uc_offload.h
ipa_usb.h
ipa_wdi3.h
ipa_wigig.h
ipack.h
ipc.h
ipc_logging.h
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
Revert "genirq: Allow irq_chip registration functions to take a const irq_chip"
2024-08-30 10:05:12 +00:00
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h
UPSTREAM: irq_work: Convert flags to atomic_t
2025-12-23 13:35:39 -08:00
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
Revert "genirq: Allow the PM device to originate from irq domain"
2024-08-30 10:05:12 +00:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isicom.h
iversion.h
jbd2.h
jbd2: introduce/export functions jbd2_journal_submit|finish_inode_data_buffers()
2024-11-08 16:20:30 +01:00
jhash.h
jiffies.h
Merge 5.4.287 into android11-5.4-lts
2024-12-16 10:50:16 +00:00
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
This is the 5.4.291 stable release
2025-03-13 14:53:52 +00:00
kasan-checks.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h
kernel_stat.h
kernelcapi.h
kernfs.h
UPSTREAM: kernfs: Add option to enable user xattrs
2026-01-14 18:13:12 -08:00
kexec.h
key-type.h
key.h
keyboard.h
keyctl.h
keyslot-manager.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()
2025-03-13 12:43:07 +01:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lantiq.h
lapb.h
latencytop.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
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-qpnp-flash-v2.h
leds-qpnp-flash.h
leds-qti-flash.h
leds-regulator.h
leds-tca6507.h
leds-ti-lmu-common.h
leds.h
leds: class: Protect brightness_show() with led_cdev->led_access mutex
2024-12-14 19:44:53 +01:00
leds_pwm.h
libata.h
libfdt.h
libfdt_env.h
libgcc.h
libnvdimm.h
libps2.h
license.h
lightnvm.h
limits.h
BACKPORT: bpf: Verifier, do explicit ALU32 bounds tracking
2025-12-23 13:36:11 -08:00
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list.h
UPSTREAM: list: Add hlist_unhashed_lockless()
2026-01-14 18:13:06 -08:00
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
livepatch.h
llc.h
llist.h
lockdep.h
lockref.h
log2.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hook_defs.h
BACKPORT: security: Refactor declaration of LSM hooks
2025-12-23 13:36:10 -08:00
lsm_hooks.h
BACKPORT: security: Refactor declaration of LSM hooks
2025-12-23 13:36:10 -08:00
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.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_cl_bus.h
mem-buf.h
mem_encrypt.h
memblock.h
memcontrol.h
memfd.h
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
memremap.h
memstick.h
mhi.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate.h
Revert "mm/migrate: Pass vm_fault pointer to migrate_misplaced_page()"
2025-05-24 05:44:07 +00:00
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm-arch-hooks.h
mm.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
mm_inline.h
mm_types.h
Revert "mm: make pte_unmap_same compatible with SPF"
2025-05-24 05:44:30 +00:00
mm_types_task.h
mman.h
mmap_lock.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
mnt_namespace.h
mod_devicetable.h
module.h
module_signature.h
moduleloader.h
moduleparam.h
module: Restore the moduleparam prefix length check
2025-08-28 16:21:21 +02:00
mount.h
moxtet.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
mroute_base.h
msdos_fs.h
msg.h
msi.h
msm-geni-se.h
msm-sps.h
msm_dma_iommu_mapping.h
msm_ep_pcie.h
msm: ep_pcie: Disable hot reset and ignore linkdown
2024-09-13 17:38:37 +05:30
msm_ext_display.h
msm_gpi.h
msm_gsi.h
msm_ion.h
msm_kgsl.h
msm_mhi_dev.h
msm_pcie.h
msm_rtb.h
msm_show_resume_irq.h
msm_smd_pkt.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
ndctl.h
net.h
netdev_features.h
netdevice.h
BACKPORT: bpf: Add redirect_peer helper
2026-01-14 18:12:44 -08:00
netfilter.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
netpoll: netpoll_send_skb() returns transmit status
2025-04-10 14:29:35 +02:00
neuron.h
neuron_block.h
nfcinfo.h
nfs.h
nfs: add missing selections of CONFIG_CRC32
2025-05-02 07:39:20 +02:00
nfs3.h
nfs4.h
nfs_fs.h
nfs: fix UAF in direct writes
2025-08-28 16:21:37 +02:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nl802154.h
nls.h
nmi.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
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-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme.h
nvmem-consumer.h
nvmem-provider.h
nvram.h
objagg.h
of.h
Merge tag 'ASB-2025-09-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-09-12 18:48:05 +03:00
of_address.h
of_clk.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
oid_registry.h
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
overflow.h
overflow: Allow mixed type arguments
2025-03-13 12:42:52 +01:00
OWNERS
packing.h
padata.h
page-flags-layout.h
page-flags.h
page-isolation.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
pageblock-flags.h
pagemap.h
Revert "mm: provide speculative fault infrastructure"
2025-05-24 05:44:05 +00:00
pagevec.h
pagewalk.h
parman.h
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-ats.h
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h
pci.h
Revert "PCI/ACPI: Fix runtime PM ref imbalance on Hot-Plug Capable ports"
2025-09-02 14:38:47 +00:00
pci_hotplug.h
pci_ids.h
This is the 5.4.291 stable release
2025-03-13 14:53:52 +00:00
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h
UPSTREAM: perf: Expose get/put_callchain_entry()
2026-01-14 18:12:01 -08:00
perf_regs.h
personality.h
pfk.h
pfn.h
pfn_t.h
pgsize_migration.h
ANDROID: 16K: Don't copy data vma for maps/smaps output
2025-08-22 07:06:50 -07:00
pgsize_migration_inline.h
ANDROID: 16K: Introduce pgsize_migration_inline.h
2024-10-10 16:13:30 -07:00
phonet.h
phy.h
phy_fixed.h
phy_led_triggers.h
phylink.h
pid.h
Merge tag 'ASB-2025-08-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-09-01 13:17:46 +03:00
pid_namespace.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
pl353-smc.h
platform_device.h
plist.h
pm-trace.h
pm.h
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pmbus.h
pmic-voter.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
poll_wait: add mb() to fix theoretical race between waitqueue_active() and .poll()
2025-02-01 18:18:51 +01:00
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h
power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint
2025-05-25 16:53:58 +00:00
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
pps: fix poll support
2025-08-28 16:21:18 +02:00
pr.h
prandom.h
preempt.h
prefetch.h
prime_numbers.h
printk.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
proc_fs.h
UPSTREAM: bpf: Refactor to provide aux info to bpf_iter_init_seq_priv_t
2026-01-14 18:12:07 -08:00
proc_ns.h
UPSTREAM: fs/nsfs.c: Added ns_match
2025-12-23 13:36:04 -08:00
processor.h
profile.h
projid.h
property.h
psci.h
pseudo_fs.h
psi.h
psi_types.h
psp-sev.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qcom-geni-se.h
qcom_scm.h
qcomwlan_secif.h
qcrypto.h
qnx6_fs.h
qtee_shmbridge.h
qti_power_supply.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist.h
UPSTREAM: list: Add hlist_unhashed_lockless()
2026-01-14 18:13:06 -08:00
rculist_bl.h
rculist_nulls.h
rcupdate.h
UPSTREAM: rcu-tasks: Add an RCU-tasks rude variant
2026-01-14 18:12:25 -08:00
rcupdate_trace.h
UPSTREAM: rcu-tasks: Add an RCU Tasks Trace to simplify protection of tracing hooks
2026-01-14 18:12:26 -08:00
rcupdate_wait.h
rcutiny.h
rcutree.h
rcu: fix header guard for rcu_all_qs()
2025-06-04 14:32:34 +02:00
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h
regset.h
relay.h
remoteproc.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
This is the 5.4.284 stable release
2024-09-12 10:37:37 +00:00
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
Revert "mm: introduce __page_add_new_anon_rmap()"
2025-05-24 05:44:06 +00:00
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rq_stats.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem.h
s3c_adc_battery.h
sbitmap.h
scatterlist.h
scc.h
sched.h
UPSTREAM: rcu-tasks: Add an RCU Tasks Trace to simplify protection of tracing hooks
2026-01-14 18:12:26 -08:00
sched_clock.h
scif.h
scmi_protocol.h
scpi_protocol.h
screen_info.h
scs.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
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
seqno-fence.h
serdev.h
serial.h
serial_8250.h
Revert "Revert "Revert "8250: add support for ASIX devices with a FIFO bug"""
2025-05-18 11:04:18 +03:00
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
set_memory.h
sfi.h
sfi_acpi.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
dmaengine: sh: setup_xref error handling
2025-12-03 12:45:11 +01:00
shm.h
shmem_fs.h
BACKPORT: FROMGIT: userfaultfd/shmem: combine shmem_{mcopy_atomic,mfill_zeropage}_pte
2025-05-18 08:08:42 +00:00
show_mem_notifier.h
shrinker.h
signal.h
signal_types.h
signalfd.h
siox.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h
UPSTREAM: bpf: Add redirect_neigh helper as redirect drop-in
2026-01-14 18:12:39 -08:00
skmsg.h
BACKPORT: bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues
2026-01-14 18:13:10 -08:00
slab.h
slab_def.h
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
UPSTREAM: bpf, net: Rework cookie generator as per-cpu one
2026-01-14 18:12:39 -08:00
socket.h
sockptr.h
UPSTREAM: bpf: net: Change sk_getsockopt() to take the sockptr_t argument
2026-01-14 18:13:09 -08:00
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h
stackleak.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
stm.h
stmmac.h
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
suspend.h
svga.h
sw842.h
swab.h
swait.h
swap.h
Revert "mm: introduce __lru_cache_add_active_or_unevictable"
2025-05-24 05:44:06 +00:00
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h
BACKPORT: epoll: wire up syscall epoll_pwait2
2025-12-22 07:42:50 +02:00
syscore_ops.h
sysctl.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08: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
BACKPORT: tcp: bpf: Optionally store mac header in TCP_SAVE_SYN
2026-01-14 18:12:18 -08:00
tee_drv.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
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
timecounter.h
timekeeper_internal.h
timekeeping.h
timekeeping32.h
timer.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
BACKPORT: bpf: Verifier, do explicit ALU32 bounds tracking
2025-12-23 13:36:11 -08:00
topology.h
torture.h
toshiba.h
tpm.h
tpm_command.h
tpm_eventlog.h
trace.h
trace_clock.h
trace_events.h
Revert "tracing: Constify string literal data member in struct trace_event_call"
2025-01-13 09:47:29 +00:00
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
types: Complement the aligned types with signed 64-bit one
2025-06-04 14:32:27 +02:00
u64_stats_sync.h
uaccess.h
UPSTREAM: maccess: rename strncpy_from_unsafe_strict to strncpy_from_kernel_nofault
2026-01-14 18:12:55 -08:00
ucb1400.h
ucs2_string.h
udp.h
UPSTREAM: udp: do not accept non-tunnel GSO skbs landing in a tunnel
2025-03-10 16:19:50 +00:00
uidgid.h
uio.h
uio_driver.h
umh.h
BACKPORT: umh: Separate the user mode driver and the user mode helper support
2026-01-14 18:12:14 -08:00
unicode.h
units.h
uprobes.h
usb.h
Merge branch 'android11-5.4-lts' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-12-11 01:41:51 -08:00
usb_bam.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
userfaultfd_k.h
BACKPORT: FROMGIT: userfaultfd/shmem: modify shmem_mfill_atomic_pte to use install_pte()
2025-05-18 08:08:42 +00:00
usermode_driver.h
UPSTREAM: bpf: Fix umd memory leak in copy_process()
2026-01-14 18:12:50 -08:00
util_macros.h
util_macros.h: fix/rework find_closest() macros
2024-12-14 19:44:43 +01:00
uts.h
utsname.h
uuid.h
vbox_utils.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio_byteorder.h
virtio_caif.h
virtio_clk.h
virtio_config.h
virtio_console.h
virtio_net.h
virtio_regulator.h
virtio_ring.h
virtio_spmi.h
virtio_vsock.h
visorbus.h
vlynq.h
vm_event_item.h
Revert "mm: add speculative page fault vmstats"
2025-05-24 05:44:04 +00:00
vm_sockets.h
vmacache.h
vmalloc.h
BACKPORT: mm: remove the pgprot argument to __vmalloc
2026-01-14 17:48:09 -08:00
vme.h
vmpressure.h
vmstat.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
w1.h
wait.h
Merge tag 'ASB-2025-02-05_11-5.4' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-02-06 22:53:05 +02:00
wait_bit.h
wakeup_reason.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h
writeback.h
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
ww_mutex.h
xarray.h
xattr.h
UPSTREAM: kernfs: Add removed_size out param for simple_xattr_set
2026-01-14 18:13:12 -08:00
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zutil.h