Linus Torvalds announced the official release of the new Linux kernel 6.13 with a lighthearted update: “So nothing horrible or unexpected happened last week, so I’ve tagged and pushed out the final 6.13 release.” Now, let me walk you through the key updates and features it brings.
One of the most talked-about enhancements in kernel 6.13 is the introduction of lazy preemption, a clever compromise between the conventional voluntary and the full preemption modes.
While voluntary preemption trades some responsiveness for improved performance, and full preemption grants near-instant task switches at a potential performance cost, lazy preemption aims to deliver more preemption opportunities than voluntary mode without the overhead of full preemption.
Another valuable enhancement in this release is support for atomic writes in XFS, Ext4’s Direct I/O, and certain md RAID modes. When backed by hardware that can safely combine multiple sectors into a single atomic operation, these file systems can update data more efficiently and reliably.
Linux kernel 6.13 also showcases improvements in networking performance, particularly via NAPI suspension, by introducing a method that automatically toggles between the two, ensuring systems remain efficient when traffic is light while also mitigating overhead when network demand ramps up.
Networking teams will appreciate the flexible new device API for configuring transmit hardware shaping (TX H/W shaping). With built-in introspection features, developers can now query the hardware for available options and fine-tune shaping policies to optimize packet pacing, bandwidth usage, or quality of service for different traffic profiles.
On the security side, guard pages have always been a neat way of catching unwanted or accidental memory accesses by triggering a fatal signal whenever they are touched. However, implementing them typically required heavy memory allocation overhead.
This challenge is resolved in kernel 6.13 with lightweight guard pages, introduced through the new MADV_GUARD_INSTALL
flag for the madvise()
system call.
io_uring, the asynchronous I/O interface that has generated excitement since its debut, receives multiple refinements this cycle, including:
- Ring Resizing: Apps can now start with a small ring buffer and seamlessly expand it if demand grows.
- Partial Buffer Cloning: Instead of cloning the entire buffer table, developers can opt to duplicate only the section needed.
- Hybrid I/O Polling: A method to reduce CPU waste by introducing a brief sleep period before actively polling.
On the ARM front, Linux 6.13 brings two standout additions:
- Arm Confidential Compute Architecture (CCA): ARM-based systems can now run Linux within a protected VM under CCA, bolstering guest isolation and defending against a broader range of attacks.
- User-Space Shadow Stacks: Often referred to as Guarded Control Stack (GCS) in ARM’s documentation, this feature guards return addresses on a hardware-protected stack. It’s designed to foil return-oriented programming (ROP) attacks and to simplify profiling and debugging by providing automatic call stack tracking.
Last but not least, the kernel’s internal file operations now benefit from a new referenced counting mechanism. Benchmarks suggest a 3–5% performance lift on systems that juggle large numbers of threads—a welcome improvement in environments that constantly open, close, and manipulate files.
Of course, as with every new kernel release, there are countless other changes under the hood, including:
- Updates to memory management for more efficient page handling.
- Driver enhancements across audio, storage, networking, and more.
- Refinements in virtualization components, from AMD and Intel architecture expansions to KVM improvements on ARM64.
- New pull requests and further code adjustments that polish the kernel’s overall stability and versatility.
If you want to explore them in detail, consider checking out the LWN merge window reports (Part 1 and Part 2) or look at all merges in Torvald’s git commit log. For those eager to compile the Linux kernel 6.13 themselves, it’s now available for download at kernel.org.