URL: https://linuxfr.org/news/sortie-du-noyau-linux-5-1 Title: Sortie du noyau Linux 5.1 Authors: Collectif bubarđŸŠ„, Arkem, ZeroHeure, Florent Zara, esdeem, palm123, gusterhack, 4fages, Davy Defaud, patrick_g et Fabrice Mousset Date: 2019ćčŽ03月18æ—„T20:41:05+01:00 License: CC By-SA Tags: noyau_linux, kernel, linus_torvalds, tensorflow, seccomp et lwn Score: 85 La sortie de la version stable 5.1 du noyau Linux a Ă©tĂ© annoncĂ©e le 5 mai 2019 par Linus Torvalds. Le nouveau noyau est, comme d’habitude, tĂ©lĂ©chargeable sur les serveurs du site _kernel.org_ mis Ă  jour le 6 mai. Le dĂ©tail de quelques‐unes des Ă©volutions et nouveautĂ©s se trouve dans la seconde partie de la dĂ©pĂȘche. ---- [Le noyau, son site](https://kernel.org) [La liste des nouveautĂ©s du noyau 5.1](https://kernelnewbies.org/Linux_5.1) [Les noyaux prĂ©cĂ©dents](http://linuxfr.org/wiki/depeches_noyau) [Annonce de la sortie du noyau 5.1](https://lwn.net/Articles/787556/) [Le noyau, sa documentation](https://www.kernel.org/doc/html/v5.1) ---- # Annonces des versions candidates par Linus Torvalds ## RC-1 [Annonce](https://lkml.org/lkml/2019/3/17/207) : > C’est dimanche, deux semaines se sont Ă©coulĂ©es et tout paraĂźt normal. Vous connaissez tous la procĂ©dure maintenant : la fenĂȘtre de fusion est terminĂ©e et les choses sont supposĂ©es se calmer.> > La fenĂȘtre de fusion m’a semblĂ© franchement normale et, au vu des statistiques, rien de vraiment bizarre ne se profile. C’est une sortie de taille habituelle (c’est‐à‐dire grosse, Ă©videmment, mais pas plus que d’habitude) et la majoritĂ© (un peu plus de 60 %) sont des pilotes, toutes sortes de pilotes. Celui qui sort du lot est le pilote de circuit d’accĂ©lĂ©ration d’IA d’Habanalabs [N. D. T. : Habana Labs], mais je soupçonne que nous verrons ce genre de chose de plus en plus souvent. Il y a aussi les suspects habituels : processeurs graphiques, rĂ©seau, pĂ©riphĂ©riques blocs, etc.> >Une Ă©volution plutĂŽt rĂ©cente est la maniĂšre dont les mises Ă  jour de `tools/testing/` ressortent ces derniers temps. Ce n’est pas une nouveautĂ© de la fenĂȘtre de fusion 5.1, ça dure depuis assez longtemps, mais il convient juste de mentionner que nous avons plus de nouveaux changements dans les auto‐tests que de mises Ă  jour d’architectures, par exemple. Le sous‐rĂ©pertoire `documentation` aussi est assez remarquable.> >Mais dans l’ensemble, il y en a vraiment un peu partout, y compris des mises Ă  jour au cƓur de [VFS](https://fr.m.wikipedia.org/wiki/Virtual_File_System), en plus des habituelles mises Ă  jour.> >Comme toujours, le journal abrĂ©gĂ© est beaucoup trop long pour ĂȘtre postĂ©, avec plus de 11 000 _commits_ (12 000, avec les fusions). Voici donc mon « journal des fusions » habituel, qui liste les sous‐mainteneurs et un rĂ©sumĂ© des `git pulls` que j’en ai tirĂ©...>>Allez‐y, testez.>>Linus ##RC-2 [Annonce](https://lkml.org/lkml/2019/3/24/487) : > Bien, la fin de la fenĂȘtre de fusion est une semaine derriĂšre nous, et voici la RC-2. Les choses semblent tout Ă  fait normales, mais honnĂȘtement, la RC-2 est gĂ©nĂ©ralement trop prĂ©coce pour se faire une idĂ©e. Les gens n’ont pas forcĂ©ment eu le temps de constater des problĂšmes Ă  ce stade, ce qui est juste un autre moyen de dire « s’il vous plaĂźt, testez plus ».>> Rien de particulier n’apparaĂźt. D’accord, nous avons eu des correctifs dans le nouveau code d’`io_ring` pour des problĂšmes qui ont Ă©tĂ© discutĂ©s au moment de le fusionner. Autrement, il faut noter que le plus gros des correctifs est d’ordre utilitaire, rien dans le cƓur du noyau. En fait, Ă  peu prĂšs deux tiers des correctifs ne concernent que le rĂ©pertoire `tools/`, principalement Ă  cause de rĂ©centes mises Ă  jour d’outils de perfs. Les gens concernĂ©s promettent qu’ils ont fini.>> Si l’on met de cĂŽtĂ© les utilitaires, le reste est Ă©parpillĂ© un peu partout, et c’est plutĂŽt petit. C’est en gros rĂ©parti de maniĂšre Ă©gale entre les mises Ă  jour d’architectures, de pilotes et de systĂšmes de fichiers, mais c’est en partie dĂ» Ă  l’`io_ring` prĂ©cĂ©demment citĂ© (qui fait ressortir sensiblement la partie systĂšme de fichiers). Il y a de lĂ©gers bruits ailleurs aussi : la majoritĂ© du code dans `arch/` est une mise Ă  jour tardive d’ARC, mais rien de tout cela n’est vraiment gros ou inquiĂ©tant.>> Journal abrĂ©gĂ© ajoutĂ© pour un avant‐goĂ»t des dĂ©tails (et vous remarquerez ici la dominance des perfs).>> À vos tests.>>Linus ##RC-3 [Annonce](https://lkml.org/lkml/2019/3/31/256) : >Rien de particuliĂšrement inhabituel cette fois.>>La RC-3 est plus grosse que d’habitude, chose que je n’aime Ă©videmment jamais voir, mais en mĂȘme temps, c’est suffisamment tĂŽt dans la sĂ©rie de RC pour ne pas me faire vraiment peur. Pour l’instant.>>Et mĂȘme si c’est plus gros, rien de particulier n’apparaĂźt. La seule et unique grosse rustine ici (et de loin, car ça reprĂ©sente prĂšs du tiers de l’ensemble de la publication) est simplement la suppression du pilote expĂ©rimental mt7621-eth, car le pilote Ethernet Mediatek standard gĂšre maintenant ce matĂ©riel. En fait, en raison de la suppression de ce pilote, le correctif complet de la RC-3 retire plus de lignes qu’il n’en ajoute, ce qui fait toujours plaisir Ă  voir (pour parler honnĂȘtement, si l’on regarde l’ensemble de la version plutĂŽt que seulement celle de cette semaine, ce n’est pas vrai du tout).>>Mais non, la suppression de ce pilote n’est pas la raison qui me fait dire que la RC-3 est plus grosse que d’habitude – ce n’est qu’un seul _commit_. Nous avons simplement plus de _commits_ que d’habitude Ă  ce stade. J’espĂšre que ce n’est qu’un cas unique – la mesure globale des « tailles de RC » tend Ă  ĂȘtre sujette au bruit, et est dĂ©pendante du fait qu’une semaine particuliĂšre voit tous les principaux sous‐systĂšmes fusionner leurs correctifs ou pas. Cette fois, ça a Ă©tĂ© clairement beaucoup le cas.>>Si vous mettez de cĂŽtĂ© ce gros morceau de la RC-3 reprĂ©sentant la suppression de cet unique pilote, les changements sont assez largement Ă©parpillĂ©s. À peu prĂšs un tiers sont des pilotes, un autre bon tiers sont des modifications d’outils et de documentation, et le dernier tiers est simplement du « divers » un peu partout (le rĂ©seau en est un gros morceau, mais il y a des mises Ă  jour d’architectures, de cƓur du noyau, de KVM, et j’en passe...).>>Le journal abrĂ©gĂ© attachĂ© donne un avant‐goĂ»t des dĂ©tails, et je ne pense pas qu’il y ait quoi que ce soit d’important dedans. Juste beaucoup de petits dĂ©tails.>>EspĂ©rons que les RC vont commencer Ă  diminuer Ă  partir de maintenant, mais je ne pense pas que nous verrons quoi que ce soit de mauvais se prĂ©senter.>>En avant, testez.>>Linus ##RC-4 [Annonce](https://lkml.org/lkml/2019/4/7/179) : >Une autre semaine, une autre RC. Plus petite que la RC-3, je suis content de l’annoncer. Rien de particuliĂšrement gros ici, juste de petites choses un peu partout.>>Et il y en a vraiment de partout. Les pilotes reprĂ©sentent Ă  peu prĂšs le tiers (rĂ©seau, pĂ©riphĂ©riques de type bloc, processeurs graphiques, SCSI) et le reste est un mĂ©lange de mises Ă  jour d’architectures, de systĂšmes de fichiers, de documentation, de cƓur du rĂ©seau, d’utilitaires... Il n’y a donc pas de thĂšme unique ici, juste de petits correctifs Ă©parpillĂ©s de partout.>>Le journal abrĂ©gĂ© est joint pour les personnes qui voudraient avoir un aperçu des dĂ©tails.>>Linus ##RC-5 [Annonce](https://lkml.org/lkml/2019/4/14/265) : >Nous y revoilĂ ... C’est dimanche aprĂšs‐midi, ça signifier donc une autre RC du noyau.>>Nous avons des changements de partout, mais beaucoup ne sortent pas de l’ordinaire, et la plupart sont trĂšs petits. Si l’on regarde les stats, les mises Ă  jour des pilotes audio ont tendance Ă  ressortir, prenant presque le tiers du correctif (et presque le tiers des _commits_ aussi, ce n’est donc pas le rĂ©sultat d’une unique grosse rustine). Mais rien de tout ça ne semble tellement effrayant.>>En dehors des correctifs audio, un autre tiers sont les autres pilotes (processeurs graphiques, RDMA, NVMe, MMC, couche bloc...) et la derniĂšre chose est « divers ». Cela inclut des mises Ă  jour d’architectures et d’utilitaires, et des corrections de code variĂ©es (rĂ©seau, systĂšmes de fichiers, modules de sĂ©curitĂ©, et `/mm` dans le cƓur du noyau).>>Rien ici ne me met mal Ă  l’aise Ă  propos de ce cycle de parution. Touchons du bois.>>Le journal abrĂ©gĂ© est joint avec un rĂ©sumĂ© des dĂ©tails, comme toujours.>>Linus ##RC-6 [Annonce](https://lkml.org/lkml/2019/4/21/78) : > C’est le dimanche de PĂąques ici, mais je ne laisse pas des choses bĂ©nignes, comme l’arrivĂ©e d’un jour saint pour une religion majeure, interrompre le flot de mon travail sur le dĂ©veloppement du noyau. Pour la promenade occasionnelle en plongĂ©e, d’accord, mais se rĂ©unir pour un repas traditionnel, non. Il faut avoir des prioritĂ©s. Il y a juste tout ce [Memma](https://fr.wikipedia.org/wiki/M%C3%A4mmi) Ă  manger, mĂȘme si votre femme a dĂ» le prĂ©parer depuis zĂ©ro parce que personne ne consomme ce genre de chose aux États‐Unis.>>En tout cas, la RC-6 est plus grosse que je l’aurais aimĂ©, ce qui m’a fait revenir Ă  l’historique, et curieusement ce n’est pas si inhabituel que ça. Nous avons rĂ©cemment eu des pics similaires avec les 4.18 et 5.0.>>Donc, je ne vais pas m’inquiĂ©ter pour ça. Je pense que c’est juste un hasard de chronologie dans les demandes d’intĂ©gration, et sans doute au moins partiellement dĂ» Ă  la demande d’intĂ©gration rĂ©seau (avec un peu plus du tiers des changements relatifs au rĂ©seau, aussi bien dans les pilotes que dans la partie commune).>>À part le rĂ©seau, nous avons les habituelles mises Ă  jour d’autres pilotes (`nvdimm`, I2O et processeurs graphiques sortent du lot), d’architectures (principalement x86 – les correctifs KVM ressortent) et les utilitaires (auto‐tests et perfs)>>Enfin, nous avons une collection d’autres changements variĂ©s : `mm` dans le cƓur, des correctifs de systĂšmes de fichiers, l’ordonnanceur et du traçage.>> Mais malgrĂ© que la RC-6 soit un peu plus grosse que je l’aurais espĂ©rĂ©, l’ensemble est plutĂŽt petit, et je ne pense pas qu’il y ait quoi que ce soit d’inquiĂ©tant ici. En fait, une grande partie sont des choses vraiment triviales, dont certaines juste des corrections d’orthographe ou dans ce genre.>> Jetez un Ɠil au journal abrĂ©gĂ© ci‐joint pour les dĂ©tails, si ça vous intĂ©resse, mais surtout, faites le tourner et mettez‐le Ă  l’épreuve...>>Linus ##RC-7 [Annonce](https://lkml.org/lkml/2019/4/28/270) : >Si la RC-6 Ă©tait plus grosse que je l’aurais souhaitĂ©, ça semble bien dĂ» Ă  la chronologie des demandes d’intĂ©gration, car la RC-7 est trĂšs petite.>> Un peu moins de la moitiĂ© des correctifs sont des modifications rĂ©seau de diffĂ©rentes sortes : un mĂ©lange du cƓur du rĂ©seau, de pilotes et d’auto‐tests pour Netfilter.>>Le reste est surtout constituĂ© des habituels correctifs d’architectures, de systĂšmes de fichiers et autres pilotes (surtout RDMA et processeurs graphiques), et des changements divers (documentation, traçage, et des [_fixlets_](https://en.wikipedia.org/wiki/IBM_BigFix#Fixlets) mm).>>Mais tout cela est plutĂŽt petit. De plus, Ă  peu prĂšs 30 % des correctifs sont marquĂ©s comme stables, donc dans l’ensemble, la 5.1 semble en bonne voie pour une publication la semaine prochaine.>>Touchons du bois.>>Linus # Les nouveautĂ©s ## Architectures ### x86 Intel & x86_64 AMD Ajout de la plate‐forme Ice Lake Mobile dans la gestion d’intel_rapl [(_Running Average Power Limit_)](https://01.org/blogs/tlcounts/2014/running-average-power-limit-%E2%80%93-rapl). Ajout de la plate‐forme Jacobsville dans la prise en charge d’intel_idle (Jacobsville est une plate‐forme basse consommation, descendant des premiers Atom, aujourd’hui famille 6 « _Atom Tremont_ », pouvant ĂȘtre utilisĂ©e dans des « micros‐serveurs » ou encore pour « l’Internet des objets »), et intel_idle leur permet de plonger en sommeil profond pour baisser la consommation Ă©lectrique. L’intel_idle et les _c_state_ ont parfois causĂ© pas mal de soucis sur certains PC portables, tels que le gel du systĂšme avec, et consommation Ă©lectrique trop Ă©levĂ©e sans. Et contrairement Ă  l’ACPI standardisĂ©, les _c_states_ peuvent changer d’un systĂšme monopuce (SoC) Ă  un autre. L’ajout de cette prise en charge devrait rĂ©gler ce problĂšme pour ces systĂšmes monopuces (processeur + jeu de composants) _Jacobsville_. Ajout de la prise en charge du matĂ©riel MSN3700C de Mellanox. Prise en charge des diodes Ă©lectroluminescentes (DEL/LED) et des boutons pour les APU v2 et v3 de chez [PCengines](https://pcengines.ch). ### ARM Comme d’habitude avec cette architecture, la prise en charge de nombreux nouveaux systĂšmes monopuces (_SoC_) est intĂ©grĂ©e, et de nouveaux dĂ©claratifs Device Tree font leur apparition. Entre autres choses on pourra citer : - l’arrivĂ©e du MT7629 de chez [Mediatek](https://www.mediatek.com/), le tout dernier routeur Wi‐Fi de la marque, avec un double cƓur Cortex A7 (et une prise en charge avec OpenWRT) ; - l’entrĂ©e des Renesa R7/AM2 (puce spĂ©cialisĂ©e dans le traitement d’image) et RZ/G2E ; ne vous emballez pas, il s’agit « juste » du Device Tree, et pas d’une prise en charge complĂšte (la seconde puce, par exemple, embarque un PowerVR Ă  cĂŽtĂ© de son double cƓur Cortex A53). Et bien d’autres, cependant sans rien qui sorte spĂ©cialement du lot pour ĂȘtre mentionnĂ©, aussi vous pouvez aller lire la liste complĂšte des nouveautĂ©s ARM sur [_Linux Kernel Newbies_](https://kernelnewbies.org/Linux_5.1#ARM). On notera juste l’arrivĂ©e d’une variante du Raspberry Pi, le 3 A+, pour laquelle le raffinement d’un contrĂŽle Bluetooth sĂ©parĂ© de celui du Wi‐Fi est ajoutĂ©. ### RISC-V La prise en charge matĂ©rielle de [RISC-V](https://fr.wikipedia.org/wiki/RISC-V) arrive Ă  maturitĂ© et des correctifs de noyau avancĂ©s doivent ĂȘtre testĂ©s et exĂ©cutĂ©s au moins sur la carte de dĂ©veloppeur [HiFive Unleashed de SiFive](https://www.sifive.com/boards/hifive-unleashed). ### Autres Prise en charge du systĂšme monopuce Bitmain en tant qu’A53 double cƓur combinĂ© Ă  un seul cƓur RISC-V, bien que seul le processeur ARM soit pris en charge pour le moment. Il existe Ă©galement une nouvelle prise en charge pour ARM, notamment Socionext Milbeaut, NXP i.MX8QuadXPlus et quelques systĂšmes monopuces de Rensas. ## Identification des processus Le bien connu systĂšme de PID souffrait d’un problĂšme de rĂ©attribution d’un numĂ©ro d’identifiant pour un processus, pouvant _Ă©ventuellement_ mener Ă  une situation de concurrence oĂč un processus A envoyait un signal Ă  un processus B, alors que ce dernier Ă©tait stoppĂ© et son numĂ©ro d’identifiant rĂ©attribuĂ© Ă  un processus C. On peut lire [cette discussion](https://lkml.org/lkml/2019/3/31/5) pour constater que certains usages ont rĂ©ellement rencontrĂ© ce qui ne semblait ĂȘtre qu’un problĂšme thĂ©orique. AprĂšs de nombreuses discussions et propositions correctrices sur plusieurs axes, cette affaire est maintenant close avec l’ajout d’un nouvel appel systĂšme, ``pidfd_send_signal``. Une [vidĂ©o](https://asciinema.org/a/IQjuCHew6bnq1cr78yuMv16cy) sur _ASCII cinema_ en prĂ©sente les principes. ## Gestion de la mĂ©moire ### MĂ©moire vive non volatile Une nouveautĂ© particuliĂšrement intĂ©ressante est l’introduction d’un nouveau mode d’usage pour la « mĂ©moire persistante ». Pour rappel, NVDIMM ([_non‐volatile dual in‐line memory_](https://en.wikipedia.org/wiki/NVDIMM)) est un type de mĂ©moire rĂ©sistant Ă  un arrĂȘt Ă©lectrique : son contenu est conservĂ© comme sur un disque dur. Le noyau prenait en charge ce type de matĂ©riel comme un disque. Il est maintenant possible d’utiliser la NVDIMM comme une barrette mĂ©moire, en utilisant l’API de gestion de mĂ©moire du noyau. Des gains de performances sont donc attendus, et ces gains seront maintenus pendant toute la sĂ©quence de fonctionnement de la machine, sans perte de performance au fur et Ă  mesure de l’usage. L’implĂ©mentation passe par un accĂšs alĂ©atoire du placement des nouveaux blocs. Comme le [souligne Kees Cook](https://lwn.net/ml/linux-kernel/CAGXu5jLRuWOMPTfXAFFiVSb6CUKaa_TD4gncef%2BMT84pcazW6w%40mail.gmail.com/) il est plaisant de voir qu’une fonctionnalitĂ© de sĂ©curitĂ© amĂ©liore les performances ! Est-ce que la NVDIMM ressemble plus Ă  [un fantĂŽme](https://www.jedec.org/news/pressreleases/jedec-ddr5-nvdimm-p-standards-under-development) qu’à une rĂ©alitĂ©, le marchĂ© et les constructeurs ne proposant au mieux qu’un ajout d’une petite batterie sur la barrette ? Les choses semblent bouger, notamment chez les grands fournisseurs de « solutions en nuage » et constructeurs, tels que HP et Intel. _En apartĂ©, et Ă  cĂŽtĂ© de la NVDIMM, il se trouve que l’implĂ©mentation de [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt), spĂ©cifique aux architectures x86, a Ă©tĂ© proposĂ©e (lors du dernier _2019 Linux Storage, Filesystem, and Memory‐Management Summit_ » du dĂ©but d’annĂ©e) pour ĂȘtre considĂ©rĂ©e comme terminĂ©e._ ### AccĂ©lĂ©ration du vidage de l’espace d’échange mĂ©moire (swap) Une autre nouveautĂ© marquant cette version est la rĂ©duction de la complexitĂ© de l’algorithme derriĂšre le mĂ©canisme ``swapoff``, opĂ©ration permettant de vider l’[espace d’échange mĂ©moire](https://fr.wikipedia.org/wiki/Espace_d%27%C3%A9change) sur le stockage de masse afin de renvoyer son contenu en mĂ©moire vive. OpĂ©ration que l’on soupçonne complexe et qui vient d’ĂȘtre simplifiĂ©e. Les gains de performances impressionnent : on passe de 80 % de temps processeur et 8 min pour renvoyer 6 Gio de l’espace d’échange vers la mĂ©moire vive, Ă  5 % de processeur et 3 min pour la mĂȘme opĂ©ration avec la nouvelle implĂ©mentation. Voir [ce courriel](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b56a2d8af9147a4efe4011b60d93779c0461ca97) pour en savoir plus. ### DĂ©fragmentation des HugePages Les _Transparent HugePages_ continuent de recevoir des amĂ©liorations. Cette fois, c’est pour leur gestion de la **dĂ©**fragmentation, ce qui complĂšte le travail [prĂ©cĂ©dent](https://linuxfr.org/news/sortie-du-noyau-linux-5-0#toc-r%C3%A9duction-de-la-fragmentation-des-transparent-huges-pages) et permet maintenant d’amĂ©liorer leur allocation. Voir [ces explications](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c5fbd937b603885f1db3280ca212ed28add895bc), pour en apprendre plus. Le changement est notĂ© comme « allocation proche de la perfection ». Vingt‐deux correctif constituent cette belle avancĂ©e. ### OOM Killer L’_Out Of Memory Management_ reçoit une lĂ©gĂšre modification. Pour Ă©viter une situation oĂč un processus boguĂ© consommant toute la mĂ©moire vive et l’espace d’échange est tuĂ©, mais toujours relancĂ© par le processus initial (PID 1), c’est maintenant le processus pĂšre qui sera tuĂ© pour protĂ©ger le fonctionnement du systĂšme et des services. Aucun doute que certains ici ont connu ce type de situation avec, par exemple, des outils « constructeurs » complĂštement boguĂ©s et tuĂ©s dix fois par jour. Un voile de pudeur posĂ© sur leur nom, on prĂ©fĂšrera mettre en lumiĂšre [ce correctif](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bbbe48029720d2c6b6733f78d02571a281511adb). ### Gestion des vidages mĂ©moire (dumps) Vous avez des machines disposant de beaucoup de mĂ©moire vive, elles portent des machines virtuelles et vous avez un besoin d’analyse de crashs ? Vous serez alors intĂ©ressĂ© par l’exclusion des _balloon pages_ des vidages mĂ©moire (_dumps_) du noyau, permettant de rĂ©duire (fortement ?) la taille de ces _dumps_. Au passage, elles ont aussi Ă©tĂ© exclues du processus d’hibernation. Pour rappel la technique du _ballooning_ permet, par exemple, Ă  la machine hĂŽte de rĂ©clamer de la mĂ©moire vive Ă  une ou des machines invitĂ©s. Le premier correctif [explique](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4d3467e171f8a8ef8f1dd205769cf2f21fbc8e1e) en dĂ©tails cette modification. ## SĂ©curitĂ© ### SafeSetID On notera surtout l’arrivĂ©e d’un nouvel LSM (_Linux Security Module_) : SafeSetID. Il s’agit d’autoriser ou non la transition d’UID par une liste blanche d’approbation cĂŽtĂ© systĂšme et l’obtention de privilĂšges de type `CAP_SETUID`. Pour le moment, les appels systĂšme `SETUID` sont pris en charge, les `SETGUID` devraient suivre sous peu. Lisez la [documentation du noyau](https://www.kernel.org/doc/html/latest/admin-guide/LSM/SafeSetID.html) pour aller plus loin. ### eBPF eBPF a le vent en poupe avec pas moins de quinze nouveautĂ©s. BPF, _[extended Berkeley Packet Filter](https://www.kernel.org/doc/html/latest/bpf/index.html)_ a trois axes : le rĂ©seau, la sĂ©curitĂ© (seccomp, [landlock](https://landlock.io/)...) et l’instrumentation du noyau. Au menu des nouveautĂ©s, il y a, entre autres, la [crĂ©ation de rapports](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=492ecee892c2a4ba6a14903d5d586ff750b7e805) d’usage de BPF lui‐mĂȘme, l’ajout possible des [en‐tĂȘtes IP](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e0bd37ce0e4a574df6d87a901e13bcb46e10301) encapsulĂ©s dans les paquets pour IPIP, IP/GRE, IP/GUE pour IPv4 et IPv6, et la gestion du type ``__int128`` sur les architectures AMD64 (_cf._ [ce _commit_ initial](https://git.kernel.org/linus/b1e8818cabf407a5a2cec696411b0bdfd7fd12f0)). Mais c’est la prise en charge de la concurrence qui retient le plus l’attention dans ces nouveautĂ©s, avec l’ajout d’un [verrou tournant](https://lwn.net/ml/netdev/20190131234012.3712779-1-ast@kernel.org/) (_spinlock_). Les discussions ne sont pas terminĂ©es quant aux Ă©volutions futures possibles au sujet de la gestion de la mĂ©moire dans ou avec eBPF, mais elles augurent de belles Ă©volutions Ă  venir. Pour en savoir plus sur BPF, eBPF et l’outillage BCC, la lecture de [cette explication](http://www.linuxembedded.fr/2019/03/les-secrets-du-traceur-ebpf/) (en français) couvrant une partie de l’usage et avec des exemples pour BCC et Python, peut vous ĂȘtre utile. ## Bogue de 2038 L’an de grĂące 2038 pourrait ĂȘtre l’annĂ©e d’[un bogue comparable Ă  celui de l’an 2000](/news/la-fin-dune-epoch) oĂč des systĂšmes d’exploitation, des horloges matĂ©rielles, des systĂšmes de fichiers et des logiciels se retrouveront Ă  afficher une date erronĂ©e (1901 au lieu de 2038, voir [cet article](https://fr.wikipedia.org/wiki/Bug_de_l%27an_2038#Les_syst%C3%A8mes_de_fichier_immunis%C3%A9s) sur WikipĂ©dia). Ce problĂšme concerne, entre autres, la reprĂ©sentation [[POSIX]] du temps, qui Ă©tait limitĂ©e Ă  2 147 483 647 secondes (rapport entre le 1^(er) janvier 1970 et une reprĂ©sentation avec un entier signĂ© de 32 bits) Le noyau compilĂ© pour x86_64 est immunisĂ©. Les architectures 32 bits pourront, avec ce noyau 5.1, disposer d’une structure ``time_t`` sur 64 bits. Une Ă©lĂ©gante et parfaite solution. ## PĂ©riphĂ©riques et pilotes ### Cartes graphiques #### AMD Du cĂŽtĂ© du pilote libre amdgpu, on a la prise en charge de BACO (_Bus Active, Chip Off_) pour les Vega 10 et 20, un mode d’économie d’énergie dans lequel la majeure partie du processeur graphique est Ă©teinte pendant les pĂ©riodes d’inactivitĂ©, afin de rĂ©duire considĂ©rablement la consommation d’énergie de la carte graphique. Le [PowerPlay](https://en.wikipedia.org/wiki/AMD_PowerPlay) pour les Vega 10 et 20 s’expose maintenant Ă  l’espace utilisateur, via [sysfs](https://fr.wikipedia.org/wiki/Sysfs), ``ppfeatures`` permettant d’en configurer certains aspects : l’horloge, avec ``pp_dpm_socclk`` et l’accĂ©lĂ©ration du ou des ventilateurs pour les Vega10 et ``pp_dpm_fclk`` pour les Vega20. Ceci devrait ravir les _overclockers_ et ĂȘtre utile aussi pour maĂźtriser un peu plus la consommation d’énergie. #### Intel La protection [HDCP](https://fr.wikipedia.org/wiki/High-bandwidth_Digital_Content_Protection) (_High-Bandwidth Digital Content Protection_) en version 2.2 est prise en charge. Pour rappel, il s’agit d’un mĂ©canisme Ă©vitant la copie de flux numĂ©rique passant par les connecteurs HDMI, DVI et DisplayPort. Le mode _fastboot_ est maintenant actif par dĂ©faut. Ce mode permet d’éviter les multiples initialisations de la carte graphique et/ou de la rĂ©solution lors de la sĂ©quence de dĂ©marrage du systĂšme. C’est un bon complĂ©ment pour une configuration en « amorçage silencieux ». Toutes les cartes au‐delĂ  de la neuviĂšme gĂ©nĂ©ration en bĂ©nĂ©ficient. _Un exemple [en vidĂ©o](https://www.youtube.com/watch?v=ud9cTqr9Eew) avec une carte graphique autre qu’une Intel, oĂč le rendu graphique de la sĂ©quence d’amorçage est sans interruption depuis le BIOS jusqu’au bureau, mais sur lequel il reste un ajustement final ; le_ fastboot _activĂ© par dĂ©faut pour les cartes Intel Ă©vite cet ajustement final)._ À noter aussi un petit correctif pour le « mode TV » : les frĂ©quences 30 Hz, 50 Hz et 60 Hz en 1080p. Quelques nouvelles dĂ©clarations de matĂ©riels, pour _Coffee Lake_ et _Ice Lake_, du nettoyage dans le dĂ©bogage. Il y a Ă©galement l’ajout de l’exposition Ă  l’espace utilisateur de la configuration RPCS (SSEU) pour les cartes de la onziĂšme gĂ©nĂ©ration, « Gen11 », uniquement (visiblement contre‐productif sur les autres gĂ©nĂ©rations). Lisez [ce rapport](https://bugs.freedesktop.org/show_bug.cgi?id=100899) initial pour en savoir plus sur un des constats et l’origine de la question. ### Cartes son CĂŽtĂ© audio ce sont surtout les ASOC qui reçoivent des nouveautĂ©s, avec pas moins de vingt‐six nouvelles prise en charge, allant du simple ajout de la gestion du bouton de bascule vers un ensemble casque‐micro de tĂȘte pour les sĂ©ries Broxton chez Intel, jusqu’à l’arrivĂ©e d’un nouveau codec, le [jz4725b](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9d97b05a80f27d5ba7379b108db19b0d93cf267), en passant par une nouvelle carte prise en charge par le module [rt5651](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d306873589c5a4c13df7176cd73d66ebfa690064). C’est aussi l’arrivĂ©e de la prise en charge pour l’équipement [FireFace UCX](http://www.rme-audio.de/en/products/fireface_ucx.php) de chez RME. Bien que peu excitant pour ce noyau 5.1, la prise en charge de l’audio par Linux continue son chemin. Les audiophiles prĂ©fĂ©reront peut‐ĂȘtre se pencher sur la nouvelle couche logicielle [PipeWire](https://pipewire.org/) en dehors du noyau, qui a pour ambition d’unifier audio et vidĂ©o, et remplacer Ă  terme Jack et PulseAudio, tout en prĂ©servant une compatibilitĂ©. ### RĂ©seau CĂŽtĂ© Mellanox, toujours beaucoup de nouveautĂ©s, avec de petites modifications vraiment atomiques, et des amĂ©liorations surtout pour l’[[Infiniband]] : - gestion du 50 Gbit/s par voie (sur les liens 50 Gbit/s, 100 Gbit/s et 200 Gbit/s) ; Ă  noter que la prise en charge de ces cartes est d’ores et dĂ©jĂ  rĂ©troportĂ©e dans les distributions majeures ; - amĂ©liorations pour la sĂ©rie des cartes et adaptateurs InfiniBand de sĂ©rie 573xx de ce fabricant (incluant les 57500, Connect-x6, cartes de dĂ©bit 200 Gbit/s). C’est fait dans le cadre de l’[Open Fabric Alliance](https://www.openfabrics.org/) pour rapprocher les possibilitĂ©s du pilote libre de leur pilote propriĂ©taire. La cible principale est la meilleure adaptation du matĂ©riel au calcul haute performance. Les dĂ©veloppeurs intĂ©ressĂ©s pourront consulter les manuels (au‐delĂ  de Mellanox), [disponibles](https://ofiwg.github.io/libfabric/v1.7.1/man/) chez Open Fabric. L’effort de convergence, de code source ouvert et de partage ou mise en commun ne peut qu’ĂȘtre encore une fois saluĂ©. Pour le grand public, cĂŽtĂ© Broadcom, des [amĂ©liorations mineures](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e665988be29ccea3584528967b432a5cfd801ca4) dans le module brcmfmac, pour coller au nouveau fonctionnement des derniers micrologiciels. ## Intelligence artificielle [IntĂ©gration](https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/log/?h=char-misc-next&qt=grep&q=habanalabs) de la prise en charge de la carte « d’intelligence artificielle » de chez [Habana Labs](https://habana.ai/) de gĂ©nĂ©ration Goya. La gĂ©nĂ©ration suivante, Gaudi, est d’ores et dĂ©jĂ  prĂ©vue. Habana Labs prĂ©sente son propre calculateur spĂ©cialisĂ©, la carte Goya est plus spĂ©cialement conçu pour l’analyse, tandis que la carte Gaudi sera plus spĂ©cialement prĂ©vue pour l’apprentissage et elles s’interfacent toutes deux avec les piles logicielles du secteur (telles que [[TensorFlow]]) et surtout Habana Labs nous fait le plaisir d’ajouter cette prise en charge avec du code libre directement chez _kernel.org_. Ce secteur bouge beaucoup, [NVIDIA vient de se rĂ©inventer](https://www.nvidia.com/fr-fr/deep-learning-ai/) en « constructeur d’intelligence artificielle », tandis qu’Intel vient [d’annoncer](https://www.intel.ai/nervana-nnp/#gs.9lnlyn) ses premiĂšres puces spĂ©cialisĂ©es et les acteurs de l’informatique en nuage : Google et AWS travaillent sur leurs propres puces. ## SystĂšmes de fichiers et outillage ### IO_URING IO_Uring fait son entrĂ©e officielle dans la branche stable avec cette 5.1. C’est une avancĂ©e majeure de ce noyau. Il s’agit d’amĂ©liorer drastiquement les [entrĂ©es‐sorties asynchrones](https://en.wikipedia.org/wiki/Asynchronous_I/O), certes prises en charge depuis longtemps par Linux, mais dont l’implĂ©mentation recevait quelques critiques et mĂ©ritait d’ĂȘtre amĂ©liorĂ©e. Cette nouvelle interface ``io_uring`` apporte la gestion du tampon pour ces entrĂ©es‐sorties asynchrones, et la gestion d’autres types d’entrĂ©es‐sorties asynchrones. [Cet article](http://kernel.dk/io_uring.pdf) en anglais est un bon choix pour aller plus loin. ### VFS Le systĂšme de fichiers virtuels [[VFS]] permet d’utiliser diffĂ©rents systĂšmes de fichiers de maniĂšre transparente pour les applications. Cette coexistence via cette abstraction permet, entre autres, de s’affranchir des noms de volumes (problĂšme bien connu de Windows) et constitue ce qui permet de gĂ©rer en « points de montage » avec l’appel systĂšme ``mount()``. Bien que ``mount()`` ne souffre d’aucun problĂšme, un nouvel appel systĂšme ``fsopen()`` voit le jour afin d’apporter une opĂ©ration intermĂ©diaire descriptive. ConcrĂštement, lĂ  oĂč aujourd’hui ``mount`` s’occupe de tout dans tous les cas, demain ``fsopen`` passera en premier et ``mount`` ne s’occupera que du strict nĂ©cessaire pour la cible. Il permettra Ă  terme de nouvelles possibilitĂ©s sur les systĂšmes de fichiers (remontage dans un espace de noms, par exemple. D’autres exemples et des descriptions des limitations actuelles, sont explicitĂ©s dans [ce courriel](https://patchwork.kernel.org/cover/10820153/)). Cependant, en lisant ces lignes, on peut se demander quels gains rĂ©els sont attendus. C’est Ă©galement une des questions posĂ©es par certains mainteneurs du noyau, [dont Linus](https://lwn.net/ml/linux-kernel/CA+55aFzEjPUGZFk7PnM0T6YEn5uRrscgyCHyhc_cYz0m8ejdLA@mail.gmail.com/), concernĂ©s aussi par la taille de ce correctif sur un des systĂšmes centraux du noyau, et des possibles implications de sĂ©curitĂ© que cela peut engendrer. AprĂšs des mois de rĂ©visions et d’amĂ©liorations, il semble bien aujourd’hui que ``fsopen()`` ait sa place dans le noyau. Nous aurons probablement l’occasion d’en reparler, peut-ĂȘtre bien Ă  plusieurs reprises. ### AutoFS AutoFS se voit dotĂ© d’une nouvelle option « ignore », il s’agit d’une requĂȘte initiale venant de Red Hat, afin de permettre Ă  des applications le souhaitant de ne pas tenir compte de ces points de montage. Votre serviteur Ă©met un doute quant Ă  la pertinence de cette solution, d’autres identifications existent pour Ă©viter d’exposer des points de montage AutoFS, mais il semble ne s’agir que d’un dĂ©but, comme le [laisse entrevoir](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=60d6d04ca3abb34d5e89f030dbea440d9715a168) le commentaire du correctif. Donc, _wait and see_. ### XFS XFS, ajoute un mode ``always_cow`` (pour le _copy on write_) permettant un dĂ©bogage plus pertinent dans certaines situations et la prise en charge des matĂ©riels qui « ne permettent pas l’effacement de blocs » (zones dĂ©clarĂ©es en lecture seule). Un cas typique d’usage est un mĂ©canisme de protection des donnĂ©es contre la corruption (coupure Ă©lectrique, par exemple) : un second espace de mĂ©tadonnĂ©es est allouĂ© et dĂ©diĂ© aux journaux jusqu’à ce que l’opĂ©ration soit complĂšte. ConcrĂštement, il n’y aura jamais de réécriture d’un bloc dĂ©jĂ  existant, mais une mise Ă  jour Ă  cĂŽtĂ©. Voir cette [petite documentation](https://github.com/hgst/dm-zoned-tools) sur ZBC et ZDAC pour le contexte initial (ainsi qu’une ancienne prĂ©sentation de Damien Le Moal Ă  [ce sujet](https://www.snia.org/sites/default/files/SDC/2016/presentations/smr/DamienLeMoal_ZBC-ZAC_Linux.pdf)). _À noter que cette prise en charge Ă©tait dĂ©jĂ  effective dans le systĂšme de fichiers F2FS._ ### NFS [NFS](https://fr.wikipedia.org/wiki/Network_File_System) dĂ©passe une limitation de la glibc pour la lecture du contenu d’un dossier en se dotant d’un cache spĂ©cifique. _En fait de limitation, il s’agit surtout de s’affranchir des problĂšmes des performances (observables avec des outils usuels tel que ``ls`` en shell ou ``os.listdir`` en Python, par exemple), causĂ©s par [``readdir``](http://man7.org/linux/man-pages/man3/readdir.3.html) alors que [``getdents``](http://man7.org/linux/man-pages/man2/getdents.2.html) existe, mais est absent de la glibc)_. Ce correctif annonce des gains de performances de l’ordre de 70 % lors d’une Ă©nonciation du contenu d’un dossier (bĂ©mol : on parle lĂ  de dossiers contenant plusieurs centaines de milliers de fichiers). ### CIFS De l’amĂ©lioration aussi, via du cache, chez [[CIFS]] : la rĂ©ponse Ă  ``stat /montage`` ne nĂ©cessitera plus d’opĂ©ration rĂ©seau Ă  chaque fois. IntĂ©ressant de noter que ce correctif est un travail collaboratif avec Microsoft — Samba/CIFS a fait du chemin depuis ses premiĂšres versions basĂ©es sur de la rĂ©tro‐ingĂ©nierie. ### FSNotify / fanotify À cĂŽtĂ© des systĂšmes de fichiers ou affiliĂ©s, fanotify reçoit _enfin_ [le nĂ©cessaire](https://github.com/amir73il/linux/commits/fanotify_dirent) pour la surveillance rĂ©cursive. Celle-ci Ă©tait auparavant source de consommations de mĂ©moire (voire de temps processeur) car implĂ©mentĂ©e cĂŽtĂ© outils, ce n’est plus le cas et les outils pourront faire appel Ă  ``dirent``. Il bĂ©nĂ©ficie Ă©galement d’une sĂ©rie de correctifs amĂ©liorant les Ă©vĂšnements du systĂšme de fichiers et son propre comportement. ### Autres Ceph, plate‐forme de stockage distribuĂ©, continue de recevoir des amĂ©liorations, tandis qu’ExoFS se fait sortir du noyau. Enfin, il est maintenant possible, moyennant prĂ©paration, d’amorcer directement un pĂ©riphĂ©rique dĂ©clarĂ© via le _device-mapper_, donc sans initrd. Ceci ne concerne pas toutes les possibilitĂ©s de _device-mapper_, seules six sont actuellement disponibles. Par exemple : amorçage direct sur une partition chiffrĂ©e, ou encore sur une partition « dm_verity ». Voir cette premiĂšre [documentation](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/device-mapper/dm-init.txt?id=6bbc923dfcf57d6b97388819a7393835664c7a8e). L’amorçage sur un DM, sans initrd, ça se teste rapidement ! ## LivePatch La fonction « _live patch_ » reçoit le « remplacement atomique » permettant de jongler avec plusieurs correctifs en sĂ©rie cumulative. ConcrĂštement, il est maintenant possible de retirer un correctif d’une sĂ©rie. Cette amĂ©lioration est utile lorsque plusieurs correctifs touchent Ă  la mĂȘme structure, la mĂȘme fonction du noyau, mais Ă©galement lorsqu’il s’agit de gĂ©rer des dĂ©pendances entre ces correctifs. _Le sujet semble cependant toujours sensible malgrĂ© ces efforts de convergence (menant kgraft et kpatch vers un socle commun), car si certains acteurs (CloudLinux, par exemple) proposant leur solution ne sont pas vraiment un problĂšme Ă  terme, Microsoft en revanche, possĂšde un brevet (aux États‐Unis) sur l’idĂ©e, faisant ainsi peser un risque sur la vie de ce projet, et ne semble pas avoir clarifiĂ© la situation et son objectif Ă  ce sujet._ # Statistiques Nous vous invitons simplement Ă  lire les informations collectĂ©es par [Jonathan Corbet pour _LWN.net_](https://lwn.net/SubscriberLink/786638/32666bef6143ff6e/) pour la RC-6. # Autour du noyau La crĂ©ation du « CHIPS Alliance Project » a Ă©tĂ© annoncĂ©e pour accĂ©lĂ©rer l’adoption du modĂšle _Open Hardware_. Les membres actuels sont Esperanto, Google, SiFive et Western Digital. Pour lancer cette nouvelle alliance, Google a contribuĂ© Ă  [UVM](https://en.wikipedia.org/wiki/Universal_Verification_Methodology) pour les RISC-V. Le projet est hĂ©bergĂ© aussi sur [GitHub](https://github.com/google/riscv-dv). Plus d’information sur le [site de l’alliance](https://chipsalliance.org/). Pas moins de quarante‐trois nouvelles sociĂ©tĂ©s [rejoignent](https://www.linuxfoundation.org/press-release/2019/04/43-new-members-join-the-linux-foundation-and-increase-their-participation-in-open-source-innovation/) la Fondation Linux, dont Wolkswagen AG.

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /