Noyau
Après deux mois de développement, Linus Torvalds a annoncé la sortie de la nouvelle version 5.10 du noyau Linux , une version qui bénéficie du statut d'une branche à long terme, dont les mises à jour seront publiées pendant au moins deux ans.
Les changements notables de cette nouvelle version incluent la prise en charge du mécanisme de protection MemTag pour les systèmes ARM64, l'option de montage « nosymfollow », des optimisations Ext4 importantes, la correction de XFS 2038, un nouvel appel système process_madvise, une prise en charge améliorée d'AMD SEV grâce au chiffrement des registres du processeur et la possibilité de mettre en pause les programmes BPF.
La nouvelle version a bénéficié de 17 470 correctifs apportés par 2 062 développeurs ; la taille du correctif est de 64 Mo (les modifications ont affecté 15 101 fichiers, ajouté 891 932 lignes de code et supprimé 619 716 lignes). Environ 42 % des modifications introduites dans la version 5.10 concernent les pilotes de périphériques , environ 16 % la mise à jour du code spécifique à l’architecture matérielle, 13 % la pile réseau, 3 % les systèmes de fichiers et 3 % les sous-systèmes internes du noyau.
Principales actualités sous Linux 5.10
Parmi les principales modifications, on note l'ajout du mode fast_commit pour ext4 , qui réduit considérablement les délais de nombreuses opérations sur les fichiers grâce à un écriture plus rapide des métadonnées sur le disque lors de l'exécution d'un appel à fsync(). En temps normal, l'exécution de fsync() synchronise un ensemble redondant de métadonnées. En mode fast_commit, seules les métadonnées nécessaires à la restauration du système de fichiers en cas de panne sont transférées vers le registre, ce qui accélère les appels à fsync() et améliore les performances des opérations manipulant activement les métadonnées.
Tandis que pour Btrfs inclut d'importantes optimisations de performances liées aux opérations fsync (). La réduction de la contention log mutex a entraîné une augmentation de 4% des performances et une réduction de 14% de la latence lors de l'exécution du benchmark dbench avec 32 clients. L'élimination des validations supplémentaires pour les liens et les changements de nom a augmenté la bande passante de 6% et réduit la latence de 30%. Le fait de limiter fsync à attendre uniquement lors des réécritures a augmenté les performances de 10 à 40%.
En outre, L'implémentation Btrfs d'E / S directes (io direct) a été déplacée vers le framework iomap.
XFS apporte des modifications aux métadonnées des inodes afin de corriger les problèmes de dépassement de capacité du type de données time_t 32 bits en 2038. Des modifications similaires, déplaçant le dépassement de capacité du compteur de temps à l'an 2468, ont été apportées au code de calcul des quotas de disque. Le format XFS V4 est déclaré obsolète ; les utilisateurs sont invités à migrer vers le format V5, mais la prise en charge de la version V4 se poursuivra jusqu'en 2030. XFS a également redimensionné l'entrée d'inode de l'arbre B, ce qui permet d'effectuer davantage de contrôles de redondance et d'accélérer le montage.
Pour le sous-système FUSE, implémenté la prise en charge des opérations DAX pour accéder directement au système de fichiers, en contournant le cache de page sans dispositif de verrouillage au niveau de l'application utilisé pour éviter le double cache en vertu de l'organisation de l'accès conjoint aux systèmes invités, aux répertoires et aux fichiers. Virtiofs ajoute également la prise en charge du montage séparé de partitions avec différents points de montage sur le système hôte.
Le système de fichiers F2FS ajoute un nouveau mode de collecte des déchets ATGC (Age Threshold Garbage Collection) , une prise en charge améliorée des périphériques NVMe zonés et une décompression plus rapide des données compressées.
Dans F2FS et Ext4, la gestion des noms de fichiers insensibles à la casse a été repensée ; il a été décidé d'unifier l'implémentation des noms de fichiers insensibles à la casse en déplaçant le code associé dans une bibliothèque commune.
Une autre modification importante concerne l' interface d'E/S asynchrones io_uring, qui permet désormais de créer des anneaux restreints pouvant être partagés en toute sécurité avec un processus non fiable. Cette fonctionnalité permet à l'application principale de limiter sélectivement l'accès à ses descripteurs de fichiers spécifiques pour les applications tierces utilisant io_uring. De plus, l'indicateur PIDFD_NONBLOCK a été ajouté à l'appel système pidfd_open() afin de créer un descripteur de fichier non verrouillable (analogue à O_NONBLOCK pour pidfd).