В обновлениях ядра Linux 3.0.20 и 3.2.5 устранены проблемы с повышенным энергопотреблением
7 февраля 2012 года
Увидели свет корректирующие выпуски ядра Linux 3.2.5 и 3.0.20, в которых отмечено только одно изменение - интегрирован давно ожидаемый многими пользователями ноутбуков патч(недоступная ссылка), подготовленный ещё в ноябре Мэтью Гарретом (Matthew Garrett) из компании Red Hat. Патч решает проблемы с повышенным потреблением энергии на ноутбуках, поддерживающих технологию ASPM (Active State Power Management) для карт PCI Express. Проблема проявляется начиная с ядра 2.6.38, в котором была реализована новая система инициализации ASPM, и проявляется в повышении энергопотребления на 10-30%.
Изначально патч планировали включить в ветку ядра 3.3 (в ветку 3.2 патч не вошел, так как в момент его выпуска окно по приёму изменений уже было закрыто), но в конце концов посчитали, что ждать ещё несколько месяцев нет смысла. Несмотря на то, что патч признан достаточно зрелым для помещения в стабильную ветку и уже давно используется в ядрах из состава Fedora, рекомендуется проявить осторожность, так как не исключено возникновение регрессий для некоторого специфичного оборудования. Предложенный патч имитирует поведение Windows Vista при инициализации системы управления питанием, т.е. не очищает статус ASPM для всех устройств в процессе загрузки, оставляя параметры, выставленные BIOS. К сожалению, разработчикам приходится двигаться на ощупь, так как в публичном доступе полностью отсутствует какая-либо документация, описывающая, как именно должны взаимодействовать компоненты ОС с ASPM.
Причиной повышения потребления энергии при использовании ядра 2.6.38 и выше является некорректное информирование ОС о поддержке ASPM со стороны BIOS (например, проблема проявляется почти на всех новых моделях ноутбуков ThinkPad). До принятия патча активация ASPM в ядре производилась только при явном сообщении BIOS о наличии поддержки ASPM для карт PCI Express. На практике оказалось, что подобный метод неэффективен, так как BIOS многих систем умалчивает о наличии ASPM, в то время как поддержка данного режима присутствует. Если BIOS не сообщил о поддержке ASPM, ядро Linux обнуляло ASPM-регистры, что приводило к тому, что технология энергосбережения ASPM не использовалась в процессе работы системы, т.е. был постоянно активен режим максимальной производительности. В ситуации, когда BIOS указывал на наличие ASPM, инициализация проходила корректно и проблем не наблюдалось.
Следует отметить, что включения в ядро Linux ожидает ещё один набор патчей Мэтью Гаррета, связанный с оптимизацией работы при корректном уведомлении о наличии ASPM со стороны BIOS. В этом случае также не обошлось без подводных камней. Если системе изначально известно о ASPM, то применяются более агрессивные настройки, чем по умолчанию выставлены прошивкой. Но для отдельных проблемных PCI-E устройств подобные настройки применять оказалось нельзя, поэтому был сформирован чёрный список для индивидуального отключения ASPM. Список устройств, для которых необходимо отключение ASPM был найден через анализ настроек драйверов для платформы Windows, в которой используется подобный обходной путь для более оптимального использования ASPM в системе. В частности, в чёрный список вошли все RAID-контроллеры HP Smart Array (CCISS и HSPA), контроллеры Atheros l1c, l2c, l2cb и l2cb2, l1e, Ethernet-адаптеры J-Micron серии 250 и 260.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.