Linux 6.1 arrives with Rust, performance improvements, drivers and more

Linux Kernel

Linux Kernel

After two months of development, Linus Torvalds announced the release of the new version of the Linux 6.1 kernel, in which among the most notable changes: support for the development of drivers and modules in the Rust language, modernization of the mechanism for determining the used memory pages, a special memory manager for BPF programs, the diagnostic system of problems of KMSAN memory, the KCFI (Kernel Control -Flow Integrity) protection mechanism, the introduction of the maple structure tree.

The new version received 15115 fixes from 2139 developers, the patch size is 51 MB, which is about 2 times less than the size of the 6.0 and 5.19 kernel patches.

Main news in Linux 6.1

In this new version of the Kernel that is presented, we can find that added ability to use Rust as a second language to develop drivers and kernel modules. The main reason behind supporting Rust is to make it easier to write high-quality, safe device drivers by reducing the chances of memory errors.

Rust support is disabled by default and does not cause Rust to be included as a required kernel build dependency. So far, the kernel has adopted a stripped-down, minimal patch version, which has been reduced from 40 to 13 lines of code and provides only the bare minimum, enough to build a simple kernel module written in Rust.

In the future, it is planned to gradually increase the existing functionality, porting other changes from the Rust-for-Linux branch. In parallel, projects are being developed to use the proposed infrastructure to develop NVMe disk controllers, the 9p network protocol, and the Apple M1 GPU on Rust.

Another notable change is in AArch64, RISC-V, and LoongArch with EFI, where the ability to directly load compressed kernel images is implementeds, besides that they added drivers for loading, running, and downloading kernel images, called directly from EFI zboot.

Drivers for installing and removing protocols from the EFI protocol database have also been added. Previously, unpacking was done by a separate bootloader, but now it can be done by a driver in the kernel itself: the kernel image is built as an EFI application.

part of the patches was adopted with the implementation of a memory management model of various levels that allows separate memory banks with different performance characteristics. For example, frequently used pages may be stored in the fastest memory, while less frequently used pages may be stored in relatively slow memory. The 6.1 kernel adopts a mechanism to determine if heavily used pages are in slow memory in order to move them to fast memory, and implements the general concept of memory tiers and their relative performance.

In addition to this, we can also find that added to the BPF subsystem the ability to create "destructive" BPF programs specifically designed to trigger a crash via the crash_kexec() call. Such BPF programs may be needed for debugging purposes to trigger the creation of a memory dump at a certain time. Access to destructive operations when loading a BPF program requires the BPF_F_DESTRUCTIVE flag to be specified, sysctl kernel.destructive_bpf_enabled to be set, and CAP_SYS_BOOT rights to be set.

have been madeo Significant performance optimizations on the Btrfs file systemAmong other things, the performance of fiemap and lseek operations has increased by orders of magnitude (checking for shared extensions has been sped up 2-3 times and changing position in files has been sped up by 1.3-4 times) . Also, sped up inode journaling for directories (25% performance increase and 21% latency reduction in dbench), buffered I/O was improved and memory consumption was reduced.

Ext4 adds performance optimizations related to journaling and read-only operation, removed support for deprecated noacl and nouser_xattr attributes, also in EROFS (Enhanced Read-Only File System), designed for use on read-only partitions, implements the possibility Storage set of duplicate data in different file systems.

Of the other changes that stand out:

  • Added support for audio subsystems implemented in Apple Silicon, Intel SkyLake, and Intel KabyLake processors.
  • The HDA CS35L41 audio controller supports sleep mode.
  • Added support for AHCI SATA controllers used in Baikal-T1 SoC.
  • Added support for Bluetooth chips MediaTek MT7921, Intel Magnetor (CNVi, integrated connectivity), Realtek RTL8852C, RTW8852AE, and RTL8761BUV (Edimax BT-8500).
  • Added drivers for PinePhone Keyboard, InterTouch Touchpads (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panels, XBOX One Elite, XP-PEN Deco Pro S Tablets and Intuos Pro small (PTH-460).
  • Added driver for Aspeed HACE (Hash and Crypto Engine) cryptographic accelerators.
  • Added support for integrated Intel Meteor Lake Thunderbolt/USB4 controllers.
  • Added support for Sony Xperia 1 IV, Samsung Galaxy E5, E7 and Grand Max, Pine64 Pinephone Pro smartphones.
  • ARM SoC compatible with AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 and RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8062 /BL i.MX8MM OSM-S , MT8195 (Acer Tomato), Radxa ROCK 4C+, NanoPi R4S Enterprise Edition, JetHome JetHub D1p. Information about SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom and NXP.

Finally, if you are interested in knowing more about it, you can consult the details In the following link.


Leave a Comment

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

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.