Патч для решения проблемы с повышенным энергопотреблением Linux на некоторых ноутбуках
12 ноября 2011 года
Мэтью Гаррет (Matthew Garrett), один из разработчиков ядра Linux из компании Red Hat, опубликовал в списке рассылки ядра Linux патч, полностью решающий проблемы с повышенным энергопотреблением на ноутбуках, поддерживающих технологию ASPM (Active State Power Management) для карт PCI Express. Проблема выражается в том, что для некоторых систем в процессе работы ASPM-регистры постоянно остаются в режиме "performance" (высокая производительность), что приводит к повышению энергопотребления на 10-30% при использовании ядер Linux начиная с 2.6.38. Предложенный патч имитирует поведение Windows при инициализации системы управления питанием, т.е. не очищает статус ASPM для всех устройств в процессе загрузки, оставляя параметры, выставленные BIOS.
Проблема долгое время оставалась нерешённой из-за отсутствия какой-либо документации, описывающей как именно следует принимать решения о включении или выключении поддержки ASPM в ситуации, когда BIOS не информирует ОС о поддержке ASPM. Изначально разработчики ядра Linux полагались на то, что активировать ASPM следует только в том случае, если BIOS явно сообщает о наличии поддержки ASPM для карт PCI Express. Как оказалось, подобный метод не эффективен, так как BIOS многих систем умалчивает о наличии ASPM, в то время как поддержка данного режима присутствует. Если BIOS не сообщил о поддержке ASPM, ядро Linux обнуляло ASPM-регистры, что приводило к тому, что технология энергосбережения ASPM не использовалась в процессе работы системы (постоянно был активен режим максимальной производительности), даже если ASPM был реализован в компьютере. В ситуации, когда BIOS указывал на наличие ASPM, инициализация проходила корректно и проблем не наблюдалось.
Тестирование энергопотребления показало, что после применения патча, потребление энергии на ноутбуке ThinkPad на базе CPU Intel Core i7 уменьшилось на 36% при ненагруженном состоянии системы и на 14% при запуске интенсивно использующей графику 3D-игры, что соответствует уровню энергопотрбления при использовании ядра 2.6.37 (новая система инициализации ASPM была добавлена в 2.6.38). К сожалению, окно приёма изменений для ядра Linux 3.2 уже закрыто, поэтому наиболее вероятно, что патч будет включён только в состав ядра 3.3, выход которого можно ожидать весной 2012 года.
Вслед за первым патчем, Мэтью Гаррет также представил несколько дополнительных улучшений, нацеленных на оптимизацию работы в случае, если BIOS корректно сообщает о наличии ASPM. Если системе изначально известно о ASPM, то применяются более агрессивные настройки, чем по умолчанию выставлены прошивкой. Для драйверов отдельных проблемных PCI-E устройств, для которых такие настройки неприменимы, предоставляется возможность индивидуального отключения ASPM. Список устройств для которых необходимо отключение ASPM был найден через анализ настроек драйверов для платформы Windows, в которой используется подобный обходной путь для более оптимального использования ASPM в системе.
В настоящее время в чёрный список внесены следующие устройства:
- Все RAID-контроллеры HP Smart Array (CCISS и HSPA);
- Atheros l1c, l2c, l2cb и l2cb2, за исключением устройств производства Toshiba и Lenovo. Atheros AR8113 (L1E);
- J-Micron Ethernet серии 250 и 260;
- Infiniband/NES.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.