Linux Kernel 6.4 is finally released with many new features and improvements. Let’s take a quick look at the new features.
Linus Torvalds announced the release of Linux Kernel 6.4 today. After a calm testing window following the first release candidate, Kernel 6.4 is now ready to be downloaded. If you are a distro maintainer or early adopter, you can get the source and start using this mainline Kernel version.
The key highlights of this release are the initial support for Apple M2 SoC, the latest additions for CPU and GPU lineups and usual Kernel module updates.
Final week of 6.4 is done, and we’ve mainly got some netfilter fixes, some mm reverts, and a few tracing updates.
There’s random small changes elsewhere: the usual architecture noise, a number of selftest updates, some filesystem fixes (btrfs, ksmb), etc.
Linus
Table of Contents
Linux Kernel 6.4: What’s New
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
GPU
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
Huawei’s EROFS, which is a read-only file system for Android devices, sees more improvements in this release considering upcoming traction and use cases for containers.
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.
Rust updates
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.
How to Download and Install Linux Kernel 6.4
Remember that using the bleeding-edge mainline Linux Kernel in your production systems/daily-drive laptops/desktops is not wiser unless you have a specific requirement. Or have the latest GPU, CPU, which requires support.
For general users, it’s always best to wait for a few weeks until all the major Linux Distributions bring this version via their official stable channel after proper testing.
That being said, if you still want to install this version, follow the instructions below in Debian-based distributions, which I lined up here.
- Firstly, visit the mainline kernel page
- There are two types of builds available – generic and lowlatency. You can download generic builds that work most of the time for standard systems.
- For audio recordings and other setups that require low latency (like real-time feeds), download the lowlatency one.
- Secondly, download the four deb packages for generic via the terminal and install them.
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.4/amd64/linux-headers-6.4.0-060400-generic_6.4.0-060400.202306271339_amd64.deb wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.4/amd64/linux-headers-6.4.0-060400_6.4.0-060400.202306271339_all.deb wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.4/amd64/linux-image-unsigned-6.4.0-060400-generic_6.4.0-060400.202306271339_amd64.deb wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.4/amd64/linux-modules-6.4.0-060400-generic_6.4.0-060400.202306271339_amd64.deb
sudo dpkg -i *.deb
- After installation, reboot the system.
- The instruction for lowlatency and other architecture (e.g., ARM) installations are the same. Replace the package name in the above wget commands. You can find them on the mainline Kernel page.
Distro support
Arch Linux users should get this version by 1st/2nd week of July-2023 via monthly ISO refresh.
Ubuntu 23.10 may feature this Kernel by the end of this year. Also, Fedora 39 may feature this version which is due by Q4 2023.
Wrapping up
In conclusion, the Linux Kernel 6.4 release brings several significant updates and improvements, including CPU and GPU updates, ARM and SoC updates, core changes, and file system and networking improvements. The new features and updates will enable users to enhance their computing experiences with the latest Linux Kernel.