The development of the Linux kernel continues with Linux 6.7, the next major kernel release expected by the end of the year, and Linus Torvalds just announced today the availability of the first Release Candidate (RC) milestone for public testing.
The biggest change in Linux kernel 6.7 is the implementation of the bcachefs file system, a copy-on-write (COW) file system for Linux-based operating systems, which is designed to compete with the modern features offered by the Btrfs and ZFS file systems while having the speed and performance of the EXT4 and XFS file systems.
Linux kernel 6.7 also promises support for NVIDIA’s GSP firmware in the Nouveau open-source graphics driver, which will be used only on hardware where GSP (GPU System Processor) isn’t supported while being optional on hardware where it’s already supported.
There are lots of networking updates in Linux 6.7, such as support for GRO decapsulation for IPsec ESP in UDP, support for usec resolution of TCP timestamps that are enabled selectively by a route attribute, support for TCP Authentication Option (RFC 5925, TCP-AO) as a more modern replacement for the MD5 option, support for sending fragmented skbs over vsock sockets, and MCTP over I3C support.
Furthermore, there’s support for netlink GET for MDB (multicast forwarding) to allow user space to request a single MDB entry instead of dumping the entire table, increased single TCP flow performance on a 200Gbit NIC by 20% by deferring regular TCP ACK while processing socket backlog, as well as support for rcvlowat and notsent_lowat on MPTCP sockets to help apps limit the number of wakeups.
The Fair Queuing (FQ) packet scheduler received built-in 3-band priority and WRR scheduling, bypass support, and better inactive flow reporting. BPF v4 CPU instruction support has been added for ARM32 and s390x platforms, along with the ability to pin the BPF timer to the current CPU and extended cgroup BPF sockaddr hooks for UNIX sockets.
The networking additions continue with support for local per-cpu kptr to allow allocating and storing per-cpu objects in maps, support for multiple PTP timestamp event queue readers with different filters, support for selective FDB flushing in the VXLAN tunnel driver, as well as support for allowing limiting learned FDB entries in bridges to prevent OOM attacks.
There are various new features for the Btrfs file system in Linux 6.7, such as raid-stripe-tree, a new tree for logical file extent mapping where the physical mapping may not match on multiple devices, simple quota accounting (squota), and temporary filesystem fsid (temp_fsid).
The Btrfs file system also received performance improvements to reduce file deletion time by 12 percent for files with many extents by reducing reservations for checksum deletions and to reduce runtime of critical functions by 5 percent by making extent state merges more efficient during insertions.
The EXT4 file system received improvements for its multi-block allocator and optimized handling of released data blocks in its commit machinery to avoid potential lock contention on s_md_lock spinlock. In addition, EXT4’s backup superblock has been improved to update better after online resizes or when updating the label or UUID.
exFAT file system support has been updated with ioctls support to get and set file attributes that are used in fatattr util, as well as a new
zero_size_dir mount option to allocate a cluster when creating a directory. On the other hand, the F2FS file system received bigger page size support by changing the internal block size aligned to the page size and improved zoned block device support regarding the power-off recovery.
Linux kernel 6.7 also adds initial network support for Landlock (TCP bind and connect access control), support for HDA patches, Thunderbolt/USB4 fixes to support new hardware types and devices, enables all media drivers to use VB2 kAPI instead of the old V4L2 core videobuf kAPI, which was removed, ports autofs to the new mount API, updated CephFS logging, and support for non-contiguous capacity bitmasks for Intel’s CAT implementation.
Linux 6.7 makes LoongArch a supported architecture for KVM (Kernel-based Virtual Machine) and also adds support for PREEMPT_DYNAMIC with static keys and support for BPF CPU v4 instructions to the LoongArch architecture. For ARM platforms, KVM now features guest support for memory operation instruction. Moreover, KVM got support for the Smstateen and Zicond extensions, as well as senvcfg virtualizing.
Rust support has been upgraded to Rust 1.73.0 and IBT is now enabled by default if it’s also enabled in C. ARM64 support has been expanded with new HWCAP definitions and support for the Ampere SoC PMUs, while the ARM platform received support for a data processing unit from AMD/Pensando and a new RISC-V based high-end device from Sophgo.
AppArmor got initial support for mediating io_uring and userns creation, a new restriction that tightens the use of change_profile, and a couple of optimizations to reduce performance bottlenecks that have been found when retrieving the current task’s secid and allocating work buffers.
For the RISC-V architecture, Linux kernel 6.7 adds support for cbo.zero in userspace, support for CBOs on ACPI-based systems, support for software shadow call stacks, support for handling misaligned accesses in S-mode, support for many new relocations in the module loader, and improvements for the T-Head cache flushing ops. On top of that, there’s a virtualized SBI debug console (DBCN) for RISC-V on KVM.
Crypto support in Linux 6.7 received a new virtual-address based lskcipher interface, improved AES/XTS performance of 6-way unrolling for PPC, FIPS 202 SHA-3 support in PKCS1Pad, and fast path for single-page messages in the Adiantum disk encryption and decryption algorithm.
As expected from any new Linux kernel branch, hardware support gets a boost. Linux 6.7 promises support for AMD platforms with es83xx, AMD ACP 6.3 and 7.0, Awinc AT87390, and AW88399 sound chips, sound support for many Intel and MediaTek platforms, Qualcomm SM6115 and SC7180 platforms, Richtek RTQ9128 and Texas Instruments TAS575x sound chips, as well as Qualcomm SDM670 (MDSS) and SM7150 SoCs.
SVA support for AMD IOMMU has been added as well, Amlogic C3 and S4 SoCs are now supported by Watchdog, initial Intel Lunar Lake support is there as well while Intel Meteor Lake support was promoted to stable, and AMD added some more upcoming hardware platforms, including GC 11.5, DCN 3.5, VPE 6.1, NBIO 7.11, and DML2.
Hardware support in Linux 6.7 also brings more USB Type-C additions of new drivers, XHCI expanded tracing support, USB “La Jolla Cove Adapter (LJCA)” support, support for new USB dwc3 platforms, a DMI quirk for HP Omen machines, firmware detection improvement for Lenovo cptkbd, support for reading aux MAC address during passthrough on Lenovo Thinkpad devices, as well as suspend/resume fixes for ThinkPad Compact keyboards.
Last but not least, there’s a new EDAC driver for Xilinx’s Versal integrated memory controller, a new device tree binding for the Monolithic Power (MPS) MP3309C step-up converter, “vendor” backlight quirks for 3 Lenovo x86 Android tablets, an EC GPE detection quirk for the HP 250 G7 Notebook PC, as well as ACPI IRQ override for TongFang GMxXGxx/TUXEDO Stellaris/Polaris Gen5 laptops.
The upcoming Linux 6.7 kernel release will also allow Linux to natively handle CXL link protocol errors signaled via PCIe AER for current generation CXL platforms, updates NFSv4.1 to handle NFS4ERR_DELAY errors during session trunking, supports idmapped mounts in CephFS,
The final release of Linux kernel 6.7 is expected at the end of December 2023 or early January 2024, which will totally depend on how many Release Candidate (RC) milestones Linus Torvalds will announce until then or if he’s too busy with the New Year’s Eve celebrations.
We could expect Linux 6.7 to arrive on December 31st (New Year’s Eve) if Linus Torvalds announces seven Release Candidate versions or on January 7th if eight Release Candidates are announced by then. I have a feeling that the December 31st release date may not happen, but it will be a great New Year gift if it will.
Early adopters who want to take Linux kernel 6.7 for a test drive can download the first Release Candidate (RC1) milestone right now from either Linus Torvalds’s git tree or from the kernel.org website. However, please keep in mind that this is a pre-release version that’s NOT suitable for use on a production machine.
Last updated 2 weeks ago