Мэтью Гаррет, известный разработчик ядра Linux и лауреат премии за вклад в развитие свободного ПО, опубликовал результаты эксперимента по задействованию в Linux новых механизмов экономии энергии, появившихся в процессорах Intel серии Haswell и Broadwell. Результат превзошел все ожидания и показал плачевное состояние с работой по оптимизации энергопотребления в Linux. В частности, потребление энергии удалось снизить с 8.5 до 5 Ватт, что значительно продлило время автономной работы системы от заряда аккумулятора.

Причиной выявленных проблем является то, что CPU Haswell и Broadwell не переходят в глубокие режимы энергосбережения, если в активном состоянии находится хотя бы одна из интегрированных подсистем, таких как CPU, GPU и PCH (Platform Controller Hub). PCH обеспечивает работу систем ввода/вывода, в том числе USB и SATA. В Linux по умолчанию отключено использование механизмов снижения энергопотребления для SATA, т.е. интерфейс SATA всегда находится в активном состоянии, что не даёт процессору активировать глубокий режим энергосбережения и сохраняет питание многих частей CPU, потребность в которых отсутствует. Похожее поведение наблюдается и в Windows, но большинство производителей оборудования поставляют в данной ОС дополнительный AHCI-драйвер компании Intel, который активирует корректные политики энергопотребления.

Для решения проблемы для ядра Linux предложен небольшой патч, который извлекает настройки прошивки на стадии загрузки ядра и добавляет две новые политики энергопотребления: первая на основе выдаваемой прошивкой конфигурации и вторая, повторяющая настройки в драйвере Intel. Использование данных политик позволило при неактивности системы снизить потребление энергии на несколько ватт за счёт того, что изменение состояния линка SATA дало возможность добиться включения режима PC7 вместо PC2.

При этом исследование ещё не закончено, так как предстоит учесть влияние на выбор режимов энегосбережения состояния других компонентов, в частности, GPU. Например, активность экрана приводит не только к затратам энергии на его работу, но и к нахождению во включенном состоянии дополнительных компонентов чипсета. В спецификации Embedded Displayport 1.3 определён интерфейс Panel Self-Refresh, позволяющий согласовать отключение линка с GPU, сохранив при этом содержимое экрана. Патчи для включения подобного режима уже подготовлены для систем Intel, но пока не включены по умолчанию.

Проблемным также остаётся вопрос доведения всех доступных средств энергосбережения до пользователей. Компания Intel обеспечила в ядре поддержку всех возможностей управления питанием для своих систем, но данные возможности лежат мёртвым грузом и остаются неактивированными. Задача применения данных возможностей и выбора оптимальной политики энергопотребления ложится на дистрибутивы, которые не спешат что-то менять и склоняются к использованию консервативных универсальных настроек, не учитывающих возможность дополнительной оптимизации для отдельных систем.

Источник: http://www.opennet.ru/opennews/art.shtml?num=42119