Developpez.com

Le Club des Développeurs et IT Pro

Linux 4.10 est disponible en téléchargement et apporte le support de la virtualisation GPU

Ainsi qu'une amélioration du système de fichiers

Le 2017-02-21 10:22:09, par Stéphane le calme, Chroniqueur Actualités
Linus Torvald a annoncé la disponibilité générale du noyau Linux 4.10. Son développement aura duré plus de 7 semaines au cours desquelles il a reçu un total de 8 snapshots RC (Release Candidate) qui ont implémenté toutes les modifications dont vous pourrez désormais profiter.

Cette mouture s’accompagne du support d’Intel GVT-g pour KVM (aussi connu sous le nom de KVMGT), une solution de virtualisation GPU complète. Cette fonctionnalité est basée sur un nouveau framework VFIO Mediated Device. Contrairement aux alternatives de transfert direct, le framework de périphériques médiatisés permet à KVMGT d'offrir un GPU virtuel complet doté de fonctions GPU complètes à chacun des invités virtualisés, avec une partie des ressources critiques assignées directement, tout en ayant des performances proches du natif. La capacité d'exécuter un pilote graphique natif à l'intérieur d'une machine virtuelle, sans intervention de l'hyperviseur dans les chemins critiques de performances, permet d'obtenir un bon équilibre entre les fonctionnalités de performance, de fonctionnalité et de partage.

Dans les systèmes modernes avec plusieurs processeurs, différents modules de mémoire sont physiquement connectés à différentes CPU. Dans ces systèmes NUMA, les accès à la mémoire locale sont plus rapides que les accès à la mémoire connectée à d'autres processeurs. Lorsqu'une tâche est multi-thread, différents threads peuvent s'exécuter en même temps dans différentes CPU ; Si ces threads essaient d'accéder et de modifier la même mémoire, ils peuvent avoir des problèmes de performances en raison des coûts de synchronisation des caches CPU. Aussi, Linux 4.10 apporte l’outil “perf c2c” (c2c pour “cache to cache”) pour analyser et retracer les problèmes de performance causés par le faux partage sur les systèmes NUMA. L'outil est basé sur la latence de charge du x86 et les événements précis fournis par les processeurs Intel.

Avec Linux 4.10, l’outil “perf sched timehist“ fournit une analyse des événements d'ordonnancement.

Linux 4.10 apporte une amélioration du mécanisme de gestion de write back, cette méthode de stockage dans laquelle des données sont écrites dans le cache chaque fois qu'un changement se produit, mais est également écrit dans l'emplacement correspondant dans la mémoire principale uniquement à des intervalles spécifiés ou sous certaines conditions. L’objectif est de « rendre plus difficile à des évènements d’écriture lourds la monopolisation de la file d'attente des demandes d'E / S, et de fournir ainsi une expérience plus agréable sur les desktops et les shells Linux que ce à quoi les gens étaient habitués ».

Notons également l’implémentation expérimentale d’un cache raid5 write back dans le sous-système MD (Multiple Devices) dont le but est « d'agréger les écritures pour créer une écriture pleine bande et de réduire le read-modify-write. Il est utile pour la charge de travail qui fait l'écriture séquentielle et suit fsync par exemple ».

Linux 4.10 est livré avec une amélioration du système de fichiers. Nous pouvons citer des améliorations au niveau de :
  • ext4 : interdit la journalisation des données lorsque les données sont chiffrées, prend en charge DAX iomap ;
  • UBIFS : ajout d'une prise en charge du chiffrement des fichiers à l'aide de la structure fscrypt ;
  • BEFS : ajout du support de l’export NFS.

Notons aussi des améliorations au niveau de la gestion de mémoire, de la virtualisation et de la sécurité. Le support de l'architecture ARM a été considérablement amélioré et de nombreux pilotes ont été mis à jour, en particulier pour les GPU AMD Radeon.

À propos de Linux 4.10, Linus a déclaré « dans l’ensemble, 4.10 n’a pas été aussi petit que nous avions prévu au départ. Après la grosse publication de 4.9, je m’attendais à quelque chose de plutôt discret, mais cela s’est terminé en une publication dans la moyenne des standards kernel modernes ».

Le kernel Linux 4.10 est maintenant considéré comme le noyau principal, ce qui signifie que même s'il s'agit de la version la plus avancée disponible sur le marché, il n'est pas encore recommandé pour le déploiement dans les systèmes d'exploitation Linux.

Source : liste de diffusion Linux, note de version

Voir aussi :

La ville de Munich va décider cette semaine si elle abandonne Linux pour revenir à Windows, la FSF Europe appelle à voter contre cette proposition
  Discussion forum
10 commentaires
  • dexter74
    Membre régulier
    Bonjour,

    j'aimerai signaler que sa bug chez moi. Et apparemment le kernel 4.10 à quelque soucis de jeunesse. Le pilote DRM Nvidia ne marche pas avec ma GTX 1060.

    Système:
    Code :
    1
    2
    3
    4
    - Ubuntu 16.04 (Fraîchement installé , update & upgrade)
    - Kernel 4.10 
    - Nvidia : NVIDIA-Linux-x86_64-375.39.run (Censé avoir corriger se bug , ce qui est pas le cas)
    - Asus GTX 1060 (6Go)
    Code :
    1
    2
    3
    /var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c: In function ‘nvidia_cpu_callback’:
    /var/lib/dkms/nvidia/378.13/build/nvidia/nv-pat.c:213:14: error: ‘CPU_DOWN_FAILED’ undeclared (first use in this function)

    @ Max Lothaire : Si tu es intéresse ta le VFIO rédiger par moi (Doc ubuntu)
    N'hésite pas à me mp !
  • Max Lothaire
    Membre confirmé
    Cette histoire de virtualisation de GPU m’intéresse.

    L'idée, c'est de permettre au système hôte de partage la carte graphique avec les système invité plutôt que d'émuler un GPU, c'est bien ça ?

    Par contre, du peu de recherche que j'ai fait la dessus, ça n'a l'aire de fonctionner qu'avec les GPU Intel.
  • Kirisute Gomen
    Membre à l'essai
    La virtualisation du GPU m'a intrigué... Je ferais plus de recherches ce soir.
    Par contre, quelles applications on pourrait en faire ? J'imagine bien l'idée de donner ses calculs à un gpu virtuel pour réduire le coût des PC utilisateurs, mais à part ça ?
  • Max Lothaire
    Membre confirmé
    Permet de ne pas avoir à redémarré sous Windows des que tu veux :
    • jouer
    • test une application multi-OS qui a besoin du GPU (jeux, entre autres)


    On pourrait aussi ne plus avoir à configurer de multi-boot. Juste des VM.
  • Bestel74
    Membre confirmé
    Il y a des retours et/ou benchmark comparé à wine pour les jeux vidéo ?
  • Shepard
    Membre expérimenté
    Envoyé par Bestel74
    Il y a des retours et/ou benchmark comparé à wine pour les jeux vidéo ?
    Sur ce kernel là je sais pas, mais mon expérience perso c'est (GTX 780, Windows 8 Home vs Gentoo):

    Latence : Steam Linux (~30ms) > Steam Wine (~35ms) > Windows (~40ms) (Pas d'antivirus/bloatware)
    FPS : Windows (100%) > Steam Linux (80%) > Steam Wine (60%)

    Pour LoL c'est assez flagrant, j'ai 300 FPS sous Windows et 180 sous Linux Wine (Pas de version native pour Linux). Par contre je passe de 40ms sous Windows à 30ms sous Linux. Comme je cap quand même le jeu à 60fps, je préfère jouer sous Linux (en fait, je préfère jouer sous Linux sans considérations de performances ).

    Par contre pour CS:GO, ça tourne à du ~160 fps uncapped aussi bien sous Windows que sous Steam Linux. Avec Wine j'y perds un peu (sans avoir retesté depuis que Steam est dispo sous Linux, je dirai 140 fps ...)

    Enfin soit ce qu'il faut retenir c'est qu'on n'y est pas encore niveau perfs sous Linux par rapport à Windows pour pas mal de jeux, mais au moins je peux développer pendant les chargements de LoL
  • dexter74
    Membre régulier
    Bonjour,

    pour certains jeux la performances est moindre , Certes ! Cependant si tous les jeux étais compatible vulkan , ceux ci tournerai 100 fois mieux.
    Tu installe le paquet "vulkan-utils (Vulkan) , winehq-staging et le jeu doom 2016 avec l'option de lancement "+r_renderAPI 1" (mode vulkan) , c'est une tuerie. (GTX 1060 = ULTRA)
    Depuis que la sécurité anti-copie de (DRM) à été cracker et que Bethesda/ID Software ont demander le rembourser (Le retrait de celui-ci) .
  • Haricophile
    Futur Membre du Club
    Il y en a qui sont pressé. C'est pas comme si la virtualisation s'était faite en 1 jour. Quelque soient les performances, les limitations et les bugs actuels ça signifie que d'avoir la virtualisation du GPU fonctionnelle va donner un coup de fouet au développement, du côté système mais surtout chez les fabricants de GPU et les éditeurs d'applications. Il y a eu des évolutions majeures dans les fonctions entre les premiers CPU supportant la virtualisation et les CPU actuels (il me semble d'ailleurs, si je ne dis pas de bêtise, qu'à l'origine il s'agissait plutôt de fonctions de débugguage qui ont été détournées de leur emploi initial).
  • dexter74
    Membre régulier
    Bonjour,
    je viens d'écrire un article sur l'installation du kernel 4.10 version définitive avec le pilote nvidia.

    https://www.developpez.net/forums/bl...nvidia-375-39/
  • L'unification des drivers graphique. Voilà bien là où sa va je présume qu'avec les "drivers" standard "Linux Ubuntu" que sa fonctionne bien indépendamment du matériel (adressages spécifiques ou spécialisés), qu'il soit Intel, AMD ou Nvidia (les plus connus sur port PCI-Express).

    Si tu as du VIA comme HW graphique je pari que sa fonctionnerai a merveille.

    Mais bon, je compati et te soutien dans cette démarche steam-real-fun.