{"id":5572,"date":"2019-03-04T12:23:29","date_gmt":"2019-03-04T11:23:29","guid":{"rendered":"https:\/\/www.blaess.fr\/christophe\/?p=5572"},"modified":"2019-03-04T15:37:54","modified_gmt":"2019-03-04T14:37:54","slug":"bref-apercu-de-linux-5-0","status":"publish","type":"post","link":"https:\/\/www.blaess.fr\/christophe\/2019\/03\/04\/bref-apercu-de-linux-5-0\/","title":{"rendered":"Bref aper\u00e7u de Linux 5.0"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"alignright\"><img loading=\"lazy\" decoding=\"async\" width=\"171\" height=\"200\" src=\"https:\/\/www.blaess.fr\/christophe\/wp-content\/uploads\/2019\/03\/Tux-5-1.png\" alt=\"\" class=\"wp-image-5590\"\/><\/figure><\/div>\n\n\n\n<p>Linus Torvalds a <a rel=\"noreferrer noopener\" aria-label=\"publi\u00e9 ce matin (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/lore.kernel.org\/lkml\/CAHk-=wjuG6HiGbD7DCGfvDvhr_1WZUR-eYF2qWGbYyn9k6unvg@mail.gmail.com\/\" target=\"_blank\">publi\u00e9 ce matin<\/a> une nouvelle version du noyau Linux inaugurant la nouvelle branche \u00ab\u00a05\u00a0\u00bb. Pr\u00e9cisons que le passage de la branche 4 \u00e0 la branche 5 n&rsquo;a pas de signification particuli\u00e8re, il n&rsquo;y a pas plus de diff\u00e9rence entre le noyau 4.20 et le 5.0 qu&rsquo;entre le 4.19 et 4.20 par exemple. C&rsquo;est simplement l&rsquo;histoire des num\u00e9rotations de Linux qui est un peu particuli\u00e8re.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Installation<\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">[Build]$ <strong>wget <a href=\"https:\/\/www.kernel.org\/pub\/linux\/kernel\/v5.x\/linux-5.0.tar.xz\">https:\/\/www.kernel.org\/pub\/linux\/kernel\/v5.x\/linux-5.0.tar.xz<\/a><\/strong><br>[Build]$ <strong>tar xf linux-5.0.tar.xz<\/strong><br>[Build]$ <strong>cd linux-5.0\/<\/strong><\/pre>\n\n\n\n<p>J&rsquo;ai r\u00e9cup\u00e9r\u00e9 la configuration du noyau pr\u00e9c\u00e9dent fourni par la distribution. Ceci \u00e9vite d&rsquo;avoir \u00e0 passer en revue les quelques milliers d&rsquo;options pour s&rsquo;assurer que le syst\u00e8me <em>boote<\/em> correctement.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[linux-5.0]$ <strong>cp \/boot\/config-4.15.0-45-generic .config<\/strong><br>[linux-5.0]$ <strong>make menuconfig<\/strong><\/pre>\n\n\n\n<p>J&rsquo;ai choisi de modifier quelques options. Bien s\u00fbr, comme \u00e0 chaque version de Linux (tous les deux mois environ) il y a tout un ensemble de nouvelles fonctionnalit\u00e9s disponibles. Impatient de voir le r\u00e9sultat de ma compilation, je n&rsquo;en modifie que quelques-unes.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">General setup --->\n<br>    () Local version - append to kernel release<\/pre>\n\n\n\n<p>Ceci n&rsquo;est pas nouveau, mais ajoutez une cha\u00eene de caract\u00e8res quelconque (par exemple vos initiales) pr\u00e9c\u00e9d\u00e9e d&rsquo;un tiret. Ceci permet de \u00ab\u00a0signer\u00a0\u00bb visuellement son noyau.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">General setup --->\n<br>    CPU\/Task time and stats accounting  --->\n<br>        [*] Pressure stall information tracking<br>        [ ] Require boot parameter to enable pressure stall information tracking <\/pre>\n\n\n\n<p>Nous reparlerons de ce nouveau m\u00e9canisme plus bas.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Power management and ACPI options  --->\n<br>    [*] Energy Model for CPUs<\/pre>\n\n\n\n<p>Une gestion plus fine de la consommation \u00e9lectrique. Surtout utile pour les mod\u00e8les sur batterie (portables, tablettes, objets connect\u00e9s, syst\u00e8mes embarqu\u00e9s, etc.).<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[linux-5.0]$ <strong>make -j 4<\/strong><br>[linux-5.0]$ <strong>sudo make modules_install<\/strong><br>[linux-5.0]$ <strong>sudo make install<\/strong><br>[linux-5.0]$ <strong>sudo reboot<\/strong><\/pre>\n\n\n\n<p>Apr\u00e8s quelques instants, ma machine red\u00e9marre, et m&rsquo;affiche l&rsquo;interface graphique habituelle. J&rsquo;ouvre une console et v\u00e9rifie tout de suite si le noyau est bien celui que je viens de compiler.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[~]$ <strong>uname -a<\/strong><br>Linux why-240 <strong>5.0.0-cpb<\/strong> #1 SMP Mon Mar 4 11:38:55 CET 2019 x86_64 x86_64 x86_64 GNU\/Linux<\/pre>\n\n\n\n<p>Le syst\u00e8me semble fonctionner tout \u00e0 fait normalement. Je v\u00e9rifie les quelques points que j&rsquo;ai modifi\u00e9s durant la configuration<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Pressure Stall Information<\/h4>\n\n\n\n<p>Un point int\u00e9ressant pour l&rsquo;administration d&rsquo;un syst\u00e8me Linux est l&rsquo;arriv\u00e9e du syst\u00e8me de mesure de la charge en CPU, en m\u00e9moire et en entr\u00e9es-sorties.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[~]$ <strong>cd \/proc\/pressure\/<\/strong><br>[pressure]$ <strong>ls<\/strong><br>cpu  io  memory<br>[pressure]$ <strong>cat cpu<\/strong><br>some avg10=1.53 avg60=0.97 avg300=0.81 total=12219936<br>[pressure]$ <strong>cat io<\/strong><br>some avg10=4.60 avg60=3.74 avg300=3.90 total=55969274<br>full avg10=3.00 avg60=2.60 avg300=2.88 total=48143084<br>[pressure]$ <strong>cat memory<\/strong><br>some avg10=0.00 avg60=0.00 avg300=0.00 total=0<br>full avg10=0.00 avg60=0.00 avg300=0.00 total=0<\/pre>\n\n\n\n<p>Afin de solliciter un peu le syst\u00e8me, j&rsquo;ai relanc\u00e9 une compilation assez cons\u00e9quente. Nous voyons que le pseudo-fichier CPU nous indique la charge processeur durant les 10 derni\u00e8res secondes, puis 1 et 5 minutes.<\/p>\n\n\n\n<p>On trouvera l&rsquo;explication des diff\u00e9rents champs dans <a rel=\"noreferrer noopener\" aria-label=\"cet article de Jonathan Corbet (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/lwn.net\/Articles\/775971\/\" target=\"_blank\">cet article de Jonathan Corbet<\/a> sur <em>LWN<\/em>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Synthetic and dynamic events<\/h4>\n\n\n\n<p>L&rsquo;arriv\u00e9e de pseudo-fichiers <code>synthetic_events<\/code> et <code>dynamic_events<\/code> dans le syst\u00e8me de fichiers <code>tracefs<\/code> permet d&rsquo;unifier l&rsquo;acc\u00e8s via <em>Ftrace<\/em> aux m\u00e9canismes de suivi <em>kprobe<\/em> et <em>uprobe<\/em>. Je n&rsquo;ai pas encore approfondi ce point, on pourra se reporter au <a rel=\"noreferrer noopener\" aria-label=\"le post du patch (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/marc.info\/?l=linux-kernel&amp;m=154140848510769&amp;w=2\" target=\"_blank\">post du patch<\/a> pour des explications.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[~]$ <strong>sudo -i<\/strong><br># <strong>mount none \/sys\/kernel\/tracing\/ -t tracefs<\/strong><br># <strong>ls \/sys\/kernel\/tracing\/<\/strong><br> available_events            max_graph_depth      stack_trace<br> available_filter_functions  options              stack_trace_filter<br> available_tracers           per_cpu              <strong>synthetic_events<\/strong><br> buffer_percent              printk_formats       timestamp_mode<br> buffer_size_kb              README               trace<br> buffer_total_size_kb        saved_cmdlines       trace_clock<br> current_tracer              saved_cmdlines_size  trace_marker<br> <strong>dynamic_events<\/strong>              saved_tgids          trace_marker_raw<br> dyn_ftrace_total_info       set_event            trace_options<br> enabled_functions           set_event_pid        trace_pipe<br> events                      set_ftrace_filter    trace_stat<br> free_buffer                 set_ftrace_notrace   tracing_cpumask<br> function_profile_enabled    set_ftrace_pid       tracing_max_latency<br> hwlat_detector              set_graph_function   tracing_on<br> instances                   set_graph_notrace    tracing_thresh<br> kprobe_events               snapshot             uprobe_events<br> kprobe_profile              stack_max_size       uprobe_profile<br># <strong>exit<\/strong><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Energy model<\/h4>\n\n\n\n<p>La gestion fine de la consommation \u00e9tait une demande pressante, notamment dans l&rsquo;univers des objets connect\u00e9s. Il s&rsquo;agit de donner des indications \u00e0 l&rsquo;ordonnanceur sur la consommation \u00e9lectrique des diff\u00e9rents c\u0153urs. Ceci est int\u00e9ressant essentiellement pour la famille Arm, o\u00f9 l&rsquo;on voit de plus en plus de processeurs asym\u00e9triques, proposant par exemple deux c\u0153urs A15 rapides mais assez gourmands et deux c\u0153urs A7 un peu plus lents mais plus \u00e9conomes en \u00e9nergie. Cette connaissance du mod\u00e8le de consommation associ\u00e9e \u00e0 la topologie du processeur pourra am\u00e9liorer les d\u00e9cisions de l&rsquo;ordonnanceur pour optimiser l&rsquo;utilisation des batteries.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>Je me suis amus\u00e9 \u00e0 compiler rapidement ce nouveau noyau et \u00e0 vous en faire part ici, mais il y a beaucoup plus de nouveaut\u00e9s que les quelques options pr\u00e9sent\u00e9es ici.<\/p>\n\n\n\n<p>Pour en savoir plus sur le noyau Linux 5.0, je vous conseillerais de parcourir <a rel=\"noreferrer noopener\" aria-label=\"cet article (s\u2019ouvre dans un nouvel onglet)\" href=\"https:\/\/kernelnewbies.org\/Linux_5.0\" target=\"_blank\">cet article<\/a> de l&rsquo;excellent site <em>Kernel Newbies<\/em>.<\/p>\n\n\n\n<p> <\/p>","protected":false},"excerpt":{"rendered":"<p>Linus Torvalds a publi&eacute; ce matin une nouvelle version du noyau Linux inaugurant la nouvelle branche &laquo;&nbsp;5&nbsp;&raquo;. Pr&eacute;cisons que le passage de la branche 4 &agrave; la branche 5 n&rsquo;a pas de signification particuli&egrave;re, il n&rsquo;y a pas plus de diff&eacute;rence entre le noyau 4.20 et le 5.0 qu&rsquo;entre le 4.19 et 4.20 par exemple. [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,19,8],"tags":[],"class_list":["post-5572","post","type-post","status-publish","format-standard","hentry","category-actualite","category-kernel","category-linux-2"],"_links":{"self":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts\/5572","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/comments?post=5572"}],"version-history":[{"count":12,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts\/5572\/revisions"}],"predecessor-version":[{"id":5597,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/posts\/5572\/revisions\/5597"}],"wp:attachment":[{"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/media?parent=5572"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/categories?post=5572"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blaess.fr\/christophe\/wp-json\/wp\/v2\/tags?post=5572"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}