вторник, мая 06, 2008

suspend2ram/resume на двухядернике

Опять же 2 batman, заодно и себе памятка.
Такая вот фигня... Баг проявляется не только в *Ubuntu, в сьюз 10.3 то же самое, в мандариве тоже.
В зависимости от того, какие настройки в управлении питанием бука, можно сказать насколько серьёзна эта бага. Для меня - серьёзна, так как по закрытию крышки бук уходит в ждущий режим (suspend2ram). Если в настройках на закрытие крышки выставлен спящий режим (suspend2disk, он же гибернация) или выключение, то баг не проявляется.
Вкратце, если читать на буржуйском языке тяжело. Уходит в ждущий режим замечательно. При выходе из этого режима (поднятие крышки) acpi теряет второе ядро процессора. Нет, ядро работает, но его частота не регулируется уже и оно молотит в полную мощность -> нагрев ->шум постоянно работающего вентилятора -> удар по энергосбережению, что критично при работе от аккумулятора.
lamer@tzlaptop:init.d$ cat /proc/cpuinfo | grep MHz
cpu MHz : 1000.000
cpu MHz : 1500.000

В Gutsy (7.10) это можно пофиксить быстрым и грязным методом - при резюминге перезагрузить acpi модули ядра. Для этого в файл /etc/acpi/resume.d/72-acpi-pain.sh в конце, перед /etc/acpi/power.sh добавить две строки:
rmmod -f acpi-cpufreq
modprobe acpi-cpufreq
и всё будет в шоколаде.
В Hardy (8.04) такой номер не пройдёт. Там ядро собрано вот так:

grep FORCE_UNLOAD /boot/config-$(uname -r)
# CONFIG_MODULE_FORCE_UNLOAD is not set

то есть не сможешь на ходу выгрузить работающий модуль даже с ключом --force.
Пересобирать ядро лениво. Вот.
Update: Патч предложен в багзилле kernel.org, модифицированный патч уже направлен разрабам убунты. Более того, принят в ветку -proposed. Это означает, что после следующего багфиксового апдейта ядра из официального репозитория будет всё в шоколаде. Надеюсь.
Update2: Fixed в убунтовском ядре, баг на kernel.org не отслеживаю.

Комментариев нет: