LINUX.ORG.RU

Лаптоп HP и баги ACPI у ядер >=2.6.27


0

0

Салют Трудяги!

Попал ко мне HP лаптоп с очень странными симптомами ACPI
Все прекрасно работает на ядрах до 2.6.26 включительно. При загрузке любого ядра начиная с 2.6.27 (включая 2.6.30rc4)наблюдаю такую картину:

Адаптер питания подключен к лаптопу:
все грузится и работает отлично!

Адаптер питания отключен, питание от батареи:
Загрузка останавливается много раз в процессе инициализации железа и продолжается только при нажатии какой-либо клавиши. Далее отработав несколько шагов загрузки, замирает снова до следующего нажатия любой клавиши на клавиатуре. И так 10-15 раз пока не появится приглашение. Можно конечно не тыкать кнопки и просто ждать, но тогда паузы достигают 3-4 минут и соответственно общее время загрузки занимает ~40 минут. Если же в процессе такой "загрузки" снова подключить внешнее питание, то загрузка продолжается без каких-либо задержек.

Если грузить ядро с параметром acpi=off, то есссстественно все отлично грузиться, что при питании от батареи, что от сети. Но такой вариант не подходит т.к. это лаптоп:)

Можно конечно остаться на ядре 2.6.26 и не париться, но из-за поддержки на уровне ядра wifi, web-камеры и других мелочей, хотелось бы ядра поновее.

Вот эту конфигурацию ACPI я использовал на всех тестируемых ядрах:

# Power management options
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION="/dev/sda3"
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROCFS_POWER=y
CONFIG_ACPI_SYSFS_POWER=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=y
# CONFIG_ACPI_BAY is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_WMI=m
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_SBS=y
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=y
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
CONFIG_X86_POWERNOW_K8=y
CONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_GX_SUSPMOD is not set
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_SPEEDSTEP_ICH is not set
# CONFIG_X86_SPEEDSTEP_SMI is not set
# CONFIG_X86_P4_CLOCKMOD is not set
CONFIG_X86_CPUFREQ_NFORCE2=m
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_E_POWERSAVER is not set


Еще раз напомню, - при питании от батареи ядро грузиться с паузами, которые можно прервать нажатием клавиши <AnyKey> либо подключив питание от сети.
Сие наблюдается при использовании одной и той же конфигурации ACPI на всех ядрах начиная c 2.6.27

Если кто поделиться мыслями по этому поводу, - буду благодарен :)

★★★

Речь не об ACPI как таковом, а о настройках энергосбережения. Я думаю, что ноут просто входит в спячку или понижает частоту процессора до ~10 MHz. С этим можно попробовать бороться с помощью параметров ядра, перечисленных на странице http://www.thinkwiki.org/wiki/Problem_with_high_pitch_noises (хотя там речь идет о совершенно другой проблеме). В первую очередь надо попробовать max_cstate=2, processor.max_cstate=2 или, в самом крайнем случае, idle=poll.

AEP ★★★★★
()
Ответ на: комментарий от AEP

Еще не исключено, что какие-то таймауты считаются по пониженной тактовой частоте => параметры notsc или clock=pit в помощь

AEP ★★★★★
()

zen-sources пробовали? Там большое количество исправлений для ноутов.

linux4ever
()
Ответ на: комментарий от AEP

> понижает частоту процессора до ~10 MHz

OOO__OOO такое разве хардварно возможно?

isden ★★★★★
()

>Если кто поделиться мыслями по этому поводу, - буду благодарен :)

Скорее всего, бага в ACPI у ноутбука. Такое может быть, например, если ACPI сообщает аномально высокую температуру или аномально низкие пределы для перехода на повышенные режимы охлаждания и снижение производительности (см. /proc/acpi/thermal_zone/THRM/trip_points). Или же бывает, что ACPI сообщает аномально низкий заряд батареи (см. /proc/acpi/battery/BAT*/state).

Почему на старых ядрах не проявлялось — может быть, не использовалась эта информация.

dmitry_vk ★★★
()
Ответ на: комментарий от AEP

AEP - большое спасибо!

Почитал, покурил гугл, узнал новое :) Нашел что не один такой и проблема встречается. К сожалению проблема не решена:( Точнее решена, но такое решение не подходит. Из множества перепробованных мною опций загрузки проблему решают только 2 варианта, либо nolapic либо idle=poll

НО,
nolapic - не подходит, т.к. хочется пользоваться SMP %)
idle=poll - по понятным причинам увеличил мне температурный диапазон на 15-20 градусов, что абсолютно неприемлемо%)

Решение: Буду использовать ядро 2.6.26.8

> zen-sources пробовали? Там большое количество исправлений для ноутов.


Честно говоря нет. Думаю что я слишком категоричен, но я предпочитаю только ванильные ядра. За совет - спасибо.
:)


Всем БОЛЬШОЕ спасибо!

papay ★★★
() автор топика
Ответ на: комментарий от papay

Погляди ещё на bugzilla.kernel.org, вдруг там есть твоя модель лаптопа и ведуться попытки написания патча. У меня уже есть "любимый" баг - #12011

Unnamed_Hero ★★★
()
Ответ на: комментарий от papay

> idle=poll - по понятным причинам увеличил мне температурный диапазон на 15-20 градусов, что абсолютно неприемлемо%)

Ну увеличился температурный режим, и что с того?

andreyu ★★★★★
()
Ответ на: комментарий от Unnamed_Hero

> Погляди ещё на bugzilla.kernel.org, вдруг там есть твоя модель лаптопа и ведуться попытки написания патча. У меня уже есть "любимый" баг - #12011

LOL

papay ★★★
() автор топика
Ответ на: комментарий от andreyu

> Ну увеличился температурный режим, и что с того?

это обратно пропорционально времени работы от батареи

papay ★★★
() автор топика
Ответ на: комментарий от papay

> > Ну увеличился температурный режим, и что с того?
> это обратно пропорционально времени работы от батареи


Не улавливаю связь, поясните пожалуйста. Я серьезно, этот вопрос меня интересует.

andreyu ★★★★★
()

Хм, было аналогичное на интеловском процессоре. Регулятор speedstep снижал скорость реально до десятков-сотен МГц, чему в принципе заниматься не рекомендуется. По интеловской спецификации минимальная частота для нынешних процев в районе 600МГц с плюсами/минусами для конкретного процессора. Решилось обновлением ядра + какие-то патчи вроде ставил.

gh0stwizard ★★★★★
()
Ответ на: комментарий от andreyu

> Не улавливаю связь,

Из /usr/src/linux/Documentation/kernel-parameters.txt:

idle=poll forces a polling idle loop that can slightly improves the performance of waking up a idle CPU, but will use a lot of power and make the system run hot. Not recommended.

Лишние никому не нужные передергивания процессора и как следствие нагрев. Что уже по сути расход энергии, плюс потеря энергии на охлаждение этого всего кулером.

Без использования idle=poll, рабочая температура процессора 33-37 градусов. Время работы от 6-cell батареи без использования wifi и CD - почти 3 часа, от 12-cell батареи 7 часов.

При использовании idle=poll, рабочая температура не 50-55 градусов, и время работы на 6-cell 1.5 часа, с батареей 12-cell не пробовал.

papay ★★★
() автор топика
Ответ на: комментарий от andreyu

> Угу, теперь понял, процессор практически не спит.

дык эт тоже самое если бы вы жили с женой и тёщей в одной комнате и у вас 10 детей :))) Посмотрел бы я на ваш температурный режим в такой обстановке :)))

papay ★★★
() автор топика
Ответ на: комментарий от gh0stwizard

> Погляди ещё на bugzilla.kernel.org, вдруг там есть твоя модель лаптопа и ведуться попытки написания патча. У меня уже есть "любимый" баг - #12011

> Хм, было аналогичное на интеловском процессоре. Регулятор speedstep снижал скорость реально до десятков-сотен МГц, чему в принципе заниматься не рекомендуется. По интеловской спецификации минимальная частота для нынешних процев в районе 600МГц с плюсами/минусами для конкретного процессора. Решилось обновлением ядра + какие-то патчи вроде ставил.

запостил баг #13233 на эту тему

papay ★★★
() автор топика
Ответ на: комментарий от papay

Кому интересно следите на bugzilla.kernel.org - баг #13233

походу дела все работает при использовании опции nolapic_timer

papay ★★★
() автор топика
Ответ на: комментарий от papay

Для тех к о загуглит сюда с такой же проблеммой.

Это была регрессия ядра. Начиная с 2.6.30-rc7 починено:)

Итого: [2.6.27;2.6.30-rc6] - работать не будет

papay ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.