Linux 6.8 : qu’y a-t-il dans la première RC ?

Linux 6.8 RC1

La RC1 de Linux 6.8 est disponible. Aperçu de quelques éléments que devrait apporter cette version du noyau.

Exploiter pleinement la performance par cœur des processeurs Meteor Lake et le mode NIP sur RISC-V ? Cela fait partie des promesses de Linux 6.8. En tout cas au vu des changements fusionnés dans la première RC1, qui vient de faire son entrée.

Aperçu de quelques-uns de ces changements.

CPU : du patch Meteor Lake au NIP sur RISC-V

Six modèles rejoignent la liste des SoC AArch64 pris en charge :

– Le Tensor G1 de Google (utilisé dans les Pixel)
– Chez Qualcomm, les SM8650 (Snadragon 8 Gen 3) et X1E80100 (Snapdragon X Elite, pour laptops)
– Le Samsung Exunos Auto v920, le MediaTek MT8188 et l’Unisoc USM9620 (Tanggula 7)

Sur la partie RISC-V, Linux 6.8 ajoute la prise en charge du processeur softcore AMD MicroBlaze V. Il restaure aussi une fonctionnalité introduite dans la version 5.13 mais qui avait régressé depuis : le mode NIP. Il permet d’exécuter le noyau en ROM, évitant de charger la section texte en RAM.

En matière de gestion de l’énergie sur les processeurs Intel, les travaux ont démarré en prévision des Xeon Sierra Forest et Grand Bridge. Le pilote P-State a été adapté pour fonctionner avec la 5e génération des Emerald Rapids sans support HWP. Toujours côté Emerald Rapids, leur prise en charge est élargie afin de permettre d’exploiter les préférences de performance énergétique fournies par le firmware.

On aura noté l’extension du pilote intel_idle aux CPU Meteor Lake (Core 14e génération). Ces derniers ont par ailleurs droit à un correctif au niveau du pilote P-State afin que Linux puisse exploiter pleinement la fréquence maximale par cœur (le noyau actuel laisse une marge de 100 MHz).

Avec Linux 6.8, l’outil perf gère les événements du contrôleur mémoire unifié des AMD Zen 4. Ainsi que les métriques UPI sur davantage de processeurs Intel (Cascade Lake, Ice Lake, Sapphire Rapids, Skylake-X).
En parallèle, le pilote IOMMU AMD fait l’objet d’une modification pour permettre l’invalidation TLB multipage. Le noyau s’enrichit en outre du support du DART de l’Apple M1.

Stockage : la réparation XFS progresse

Introduite avec Linux 6.6, la réparation XFS en ligne réserve désormais de l’espace disque. Linux 6.8 ajoute aussi la prise en charge de la réparation des nœuds d’index et de la vérification du contenu des fichiers de quota.

Avec cette RC1 arrive une option Kconfig BLK_DEV_WRITE_MOUNTED. Destinée à bloquer les écritures sur les volumes bloc pour minimiser les risques de corruption et/ou de crash, elle s’assortit de l’option de boot bdev_allow_write_mounted. Elle n’empêche pas les modifications par d’autres moyens (commandes SCSI directes, manipulation des couches inférieures de la pile de stockage…).

Une réorganisation au cœur de la pile réseau

Linux 6.8 est synonyme de réorganisation au cœur de la stack réseau. Il s’agit, en particulier, d’optimiser la consommation du cache. On nous promet des performances sur TCP améliorées jusqu’à 40 % en cas de connexions concurrentes.

Le pilote NIC Intel a le droit à sa mise à jour, pour supporter la communication d’informations d’horloge et de température. À noter aussi la prise en charge de la mise à jour du micrologiciel des switchs Ethernet Mellanox sans reboot.

KVM s’ouvre à la techno Intel LAM

Le travail de prise en charge des VM confidentielles se poursuit. Notamment avec l’ioctl KVM_SET_MEMORY_ATTRIBUTS. Il permet de définir les attributs de mémoire invité page par page.

Linux 6.8 apporte une option Kconfig CONFIG_KVM_HYPERV permettant de désactiver le support de l’émulation Hyper-V lors du build. Arrive aussi le support, sur les invités KVM, de la technologie Intel LAM (Linear Address Masking). Elle permet d’exploiter les bits non traduits des adresses linéaires pour y intégrer des métadonnées.

La fin du code 31 bits ?

Linux 6.8 active -Wstringop-overflow par défaut. Cette option de compilation émet un avertissement lorsque des fonctions de manipulation de chaînes (strcpy, memcpy…) vont causer un dépassement de tampon.

Les hashs de politiques AppFlow passent quant à eux de SHA1 à SHA-256. Ils restent optionnels, pouvant ralentir le chargement sur certains systèmes.

On y est arrivé : Linux 6.8 désactive par défaut le support des ELF ESA 31 bits. L’architecture IBM associée remonte aux années 80. Cela fait longtemps qu’il n’existe plus de distributions compatibles, mais le noyau supporte encore l’exécution des binaires…

Linux 6.7 avait introduit l’option de boot ia32_emulation= pour (dés)activer le support des programmes et des appels système 32 bits. Avec Linux 6.8, l’état de cette option fait l’objet de notifications au niveau des journaux dmesg.

Illustration © Laura Primo – Adobe Stock