The final version of Linux Kernel 6.12 is released on November 17, 2024. Linux kernel 6.12 introduces new features and a multitude of improvements across various subsystems, focusing on enhanced performance, expanded functionality, and improved security.
In the Kernel mailing list, Linus Torvalds mentioned that the last week before the 6.12 release was free of unexpected issues. He confirmed that they were proceeding with the usual release schedule, with the merge window set to open the next day.
He acknowledged the early contributions, with over two dozen pull requests already received.
Before opening the merge window, Torvalds encouraged testing of this latest release to ensure everything was in order. He pointed out that the changes from the previous week primarily consisted of reverts and minor fixes spread across the kernel's code.
He also assured that there were no major concerns in the recent changes. The changes included reverts done at the last minute and small fixes across different parts of the kernel.
In this article, we will discuss the Linux Kernel 6.12 improvements, key changes and milestones achieved during each stage of the kernel's development.
Table of Contents
Linux Kernel 6.12: Improvements and Challenges
The Linux Kernel 6.12 featured numerous improvements across various subsystems, including drivers, filesystems, and core kernel components. The development process, however, faced some challenges, particularly regarding the size and complexity of certain release candidates.
Significant Improvements
- Mainlining PREEMPT_RT: This feature enables real-time capabilities, making Linux more responsive for time-critical applications. This was a significant step forward in making Linux suitable for a wider range of real-time applications.
- sched_ext: This scheduling extension was merged, improving how the kernel handles tasks.
- Driver Updates: A substantial proportion of the updates involved drivers, with specific focus on GPUs and networking.
- Filesystem Enhancements: Fixes were implemented for various filesystems, including bcachefs, btrfs, ext4, NFS, XFS, and SMB, ensuring data integrity and reliability.
- Architectural Updates: Platform-specific improvements were included for architectures such as x86, ARM, PowerPC, LoongArch, and MIPS.
- Core Kernel Changes: Updates were made to the core kernel, including the scheduler, networking, BPF, and tracing subsystems, with a focus on optimisations and addressing specific issues.
- Rust Support: Ongoing development aimed at integrating the Rust programming language into the kernel continued.
- Advanced Profiling: Tooling updates, especially those focused on perf, enhance performance profiling, allowing developers to identify and address bottlenecks more effectively.
- Security Layers: The release included enhancements to the kernel's security modules and fixes for existing vulnerabilities.
Challenges during Development
- Large Release Candidates: Some release candidates, particularly RC4, were notably larger than usual, raising concerns about their complexity and potential for bugs. This larger size was attributed to numerous small fixes rather than significant changes, but it still posed a challenge for testing and integration.
- Build Regressions: The development process introduced new build errors and a significant increase in build warnings, requiring focused effort to resolve them before the final release.
- Communication Clarity: Linus Torvalds stressed the need for clear and concise communication in merge commit messages, requesting maintainers to use active voice and imperative sentences for improved understanding.
Overall, the development of Linux Kernel 6.12 successfully incorporated notable improvements across different areas, but also highlighted the ongoing challenges of maintaining stability and managing the increasing complexity of the codebase.
There are 7 RCs
Linux kernel 6.12 underwent a series of rigorous testing phases through multiple release candidates (RCs). There were 7 release candidates (RCs) for Linux Kernel version 6.12 before the final release.
Each RC brought significant refinements and improvements, culminating in a stable and feature-rich final release.
Allow me to give you a brief summary of each release candidate.
Linux Kernel 6.12 RC1: Laying the Foundation
Released on September 29, 2024, RC1 marked the end of the merge window and the beginning of intensive testing. This version introduced two notable features:
- PREEMPT_RT: This mainlined feature enabled real-time capabilities, making Linux more responsive for applications requiring precise timing.
- sched_ext: This scheduling extension improved the kernel's task handling efficiency.
RC1 also included updates to drivers (55% of the patches), device tree source files (5%), documentation (5%), and tooling, particularly focusing on the performance profiling tool 'perf' (10%). The remaining 25% of updates involved core kernel elements such as architectural improvements, filesystem enhancements, networking updates, memory management refinements, Rust language support, and security layer augmentations.
Linux Kernel 6.12 RC2: A Substantial Update
RC2, released on October 6, 2024, was unusually large for a second release candidate. Key changes included:
- Global Header Renaming: The global header file asm/unaligned.h was renamed to linux/unaligned.h.
- Filesystem Updates: Fixes for Btrfs and EXT4 addressed issues like buffer overflow detection and off-by-one errors.
- Network and Driver Improvements: This included fixes for Ethernet drivers, improvements to Bluetooth communication stability and security, and the addition of helper functions for better packet management.
- Driver Updates: New quirks for audio devices, workarounds for AMD display driver issues, and fixes related to kernel stack size for the RISC-V architecture.
- Maintainer Communication: Linus Torvalds emphasized the importance of clear communication, urging maintainers to use active voice and imperative sentences in their merge commit messages.
Additional fixes in RC2 spanned ACPI and power management, scheduler fixes, and improvements to kernel self-tests.
Linux Kernel 6.12 RC3: Bug Fixes and Stability Enhancements
Released on October 13, 2024, RC3 focused on addressing bugs, enhancing performance, and boosting stability. Notable changes included:
- UTF Table Regeneration: This resulted in a significant 6,703-line diff.
- Driver Updates: Primarily focused on GPU and networking components, but also addressed USB, MMC, fbdev, and thermal drivers.
- Filesystem Fixes: Improvements were made to XFS, SMB, and NTFS3, addressing performance bottlenecks and stability concerns.
- Core Networking Enhancements: Bug fixes prevented panic conditions in the network filtering system and improved TCP and IPv6 reliability.
- Tooling and Testing: Updates to self-tests, particularly for memory management and network components, ensured tools remained synchronized with kernel changes.
Linux Kernel 6.12 RC4: The Largest in the 6.x Series
Released on October 20, 2024, RC4 was the largest in the 6.x series in terms of the number of commits. Key changes included:
- Drivers: Updates concentrated on GPU and networking drivers. The RDMA subsystem also received fixes for errors and event handling.
- Filesystems: Significant activity included fixes for the bcachefs filesystem. Improvements were also made to SMB, XFS, and Btrfs.
- Core Kernel: Subsystems like the scheduler, networking, BPF, and tracing received updates, including optimizations and issue-specific fixes.
Linux Kernel 6.12 RC5: Returning to Normal Size
Released on October 27, 2024, RC5 returned to a more typical size after the unusually large RC4. Highlights included:
- Driver Updates and Removals: The da8xx fbdev driver was replaced by the tilcdc driver. Numerous updates targeted GPU and networking drivers, alongside fixes for bcachefs.
- Filesystem Fixes: Several filesystems received fixes, including btrfs, xfs, nfsd, and 9p.
- Architectural and Core Kernel Improvements: Updates to architecture-specific fixes (ARM64 KVM, x86 user address masking, and LoongArch KASAN support), BPF enhancements, fixes for races in network device transmission functions, and numerous KVM updates.
Linux Kernel 6.12 RC6: Focus on Stability
Described as "another week, another rc" by Linus Torvalds, RC6, released on November 4, 2024, concentrated on stability and solidifying the existing codebase. Despite being slightly larger than a typical RC6, no alarming issues were reported.
Key changes encompassed driver updates, tooling and documentation enhancements, core memory management and networking improvements, fixes for filesystems (bcachefs, XFS, Btrfs, AFS), and minor architecture-specific adjustments.
Linux Kernel 6.12 RC7: Final Refinements Before the Final Release
Released on November 11, 2024, RC7, the last release candidate before the final release, aimed to refine existing features and address any remaining bugs. Key focuses included:
- Driver Updates: GPU and networking drivers received significant attention.
- Architecture Enhancements: Primarily focused on Device Tree fixes.
- File System Improvements: Fixes were implemented for filesystems including bcachefs, btrfs, NFS, and SMB.
- Core MM Changes: Updates aimed at improving error handling in the core memory management (MM) subsystem.
RC7 also included fixes and improvements across various subsystems, including ARM architecture, networking, graphics, filesystems, security, TPM driver, tracing subsystem, sound, and USB drivers.
Linux Kernel 6.12 Final Release
Finally, on November 17, 2024, Linux Kernel 6.12 was released, bringing an end to a journey that included seven release candidates.
Each RC played an important role in refining, stabilizing, and enhancing the kernel, driven by the collaborative efforts of a vibrant open-source community.
Install Linux Kernel 6.12
Users may need to wait a few days to weeks for the Linux Kernel to be included in their Linux distribution's repositories. If you can't wait that long, you can use the Mainline application to install the latest Kernel on Ubuntu-based systems.
Mainline is a graphical application specifically designed for installing Ubuntu Mainline Kernel builds on Debian-based distributions.
Mainline simplifies the process of installing and managing Ubuntu Mainline Kernel Builds. These builds are newer versions of the Linux kernel that are not yet officially supported in Ubuntu releases.