Linus Torvalds releases Linux Kernel 6.4 RC1 for everyone to test, which brings regular updates, more Rust code and changes across modules.
The merge window for Linux Kernel 6.4 is now closed, followed by the two weeks of merge window since Kernel 6.3 release. While announcing, Linus mentioned that it is a fairly normal merge cycle with usual changes across Kernel, with AMD dominating the space.
But if you ignore those two “massive, but uninteresting” parts of the changes, everything else looks fairly normal. Lots of development all over, with “that’s interesting” mainly depending on the reader. Drivers, architecture updates, filesystems, networking, memory management – there’s a bit of everything.
The one feature that didn’t make it was the x86 shadow stack code. That side was probably a bit unlucky, in that it came in as I was looking at x86 issues anyway, and so I looked at it quite a bit, and had enough reservations that I asked for a couple of fairly big re-organizations.Linus
That being said, let’s take a look at what’s new in Linux Kernel 6.4.
Table of Contents
Linux Kernel 6.4 (RC1): Top Updates
CPU: AMD and Intel
After some significant amount of development, AMD introduces the 5-level page support in Kernel. This is part of the AMD IOMMU driver and will be enabled if the processors support it. The use of 5-level page tables is significant because it greatly increases the amount of virtual and physical address space, allowing for up to 4 PiB of physical memory addresses to be addressed. The only downside is that page table walks take longer due to the extra level.
AMD’s P-State driver extension, Guided Autonomous Mode, has been submitted to the Linux 6.4 kernel. Work for P-state drivers was ongoing for a couple of months which is related to the performance or power. Guided Autonomous Mode lets the operating system determine the minimum and maximum frequencies/performance levels and then allows the platform firmware to choose an operating frequency within that range. This feature will likely improve performance and power efficiency for AMD Ryzen and EPYC servers. You can activate it using amd_pstate=guided kernel option in 6.4 until it is enabled by default.
In addition to the above, other AMD highlight features include – AMD CDX bus updates for APU and FPGA interface and AMD SEV-SNP vTOM guest support on Microsoft Hyper-V.
Intel’s Linear Address Masking (LAM) feature, which allows user-space to store metadata within some bits of pointers without masking it out before use, has been merged with the Linux 6.4 kernel. LAM is similar to Arm’s Top Byte Ignore (TBI) and has applications in virtual machines, profiling and similar areas.
Intel’s Thunder Bay, which was gossiped to feature a mix of Intel x86 cores and Movidius VPU cores, has been confirmed as cancelled and code has been dropped from mainline Kernel starting with 6.4.
CPU: SoC and ARM
The latest Linux 6.4 kernel update has added DeviceTree files for the Apple M2 SoC, which is used in the current MacBook Air, MacBook Pro, and Mac Mini systems. Although the support is similar to the Apple M1, there are still some limitations, such as no working display output yet for the Apple M2 Mac Mini, and keyboard and trackpad support for the new Apple laptops not yet being functional.
Furthermore, other SoC updates in this kernel include:
- Allwinner T113-s
- StarFive JH7110 SoC
- Qualcomm IPQ5332 and IPQ9574
- Qualcomm sa8775p
- New Allwinner f1c200s boards
- AM625 BeaglePlay
- Helio X10 SoC
Intel is yet to announce the release of the Meteor Lake lineup, however, more work continues to come in the mainline Kernel. Also, a few changes for AMD’s Next-Gen CDNA accelerators with multiple chipsets were brought up.
AMDGPU kernel graphics driver changes have been submitted for this version, with a focus on power-related additions for Van Gogh APUs. SteamOS will be able to intelligently manage the thermal handling of the APU graphics.
Storage and file systems
The Linux 6.4 kernel brings significant updates to the Btrfs and Flash-Friendly File-System (F2FS) drivers. Btrfs updates include performance improvements for directory logging that can lead to a 4x lower fsync time. The I/O has been cleaned up and rewritten making it more faster.
The F2FS updates for Linux 6.4 caters to code refactoring and a few bug fixes.
The famous NTFS3 driver, which mainlined last year, sees some bug fixes and performance improvements.
Continuing with the Rust framework updates, Kernel 6.4 adds pin-init API to prevent unsafe Rust code in Kernel, updates to sync module, new ioctl module and more.
Few Apple related changes
The mainline Linux 6.4 kernel brings the “pwm-apple” Apple PWM controller driver, which enables control of the keyboard backlight and other functions on Apple SoC devices. The driver has been added to improve functionality for Apple M1 and M2 MacBook users. The DeviceTree additions for the PWM controller and keyboard backlight bindings have been added to the T8103 configuration for Apple M1 MacBooks, the T600x configuration for Apple M1 Pro/Max MacBook Pro laptops, and the T8112 DT for initial Apple M2 MacBook support. Asahi Linux users already have this update as part of their custom Kernel.
So, that’s about the key changes. As always, the entire changelog is huge for the release and you should get a release diff after the final release.
Download Linux Kernel 6.4 RC1 source
You can download the RC source tree from the following page.
If you are running benchmarks, testing new hardware and finding issues, report to the Kernel mailing list.
Finally, the Linux Kernel 6.4 is expected to be released around June end/July 2023 timelines. The Q4 2023 Linux distribution releases – Fedora 39, and Ubuntu 23.10 may get this version.
Please test and report issues if you find any.