Linux 6.13 arrive avec un nouveau modèle de préemption Lazy, la prise en charge de l'écriture atomique et bien plus encore

Linux

Après deux mois de travail, Linus Torvalds a annoncé le lancement deet la nouvelle version du Kernel linux 6.13, ce qui apporte des avancées et des nouveautés importantes. Parmi les principales nouveautés qu'il présente, on distingue : un modèle de préemption Lazy, qui se positionne entre les modes volontaire et complet, l'inclusion de prise en charge des écritures atomiques sur des systèmes de fichiers tels que XFS et Ext4.

D'autres changements incluent le pilote virtual-cpufreq, le nouvelle API netlink net-shapeuh, et un mode de montage tmpfs qui est désormais sensible à la casse, ainsi que prise en charge des extensions POSIX dans SMB3, et un pilote d'optimisation du cache d'AMD.

Cette nouvelle version a bénéficié de la contribution de 2086 14,172 développeurs qui ont apporté un total de 15,375 598,707 correctifs, affectant 406,294 XNUMX fichiers et entraînant l'ajout de XNUMX XNUMX lignes de code, avec la suppression de XNUMX XNUMX lignes.

Principales actualités sous Linux 6.13

Kernel 6.13, l'un des changements les plus importants est l’introduction du mécanisme « d’horodatage à granularité fine » ce qui améliore la précision dans l'obtention de données sur les modifications ou les accès aux fichiers, atteignant une précision supérieure à la milliseconde sans affecter négativement les performances.

Une autre nouvelle fonctionnalité présentée par le noyau Linux 6.13 est laprise en charge des écritures atomiques, ce qui garantit que les données supérieures à la taille d'un secteur sont écrites de manière atomique sur les appareils prenant en charge cette fonctionnalité. Actuellement, cette fonctionnalité Il est disponible dans les systèmes de fichiers tels que XFS, Ext4 en mode O_DIRECT, et dans les configurations RAID 0/1/10 avec md.

En ce qui concerne les autres systèmes de fichiers, Linux 6.13 marque la suppression définitive de ReiserFS, EROFS prend désormais en charge les options SEEK_HOLE et SEEK_DATA dans lseek(), tandis que F2FS a ajouté la prise en charge des alias de périphériquesy XFS a ajouté la prise en charge des quotas sur les appareils en temps réel et amélioré la gestion du répertoire de métadonnées. De plus, SMB3 prend désormais en charge les extensions POSIX nécessaires au stockage de fichiers spéciaux, tels que des liens symboliques et des fichiers de périphérique.

Dans la mémoire et les services système, le nouveau modèle de préférence paresseux (PREEPT_LAZY). Ce modèle vous permet de maintenir des capacités de préemption se termine pour les tâches en temps réel, tout en retardant la préemption des tâches normales jusqu'à la limite de tick. De plus, le modèle simplifie la logique du planificateur de tâches en supprimant les pilotes d'autres parties du noyau de son processus de planification.

Concernant les optimisations de build, le support des optimisations AutoFDO lors de la compilation avec Clang a été intégré, qui utilisent des profils d'exécution pour affiner le code et améliorer les performances, il a été démontré qu'ils réduisaient la latence de 10 %. Un nouveau flag a également été ajouté à l'appel système madvise() afin d'améliorer la gestion de la mémoire des processus. L'indicateur MADV_GUARD_INSTALL vous permet de remplacer des adresses de garde de page spécifiques, empêchant ainsi les exceptions d'accès (SIGSEGV) sans avoir besoin d'allouer de nouvelles zones de mémoire virtuelle.

IO_uring a également reçu plusieurs améliorations, y compris la possibilité de redimensionner les tampons, d'envoyer des messages de manière synchrone entre les tampons en anneau et de cloner partiellement les tampons. De plus, une interrogation d'E/S hybride a été implémentée et l'API a été étendue pour enregistrer les tampons en anneau et les zones de mémoire.

Quant à la améliorations matérielles, la possibilité de détecter les "split-locks" sur les processeurs AMD a été ajoutée, un phénomène qui se produit lorsque les données ne sont pas correctement alignées dans la mémoire et traversent deux lignes de cache, ce qui peut avoir un impact important sur les performances. Pour atténuer ce problème, le pilote AMD Cache Optimizer a été intégré, qui profite de la technologie AMD 3D V-Cache pour améliorer les performances des cœurs de processeur individuels, soit en augmentant la taille du cache L3 disponible, soit en augmentant la fréquence.

Pour les architectures MIPS, la prise en charge a été ajoutée pour les systèmes dotés de plusieurs contrôleurs d'interruption. clusters, fournissant un gestionnaire d’interruption distinct pour chaque cluster de processeurs. Une nouvelle opération ioctl, PIDFD_GET_INFO, a également été implémentée, qui permet d'obtenir des informations sur un processus à l'aide de son identifiant PIDFD, qui reste constant même si le PID associé change à la fin du processus.

En ARM, les principales avancées incluent la prise en charge de l'exécution de Linux sur des machines virtuelles protégé par l'architecture informatique confidentielle Arm, ainsi que par la prise en charge des piles fantômes de l'espace utilisateur, améliorant ainsi la sécurité. Un nouveau mécanisme de comptage référencé des fichiers, atteindre une plus grande évolutivité.

El Le planificateur de tâches prend désormais en charge un mécanisme d'exécution proxy, résolvant le problème d'inversion de priorité. Ce mécanisme empêche les tâches de faible priorité de retenir les ressources nécessaires aux tâches de haute priorité (en temps réel), les bloquant ainsi. De plus, les contextes de programmation et d’exécution des processus ont été séparés.

D'autre part, il met en évidence la migration des changements liés à l'utilisation de Rust dans le développement de pilotes et de modules du noyau. Bien que La prise en charge de Rust n'est pas activée par défaut, des liaisons et des structures de données ont été ajoutées pour permettre l'écriture de pilotes dans ce langage, y compris la prise en charge des événements de trace et le pilote Binder réécrit en Rust.

Le sous-système BPF s'est amélioré avec la mise en œuvre d'une pile distincte pour les programmes BPF, ce qui réduit les risques de débordements lors du traitement de grandes chaînes d’appels. La possibilité d'envoyer des signaux à d'autres processus et d'utiliser la mémoire partagée dans les cartes BPF a également été ajoutée, facilitant ainsi la communication de charge entre les pilotes du planificateur de tâches.

En outre, le Le suivi des exceptions a été amélioré pour générer des défauts de page lorsque les points de trace sont déclenchés dans les appels système, permettant la lecture des paramètres transmis depuis l'espace utilisateur. Le paramètre transparent_hugepage_shmem a également été ajouté pour contrôler l'utilisation de pages mémoire volumineuses sur les systèmes de fichiers tmpfs et shmem.

Dans les réseaux, il est introduit prise en charge de la suspension de NAPI pendant l'inactivité, améliorant la consommation d'énergie et une nouvelle API de périphériques réseau qui facilite la configuration avancée du matériel de transmission (TX). De plus, io_uring a reçu plusieurs optimisations qui améliorent la gestion des opérations d'entrée/sortie asynchrones.

Finalement, il a été mis en œuvreprise en charge en temps réel de l'architecture Loongarch et de nouvelles extensions de l'architecture RISC-V, qui permettent le masquage des pointeurs dans l'espace utilisateur. Pour améliorer la compression des images du noyau, l'algorithme par défaut a été modifié en lz4, remplaçant lz4c.

Vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.