S'identifier / Créer un compte
  • Actualités
  • Dossiers
  • Tests
  • Commentaires
  • INpactiens
Publicité

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

Une consommation parfois supérieure d'un tiers

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.
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.

Publiée le 16/11/2011 à 11:24

Soutenez l'indépendance de Next INpact en devenant Premium

  • Tout le contenu de Next INpact sans pub
  • Et bien plus encore...

Il y a 158 commentaires

Avatar de Tim-timmy INpactien
Tim-timmy Le mercredi 16 novembre 2011 à 15:18:40
Inscrit le mardi 26 avril 05 - 4658 commentaires

Déjà toi quand t'essaye de traduire:
, ça ne te choque pas?




non car j'ai fait l'effort d'aller lire les phrases d'après, là j'ai juste cité le résumé du résumé ..

cadeau: la traduction :

cette ECN définit un nouveau bit de capacité "Support de l'optionnalité d'ASPM (berk)", que le logiciel peut utiliser pour déterminer si il faut activer l'ASPM ou lancer des tests de support

(donc le choix qui se pose pour le soft selon la réponse du test, c'est juste "lancer tout de suite sans tester" ou "tester avant et lancer si supporté" (comme avant quoi), pas "désactiver directement sans tester", ce que semblait faire linux)

ps : rererereredite : ON PARLE DE PORTABLES LA :p juste pour être clair, le support pour le bios et les autres OS n'est donc pas le même que sur leurs cartes fixes...



Edité par tim-timmy le mercredi 16 novembre 2011 à 15:21
Avatar de Khalev INpactien
Khalev Le mercredi 16 novembre 2011 à 15:21:08
Inscrit le mercredi 1 avril 09 - 5655 commentaires


Quand j'essaye de traduire "which software is
permitted to use to help determine whether to enable ASPM or whether to run ASPM compliance "

=> dont le logiciel permet d'utiliser, d'aider à déterminer d'activer ASPM ou ou de lancer ASPM compliance.

"Que le logiciel est autorisé à utiliser pour l'aider à déterminer s'il peut activer ASPM ou plutôt exécuter un ASPM compatible"

maitrecapello.gif
Avatar de bavarois INpactien
bavarois Le mercredi 16 novembre 2011 à 15:22:18
Inscrit le mardi 7 décembre 04 - 1514 commentaires

Dans ce cas, le débat est clos.

Pour échapper à un monopole, ou pour toute autre raison, afin d'utiliser du Linux, et 100 % du Linux à présent - exit Windows -, je fais attention un minimum au matos avant d'acheter, effectivement.

Bien obligé vu que les standards ne sont pas respectés, les spécs modifiées ou pas communiquées, des pilotes inexistants, etc...

Même quand je n'utilisais que Windows, je faisais attention à optimiser mon matos, là c'est un peu plus c'est tout.

Il faut savoir ce qu'on veut.


Nous sommes d'accord!
Donc comprenez que si on vous dit ça marche sur Windows c'est que le matériel n'est pas prévu pour linux comme 100% compatible.
Le souci est que c'est à l'utilisateur de faire des efforts pour se renseigner alors que cela pourrait être indiqué plus précisément pour éviter les problèmes!

Désolé d'avoir pu faire croire à un troll.
Avatar de Khalev INpactien
Khalev Le mercredi 16 novembre 2011 à 15:23:04
Inscrit le mercredi 1 avril 09 - 5655 commentaires

ps : rererereredite : ON PARLE DE PORTABLES LA :p juste pour être clair, le support pour le bios et les autres OS n'est donc pas le même que sur leurs cartes fixes...


Bin si...
Avatar de TaigaIV INpactien
TaigaIV Le mercredi 16 novembre 2011 à 15:24:27
Inscrit le mercredi 1 octobre 08 - 10477 commentaires
mezcalbert

Pas grand chose, en fait je me réfère à un des arguments les plus mis en avant: le coût de linux face à microsoft ou autre.



Il y a 50 façons de comprendre cette argument mais le réduire à ça tourne sur des cartes-mères bas de gamme me semble très réducteur (et sous entendre que windows ne le peut pas n'est pas très sérieux). Si tu veux dire qui "tourne sur du matériel obsolète" c'est une autre histoire.


Mais comme souvent le côté libre du monde n'accepte pas ce qui est dit contre lui. Je vais donc m'abstenir d'intervenir.
et revenez vers le fait que l'on parle de cartes mères de portables pas de pc fixes.


Tu insistes avec des généralités sorti tout droit d'un chapeau, ce n'est pas parce qu'il y a des machines qui tournent sur du matériel ancien que toutes les machines linux sont dans ce cas. Quand tu as besoin de performance tu prends le matériel qui va avec, d'ailleurs de nombreux produits haut voir très haut de gamme sont très bien supportés sous linux. Je ne crois pas que les dev de ces drivers ait été fait pour contenter 4 clients qui ce battent en duel, il dois y avoir une base un peu plus importante.
Avatar de Burn2 INpactien
Burn2 Le mercredi 16 novembre 2011 à 15:32:59
Inscrit le mardi 1 novembre 05 - 9865 commentaires



non car j'ai fait l'effort d'aller lire les phrases d'après, là j'ai juste cité le résumé du résumé ..

cadeau: la traduction :

cette ECN définit un nouveau bit de capacité "Support de l'optionnalité d'ASPM (berk)", que le logiciel peut utiliser pour déterminer si il faut activer l'ASPM ou lancer des tests de support

(donc le choix qui se pose pour le soft selon la réponse du test, c'est juste "lancer tout de suite sans tester" ou "tester avant et lancer si supporté" (comme avant quoi), pas "désactiver directement sans tester", ce que semblait faire linux)

ps : rererereredite : ON PARLE DE PORTABLES LA :p juste pour être clair, le support pour le bios et les autres OS n'est donc pas le même que sur leurs cartes fixes...




ASPM Optionality Compliance – This bit must be set to 1b.
Components implemented against certain earlier versions of this
specification will have this bit set to 0b.
HwInit
Software is permitted to use the value of this bit to help
determine whether to enable ASPM or whether to run ASPM
compliance tests.


TU noteras bien le "must" pour les systèmes récents ...
Par contre on voit aussi que bizarrement, la première version de la spécif va avoir 0, donc si c'est pas mis à jour...

La deuxième partie dit juste que le logiciel peut se servir de ce bit pour savoir si... Mais c'est bel est bien au constructeur de mettre la valeur correcte... A charge du logiciel de s'en servir ou pas....

Donc en gros, ça peut être 1 ou 0, mais faut tester, non trop top comme spec... Si c'est 1 on peut s'en servir, si c'est 0 faut tester... Parce que 0 = carte mère non mis à jour pour respecter les dernières spec et qui supporte quand même, ou carte mère qui ne supporte pas.


La question c'est comment tester de manière fiable la compatibilité ça... Et surtout c'est top d'avoir pu avoir une version sortir avec 0 mais qui est compatible.



Après faut voir si les machines sorties en question de chez gygabyte étaient récentes et donc auraient du respecter le nouveau standard ou pas.


The ASPM Optionality Compliance bit was created as a tool to establish clear expectations
for hardware and software. This bit is Set to indicate hardware that conforms to the current
specification, and this bit must be Set in components compliant to this specification.
System software as well as compliance software can assume that if this bit is Set, that the
associated hardware conforms to the current specification. Hardware should be fully capable
of supporting ASPM configuration management without needing component-specific
treatment by system software.
For older hardware that does not have this bit Set, it is strongly recommended for system
software to provide mechanisms to enable ASPM on components that work correctly with
ASPM, and to disable ASPM on components that don’t.

J'aime bien la fin. Faut tester, mais on vous dit pas comment.


Edité par Burn2 le mercredi 16 novembre 2011 à 15:34
Avatar de j-c_32 INpactien
j-c_32 Le mercredi 16 novembre 2011 à 15:37:38
Inscrit le jeudi 11 juin 09 - 2284 commentaires

Pas grand chose, en fait je me réfère à un des arguments les plus mis en avant: le coût de linux face à microsoft ou autre.

Justement, cela implique que les Linuxiens ont un plus grand budget pour le matériel.
Avatar de Para-doxe INpactien
Para-doxe Le mercredi 16 novembre 2011 à 15:39:07
Inscrit le jeudi 27 octobre 11 - 1121 commentaires


Il y a 50 façons de comprendre cette argument mais le réduire à ça tourne sur des cartes-mères bas de gamme me semble très réducteur (et sous entendre que windows ne le peut pas n'est pas très sérieux). Si tu veux dire qui "tourne sur du matériel obsolète" c'est une autre histoire.


Je crois qu'il a surtout voulu sous-entendre que GNU/Linux c'est pour ceux qui peuvent pas se payer du Windows.

Un très gros troll.
Avatar de Tim-timmy INpactien
Tim-timmy Le mercredi 16 novembre 2011 à 15:44:20
Inscrit le mardi 26 avril 05 - 4658 commentaires




TU noteras bien le "must" pour les systèmes récents ...


on notera aussi que la modif de la norme date de mi/fin 2009, donc qu'il est encore un poil tot pour qu'un soft exige que tous les systèmes l'implémentent nickel ... bref un moment de transition à venir, qui va tenir quelques années quand même. (mais le soft devra toujours tester dans le doute..)


pour le test de compatibilité, il est fait grâce au patch si je ne plante pas .. je ne sais pas comment c'était fait avant .. pur bourrinage en activant forcément l'ASPM et en regardant le truc foirer ?


Edité par tim-timmy le mercredi 16 novembre 2011 à 15:46
Avatar de Khalev INpactien
Khalev Le mercredi 16 novembre 2011 à 15:50:58
Inscrit le mercredi 1 avril 09 - 5655 commentaires


pour le test de compatibilité, il est fait grâce au patch si je ne plante pas .. je ne sais pas comment c'était fait avant .. pur bourrinage en activant forcément l'ASPM et en regardant le truc foirer ?

Non justement, c'était l'inverse, on le désactivait systématiquement. D'où les problèmes de batterie.
Et cette modif avait été mise en place pour éviter le plantage au cas où l'ASPM n'était pas géré mais activé.

"Right now we forcibly clear ASPM state on all devices if the BIOS indicates
that the feature isn't supported."
(Avant le patch, ce qui était une implémentation stricte de la spec en fait)

"This patch reworks the ASPM disabling code such that the actual clearing
of state is triggered by a successful handoff of PCIe control to the OS.
The general ASPM code undergoes some changes in order to ensure that the
ability to clear the bits isn't overridden by ASPM having already been
disabled."
(Avec le patch)


Edité par khalev le mercredi 16 novembre 2011 à 15:55
;