just two months later, the Linux kernel 6.8 was released. What's interesting about the new product?

Just two months ago, in January 2024, Linus Torvalds gave a New Year's gift to Linux users and introduced the 6.7 kernel. Now, in March, new release released, which has quite a lot of innovations. For example, this is the Xe driver for Intel GPUs, the Rust driver, the listmount and statmount system calls, and much more.

The amount of work completed can be judged by the number of corrections. Thus, the new version accepted 15,641 fixes from 2,018 developers, the patch size was 44 MB. Changes were made to 12,212 files, adding as many as 663,864 lines of code. The most changes are related to device drivers, followed by architectures, followed by the network stack, file systems, and internal kernel subsystems.

Hardware and Drivers

Since most of the changes are related to drivers, we’ll start with them.

  • The announcement talked about the Xe driver for GPUs based on the Intel Xe architecture, which is used in Intel Arc graphics cards and integrated graphics starting with Tiger Lake processors. Its appearance is important for the operating system. The fact is that the Xe driver is the main element for ensuring the operation of new chips. It is created using a new architecture.

  • Nouveau has a new setting to work with GSP firmware functions. This is necessary to be able to interact with NVIDIA GPUs based on Turing and Ampere microarchitectures. In them, GPU initialization and control operations are implemented by a specific microcontroller GSP (GPU System Processor).

  • No less important is the AMDGPU update, which added support for ACPI WBRF and VPE DPM, and changed the processing of PCIe channel speed. In addition, support for AMD-specific color management mechanisms has been added and the problem with entering sleep mode has been resolved.

  • Support for Raspberry Pi 5 is beginning to be implemented – for example, an initial implementation of the driver for the Broadcom VideoCore 7.1 GPU has been added.

  • There are also new camera drivers that are used in SoC Starfive, GalaxyCore GC2145/GC0308, Chips & Media Wave and THine THP7312.

  • Important news for gamers: support for NSO (Nintendo Switch Online) game controllers has been added – this is a new incarnation of controllers from SNES (Super Nintendo), Genesis and N64 (Nintendo 64), adapted for Nintendo Switch.

  • Added Powkiddy RK2023, Powkiddy X55 and Anbernic RG351V.

  • The sound has also been updated – support has appeared for systems used in NXP i.MX8m MICFIL, Qualcomm SM8250, AMD ACP5x, Intel Arrow Lake, SM8550, SM8650 and X1E80100.

  • AMD has updated and added modules related to supporting the upcoming series of processors based on the new Zen 5 microarchitecture.

  • Added support for ARM64 SoC: Qualcomm SM8650 (Snapdragon 8 Gen 3), Qualcomm X1E80100 (Snapdragon X Elite), Samsung Exynos Auto v920, Google GS101 (Tensor G1), MediaTek MT8188 and Unisoc UMS9620 (Tanggula 7).

  • Added support for ARM boards and devices: Huashan Pi, Microsoft Lumia, HTC One Mini 2, Motorola MotoG 4G, Huawei Honor 5X/GR5, Anbernic RG351V, Powkiddy RK2023, Powkiddy X55, ComXpress based on Marvell CN913x, Lenovo Chromebook, Asus and Acer based on Mediatek MT8183, Toradex Verdin AM62, boards based on Allwinner H616/H618.

Memory and system services

  • The task scheduler has a new mechanism, SCHED_DEADLINE server, which solves the problem of underutilization of CPU resources by regular tasks when the CPU is monopolized by high-priority (realtime) tasks.

  • A mechanism for automatically adjusting the aggressiveness of memory consumption based on specified quotas has been added to Data Access MONitor.

  • Also added support for page folios, which was done for anonymous memory. This innovation will improve performance by allocating significant chunks of memory while accessing unallocated memory pages. For example, the use of large volumes made it possible to reduce the core reassembly time by 5%.

  • One of the most important innovations — continuation of the project to add Rust as a second language for developing drivers and kernel modules (Rust support is not active by default and does not lead to the inclusion of Rust among the required assembly dependencies for the kernel). Thus, in the new version there are changes that add a Rust binding above the phylib abstraction level and ax88796b_rust driver that uses this binding, providing support for the PHY interface of the Asix AX88772A (100MBit) Ethernet controller.

  • The functionality of the BPF program verifier has been significantly expanded.

  • Don't forget developers and about the RISC-V architecture. It supports switching to standby mode while saving the state in RAM. The ability to call the riscv_hwprobe() system call has also been added to obtain information about the supported permissions of the RISC-V instruction set architecture.

Disk subsystem and files

  • Worth mentioning here adding support compression of subpages and improved performance in low-memory situations for the EROFS (Extendable Read-Only File System) file system.

  • F2FS has improved support for zoned storage devices.

  • In the XFS file system, work continues to implement the ability to use the fsck utility to check and correct identified problems online, without unmounting the file system.

  • The device-mapper subsystem no longer supports MD_LINEAR, MD_MULTIPATH, and MD_FAULTY handlers, which were deprecated in 2021.

Net

  • There is a minimum number of innovations here. We can mention, for example, the removal of the bpfilter system, which uses BPF to filter packets. Bpfilter has been shipped since release 4.18, but has never been developed to a level suitable for widespread use. So now they decided to remove it.

  • In addition, a low-level reorganization of the underlying network data structures was carried out to improve caching efficiency.

Virtualization and Security

  • It was decided to remove from the kernel the implementation of the strlcpy() function, which was included in the Glibc 3.38 C library in the summer. This is an alternative to the strncpy() function, which contains protection against buffer overflow and always sets the trailing null byte.

  • The KVM hypervisor now supports the guest_memfd (guest-first memory) subsystem. It provides memory management capabilities, which in turn allows for capabilities and optimizations that are not achievable using a generic memory management subsystem.

  • The KVM hypervisor for systems based on the ARM64 architecture has added support for 52-bit (LPA2) physical addresses. For systems with x86 architecture, it is possible to build without emulating Hyper-V hypercalls, which allows reducing the size of the kernel.

  • The iaa (IAA Compression Accelerator) driver has also been added, which is used to speed up the operation of data compression and decompression using the DEFLATE method.

  • SELinux has added the init SID to identify boot processes that were started before SELinux policies were applied.

As always, simultaneously with the release, a version of the free 6.8 kernel appeared – Linux-libre 6.8-gnu, cleared of elements of firmware and drivers. Blobs were cleaned, various drivers were reviewed, etc.

If you've already tried the new release, please let us know how you like it. Is everything good or are there any problems?

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *