Un patch qui boost les performances des Linux Desktop

par Korben -

Edit : Une technique proposant les mêmes améliorations sans avoir à recompiler le noyau est dispo pour Redhat et Ubuntu.

Linux est connu pour être l’un des OS les plus rapide du marché. Alors quand on voit que même Linus Torvalds s’excite sur un patch pour le kernel qui divise par 10 les temps de latence sur les linux desktop, on ne peut aussi que mouiller sa culotte de joie (voir pire pour les barbus).

En effet, ce patch qui sera probablement déployé dans le kernel 2.6.38 a été développé par Mike Galbraith. Ce dernier en seulement 233 lignes de code a réalisé une “killer feature” qui optimise la distribution des tâches au CPU, evitant ainsi l’engorgement et du coup les temps de latence lors par exemple, du chargement d’une page web.

Sans rentrer dans les explications techniques de peur de dire des conneries (Mes cours d’archi sont très loin derrière moi, j’avoue), voici ce qu’explique Mike dans son email pour les curieux qui voudraient comprendre comment ça fonctionne en détail :

Each task’s signal struct contains an inherited pointer to a refcounted autogroup struct containing a task group pointer, the default for all tasks pointing to the init_task_group. When a task calls __proc_set_tty(), the process wide reference to the default group is dropped, a new task group is created, and the process is moved into the new task group. Children thereafter inherit this task group, and increase it’s refcount. On exit, a reference to the current task group is dropped when the last reference to each signal struct is dropped. The task group is destroyed when the last signal struct referencing it is freed. At runqueue selection time, If a task has no cgroup assignment, it’s current autogroup is used.

Et comme je suis partisan de “Une vidéo Youtube vaut mieux qu’un long et chiant discours”, voici un petit benchmark vidéo réalisé par Phoronix.

Sur la première vidéo, vous pouvez voir un Ubuntu installé sur un Core i7 sans le sched_autogroup activé (la fameuse option de ce kernel patch). Le mec a lancé une compilation de noyau avec 64 jobs en parallèle. La vidéo HD 1080p de Big Buck Bunny rame donc à mort et l’affichage des pages web est super lent. Ça peut paraitre étrange que cela impacte le chargement des pages web. On aurait tendance à croire que la vitesse du réseau fait tout mais la puissance de la machine a vraiment son importance dans la récupération et l’affichage des éléments dans le navigateur, ainsi que dans la fluidité du scroll des pages.


Et sur la seconde vidéo donc, exactement la même chose de lancé, mais avec le sched_autogroup activé et là, franchement, il n’y a pas photo. La vidéo est fluide et le desktop rame à peine. C’est vraiment dingue !!!


Bref, vraiment du bon boulot avec ce patch, qui lorsqu’il débarquera dans nos distribs sera une petite révolution !

[Source]