Noyau Linux : une solution au pépin de surconsommation d'énergie

Une consommation parfois supérieure d'un tiers 158
linux pingouin logoDepuis la version 2.6.38 du noyau Linux, les distributions ont enregistré une baisse notable de l’autonomie des batteries dans les ordinateurs portables. La régression avait été pointée du doigt rapidement mais il restait encore à cerner le problème pour proposer un correctif. Une solution a été trouvée par un développeur de Red Hat : imiter le comportement de Windows.

Une baisse conséquente d'autonomie en fonction des portables

Le problème apparu avec le noyau 2.6.38 se retrouve dans un grand nombre de distributions parmi les plus utilisées, notamment Ubuntu 11.10. Il prend sa source dans la gestion de l’ASPM (Active State Power Management) et provoque une surconsommation d’énergie et donc une baisse importante de l’autonomie.

La modification introduite dans le noyau Linux 2.6.38 était à la base assez simple : le support de l’ASPM était désactivé par défaut, sauf si le BIOS déclarait explicitement le gérer. Un changement intervenu car l’ASPM n’est pas forcément utilisé par tous les constructeurs. Le vrai problème vient en fait des BIOS eux-mêmes qui, s’ils sont capables de gérer l’ASPM, ne le déclarent pas forcément. Conséquence : le système pouvait couper l’accès à l’ASPM alors que celui-ci était présent mais non déclaré par le BIOS, avec à la clé une hausse de la consommation pouvant dépasser les 35 %.

Plusieurs constructeurs de cartes mères, notamment Gigabyte, avaient une réponse toute simple au souci : utiliser Windows. Malheureusement, cela ne pouvait pas convaincre les développeurs de solutions Linux. La question alors s’est posée de savoir comment Windows lui-même faisait pour déterminer quand le support de l’ASPM devait être activé ou pas.

Ne plus faire confiance au BIOS

La réponse est venue du développeur Matthew Garrett de Red Hat, connu notamment pour avoir remis en cause le Secure Boot de Windows 8. Une réponse complexe car il n’existe virtuellement aucune documentation sur le sujet. Seule piste de réflexion, une présentation de Microsoft sur la gestion du PCI Express dans Vista et versions ultérieures de Windows, puisque l’ASPM fait partie de la norme PCI-E.

Dans le patch conçu par Matthew Garrett, l’activation ou non de l’ASPM se fait via une prise de contrôle réussie sur le PCI Express par le système, tout en s’assurant que le réglage qui en découle n’est pas écrasé par l’information reflétée par le BIOS et qui est potentiellement inexacte. En tout et pour tout, 60 lignes de code se proposent de régler le problème de la consommation. Mais la question qui se pose est évidemment de savoir si cela fonctionne.

Le site Phoronix a testé ledit patch sur une demi-douzaine d’ordinateurs portables, et le constat est clair : la consommation des machines revient à un niveau normal et donc antérieur à l’arrivée du noyau 2.6.38. Dans le graphique ci-dessous fourni par Phoronix, on aperçoit les lignes représentant les consommations des noyaux 2.6.37, 2.6.38 et 3.2. La dernière est celle du noyau 3.2 patché, et on remarque que la consommation revient au niveau de celle du 2.6.37.

linux

Malheureusement, il faudra attendre pour la consécration officielle du patch. Les préparatifs du noyau 3.2 sont terminés. Or, il ne s’agit pas d’un correctif classique mais d’un changement important dans le comportement du système et il ne devrait en conséquence pas apparaître avant la version 3.3 du noyau. Le patch peut tout de même être récupéré et appliqué sur la version actuelle du noyau 3.2.

On remarquera que l’origine du problème est avant tout un manque de documentation sur l’ASPM ainsi que de communication sur l’implémentation réalisée par les constructeurs.
Publiée le 16/11/2011 à 11:24 - Source : Phoronix
Vincent Hermann

Rédacteur/journaliste spécialisé dans le logiciel et en particulier les systèmes d'exploitation. Ne se déplace jamais sans son épée.

Soutenez nos journalistes

Le travail et l'indépendance de la rédaction dépendent avant tout du soutien de nos lecteurs.

Abonnez-vous
À partir de 0,99 €

Publicité