Linux Kernel 4.5 annoncé en version stable
Le noyau supporte la copie « offloading » et la technologie PowerPlay pour les GPU AMD

Le , par Olivier Famien, Chroniqueur Actualités
La semaine dernière, Linus Torvalds annonçait la disponibilité de la version 4.5 RC 7 du noyau Linux. Lors de cette publication, Linus avait déclaré que cette version serait la dernière, mais se réservait « le droit de changer d’avis au cas où son équipe trouvait quelque chose d’inquiétant ». Apparemment, les choses ont fonctionné comme souhaité, car depuis quelques jours, Linux Kernel 4.5 est disponible en version stable.

Dans cette version, un point d’honneur a été mis sur la prise en charge de la technologie PowerPlay inhérente aux cartes graphiques AMD Radeon. Cette technologie permet de réduire la consommation d’énergie des cartes graphiques du fabricant tout en offrant des performances élevées.

En sus, il faut noter dans cette nouvelle version l’apparition de la copie de fichiers sans pour autant passer par la mémoire de l’espace utilisateur. Ce processus dénommé copie « offloading » permet d’éviter des processus supplémentaires de copies des données vers la mémoire. Cette nouvelle fonctionnalité a été implémentée en ajoutant un nouvel appel système baptisé copy_file_range(2). Elle permet donc de copier les données d’un fichier vers un autre en évitant les allers et retours de transfert de données entre le noyau, l’espace utilisateur et à nouveau le noyau.

Une autre fonctionnalité assez intéressante dans cette version stable est l’amélioration de la gestion des espaces libres dans le système de fichiers Btrfs. Nous rappelons que depuis la version 2.6.37 du noyau Linux, le système de fichier Btrfs stocke une cache des blocs libres de l’espace mémoire. Mais sur les systèmes de fichiers de plus de 30 To, cette fonctionnalité connait des dysfonctionnements. Pour régler ce problème, il a été introduit dans Linux kernel 4.5 une nouvelle représentation de la cache de l’espace libre qui corrige les dysfonctionnements connus avec de larges systèmes de fichiers occupés et effectue moins de traitements pour mettre à jour les informations de cette cache.

À côté de la gestion des systèmes de fichiers Btrfs qui a été améliorée, l’on a également les appels système du noyau Linux (epoll) qui ont été améliorés. Dans les versions précédentes lorsque plusieurs descripteurs de fichiers epoll (epfds) étaient appelés, ils étaient ajoutés en tant que ressource partagée. La conséquence de ce fait est qu’un évènement pourrait réveiller tous les descripteurs de fichiers epoll, ce qui entrainerait un problème de scalabilité lorsque de nombreux epfds seraient utilisés. Pour résoudre le problème, un nouvel argument a été mis à disposition afin de permettre des réveils exclusifs lorsque plusieurs epfds sont liés à une source d’évènements partagés.

Au niveau de la hiérarchie du groupe de contrôle unifié, une stabilité a été apportée à cette fonctionnalité. Nous rappelons que les groupes de contrôle (cgroups) permettent d’allouer à des groupes définis ou à des processus, des ressources telles que la bande passante du réseau, la mémoire système ou encore le temps du processeur. Avec les nouvelles améliorations, la hiérarchie du groupe de contrôle unifié ne doit donc plus être considérée comme une fonctionnalité expérimentale.

En ce qui concerne l’option de sockets SO_REUSEPORT introduite dans le noyau Linux depuis la version 3.9, deux optimisations ont été apportées à ce niveau. En guise de rappel, SO_REUSEPORT est une fonctionnalité qui permet d’écouter plusieurs connexions en utilisant plusieurs sockets séparés à partir d’un même port. Dans cette nouvelle version, les améliorations introduisent deux nouvelles options de sockets afin de permettre de définir un programme BPF classique ou étendu et ajoutent une résolution plus rapide lors de la sélection d’un socket SO_REUSEPORT pour un paquet entrant.

Toujours au niveau des connexions réseau, des optimisations ont été apportées afin d’améliorer l’usage de la mémoire dans le contrôleur de la mémoire. Dans les versions antérieures, les mémoires tampons au niveau des sockets étaient comptées séparément dans le contrôleur de mémoire des cgroups. Et lorsque le pool de la mémoire tampon était épuisé, les allocations de mémoire échouaient engendrant une baisse des performances du réseau. Dans cette nouvelle version, le nouveau contrôleur de mémoire unifié comptera tous les types de mémoire destinés à un cgroup comme un pool unique. Lorsque la mémoire est réclamée quelque part, la machine virtuelle réduit la mémoire du cgroup qui convient et l’alloue là où il faut. Si cela n’est pas possible, le code du réseau ordonne d’arrêter la croissance de la mémoire pour un cgroup donné.

En dehors de ces différents points, plusieurs autres améliorations ont été apportées aux pilotes, aux infrastructures, à plusieurs systèmes de fichiers, à la gestion de la mémoire, à la sécurité, au chiffrement, au réseau, à la virtualisation et bien plus encore.

Source : Mail d’information

Et vous ?

Avez-vous testé cette nouvelle version du noyau Linux ? Comment la trouvez-vous ?

Quelles sont les fonctionnalités que vous souhaiteriez voir dans la prochaine version ?

Voir aussi

Forum Linux


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Contacter le responsable de la rubrique Accueil