Moins d’autonomie sous Linux ? La faute des BIOS et de Windows

Depuis plusieurs mois, les ordinateurs sous GNU/Linux consommaient plus d’énergie que sous Windows. La raison est connue depuis un moment : la gestion de l’ASPM a été modifiée dans le noyau 2.6.38 et — assez bizarrement — le fonctionnement de la technologie était altéré.

L’ASPM (Active-State Power Management) est une technologie liée au bus PCI-Express qui permet de diminuer la consommation des différents liens PCI-Express quand ils sont inutilisés. Le principal problème est simple : le noyau Linux vérifie auprès du BIOS si la technologie est supportée et si le BIOS l’indique, l’ASPM est activé. Dans le cas contraire, elle est désactivée. Le noyau utilise donc une méthode simple, mais elle a un gros défaut : certains BIOS n’indiquent pas si la technologie est supportée, alors qu’elle l’est. Et le noyau, dans ce cas précis (et a priori courant) désactive la technologie, ce qui a un impact assez visible sur la consommation et donc — directement — l’autonomie.

Windows, la cause et la solution ?

En investiguant, un développeur a compris le problème : Windows — de loin l’OS le plus utilisé — ne fait pas de test dans les règles sur la façon de gérer l’ASPM. Concrètement, l’ASPM est considéré comme étant supporté automatiquement sauf si le BIOS indique explicitement qu’il ne l’est pas. Un patch pour le noyau Linux — en attendant son intégration dans le futur — a donc été développé pour modifier le comportement de ce dernier. Avec le patch, au lieu de désactiver manuellement l’ASPM quand le BIOS ne donne pas d’informations, le noyau ne va rien faire. Le seul moment où la technologie sera désactivée manuellement est quand le BIOS l’indiquera explicitement. La source est donc liée à Windows — qui n’effectue pas les tests de façon correcte — et, dans les faits, aux développeurs des BIOS qui n’indiquent pas correctement le support, étant donné que le système d’exploitation le plus courant fonctionne sans cette information.

Avec ce patch d’une soixantaine de lignes, la consommation est bien diminuée, le développeur indique gagner 5 W sur son Thinkpad X220 en idle, ce qui est important sur un appareil de ce type. Notons qu’il est aussi possible de forcer manuellement l’utilisation de la technologie : elle est prise en charge sur la grande majorité des ordinateurs portables récents.