KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelTasklists

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents
Revision 70 as of 2026-07-25 22:20:15
KernelNewbies:
  • Linux_7.2

Linux 7.2 changelog.

Summary:

Contents

  1. Prominent features
    1. Faster performance and less cache misses with cache-aware task scheduling
    2. Better memory reclaiming, for better performance
    3. Swap table phase IV
    4. Various Btrfs improvements
    5. New dm-inlinecrypt target for inline block device encryption
    6. openat(2) extensions
    7. Speedup reading /proc/filesystems and /proc/interrupts
    8. Preparations for the introduction of sched_ext sub-schedulers
  2. Core (various)

1. Prominent features

1.1. Faster performance and less cache misses with cache-aware task scheduling

This release introduces cache-aware load balancing of tasks, with the goal of co-locating tasks that share data (ie. threads of the same process) within the same Last Level Cache domain. By improving cache locality, the scheduler can reduce cache bouncing and cache misses, ultimately improving data access efficiency.

Recommended LWN article: Cache awareness for the CPU scheduler

1.2. Better memory reclaiming, for better performance

Memory reclaiming, which is the part of the kernel that decides which parts of the memory should be sent to the swap or evicted from memory, has been improved. This release cleans up and slightly improve MGLRU's reclaim loop and dirty writeback handling. As a result, we can see an up to ~30% increase in some workloads like MongoDB with YCSB and a huge decrease in file refault, no swap involved. Other common benchmarks have no regression, and LOC is reduced, with less unexpected OOM, too.

1.3. Swap table phase IV

Phase IV of the swap table work (phase I, II, III)

This release unifies the allocation and charging of anonymous and shmem swap in folios, provides better synchronization, consolidates the metadata management, hence dropping the static array and map, and improves the performance. The static metadata overhead is now close to zero, and workload performance is slightly improved. For example, mounting a 1TB swap device saves about 512MB of memory.

Recommended LWN article: Swap tables, flash-friendly swap, swap_ops, and more

1.4. Various Btrfs improvements

This release brings various improvements for the Btrfs file system:

  • Enable large folios by default (they were experimental since 6.17), with no feature limitations
  • Experimental support for huge folios (up to 2M)
  • New GET_CSUMS ioctl to return raw checksums to userspace, can be used for mkfs and deduplication optimizations

  • Performance improvements on sequential writes and direct IO

1.5. New dm-inlinecrypt target for inline block device encryption

This release introduces a new dm target, dm-inlinecrypt, to support inline block-device encryption. The implementation builds on the work previously done in Android’s dm-default-key, but intentionally drops passthrough support, as that functionality does not appear likely to be accepted upstream in the near future. With this limitation, dm-inlinecrypt is positioned as a practical replacement for dm-crypt, rather than a general passthrough mechanism.

1.6. openat(2) extensions

This release adds a couple of flags to the openat(2) system calls:

  • OPENAT2_REGULAR flag, which refuses to open anything but regular files, protecting services from being redirected to fifos, device nodes, and friends

  • Add O_EMPTYPATH flag to openat(2)/openat2(2). If passed, an empty path string is accepted and LOOKUP_EMPTY is set at path resolution time, allowing to reopen the file behind the file descriptor directly

1.7. Speedup reading /proc/filesystems and /proc/interrupts

Performance when reading these two procfs files is not relevant for most applications, however some extreme users benefit from optimizing these files as much as possible, or are even used more often that you would expect (/proc/filesystems is read by libselinux and is linked into numerous frequently used programs, even simple ones like sed). This release optimizes the generation of these files.

1.8. Preparations for the introduction of sched_ext sub-schedulers

This release adds infrastructure that will be used to support sub-schedulers in sched_ext. These will be used for use cases like, for example, using different sched_ext schedulers in different cgroups

Recommended LWN article: Sub-schedulers for sched_ext

2. Core (various)

  • exec: relocate the dumpable mode and the user_namespace captured at execve() from mm_struct onto a new per-task task_exec_state structure that stays attached to the task for its full lifetime (cover), commit, commit, commit, commit

  • futex: Address the robust futex unlock race for real (cover), commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Task scheduler
    • (FEATURED) Cache aware scheduling, with the goal of co-locating tasks that share data within the same Last Level Cache (LLC) domain. By improving cache locality, the scheduler can reduce cache bouncing and cache misses (cover), commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit and Cache aware scheduling enhancements (cover), commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Optimized Donor Migration for Proxy Execution (cover), commit, commit, commit, commit, commit, commit

    • tick: Refactor idle cputime accounting (cover), commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • (FEATURED) sched_ext: Topological CPU IDs (cids): a dense, topology-ordered CPU numbering where the CPUs of a core, LLC, or NUMA node form contiguous ranges, so a topology unit becomes a (start, length) slice (cover), commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • sched_ext: Improve exit-time diagnostics (cover), commit, commit, commit

    • sched_ext: bitmaps windowed over a slice of cid space, so a sub-scheduler can track, for example, the idle cids of its shard without a full NR_CPUS cpumask (cover), commit, commit, commit

    • scx_qmap: Convert to BPF arena (cover), commit, commit, commit, commit

    • fair: attempts to improve SD_ASYM_CPUCAPACITY scheduling by introducing SMT awareness (cover), commit, commit, commit, commit, commit

  • io_uring
    • zcrx: Add a mechanism to communicate conditions back to userspace via a dedicated CQE, with the initial users being notification on running out of buffers and on a frag copy fallback, plus shared-memory notification statistics (cover), commit, commit, commit, commit

    • net: support registered buffer for plain send and recv commit

    • net: allow filtering on IORING_OP_CONNECT commit

  • pipe: reduce pipe->mutex contention by pre-allocating outside the lock. On a writers x readers sweep with 64KB writes against a 1 MB pipe throughput improves 6-28% and average write latency drops 5-22%; under memory pressure - when the cost of holding the mutex across reclaim is highest - throughput improves 21-48% and latency drops 17-33% (cover), commit, commit

  • Improve write performance with RWF_DONTCACHE (cover), commit, commit, commit

  • proc: subset=pid: Relax check of mount visibility (cover), commit, commit, commit, commit, commit, commit, commit

  • Simple xattr improvements (cover), commit, commit, commit, commit

  • (FEATURED) Add O_EMPTYPATH to openat(2)/openat2(2). If passed, LOOKUP_EMPTY is set at path resolution time (cover), commit, commit

  • (FEATURED) openat(2): OPENAT2_REGULAR flag support, which refuses to open anything but regular files, protecting services from being redirected to fifos, device nodes, and friends (cover), commit, commit

  • writeback: fix race between cgroup_writeback_umount() and inode_switch_wbs() (cover), commit, commit, commit

  • fanotify: lift pidfd reporting restrictions and allow fanotify to report pidfds referring to the event-generating thread (cover), commit, commit

  • procfs
    • (FEATURED Speedup reading /proc/filesystems (it is read frequently because libselinux reads it and is linked into numerous frequently used programs, even simple ones like sed) (cover), commit, commit, commit

    • (FEATURED Improve /proc/interrupts (cover), commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • VFS
    • Add the vfs infrastructure required to implement fs-verity support with a post-EOF merkle tree: fsverity generates and stores a zero-block hash, and iomap learns to verify data on buffered reads commit, commit, commit, commit, commit

    • iomap: Skip the memset in iomap_iter() once the iteration is done. In high-IOPS scenarios (4k randread NVMe polling via io_uring) the pointless memset wasted memory write bandwidth; this improves IOPS by about 5% on ext4 and xfs commit

    • Prerequisites for supporting directory delegations in nfsd via CB_NOTIFY callbacks (cover), commit, commit, commit, commit, commit, commit, commit

    • Introduce IOMAP_F_ZERO_TAIL for filesystems that maintain a separate valid data length (exFAT, NTFS) commit, commit, commit, commit

    • Assorted dcache cleanups and fixes (cover), commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Assorted ->i_count changes + extension of lockless handling (cover), commit, commit, commit

  • locking:
    • rtmutex: Annotate API and implementation commit

    • RCU: Latch normal synchronize_rcu() path on flood commit

  • liveupdate
    • Remove limits on sessions and files (cover), commit, commit, commit, commit, commit, commit, commit, commit, [[https://git.kernel.org/linus/2a441a14c2c03b39d1c89438dd28cef9d8f

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01