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.