Энергосбережение SATA и опции модуля ahci

Доброго времени всем.
Недавно обнаружил у себя в dmesg запись
ahci 0000:00:1f.2: port does not support device sleep
Оказалось, что с недавнего времени:

This commits adds a new ahci.mobile_lpm_policy kernel cmdline option,
which defaults to a new SATA_MOBILE_LPM_POLICY Kconfig option so that
Linux distributions can choose to set a LPM policy for mobile chipsets
by default.
Т.е., по умолчанию в ядре включено
zcat /proc/config.gz | grep CONFIG_SATA_MOBILE_LPM_POLICY
CONFIG_SATA_MOBILE_LPM_POLICY=3
Т.е.
+config SATA_MOBILE_LPM_POLICY
+ int "Default SATA Link Power Management policy for mobile chipsets"
+ range 0 4
+ default 0
+ depends on SATA_AHCI
+ help
+ Select the Default SATA Link Power Management (LPM) policy to use
+ for mobile / laptop variants of chipsets / "South Bridges".
+
+ The value set has the following meanings:
+ 0 => Keep firmware settings
+ 1 => Maximum performance
+ 2 => Medium power
+ 3 => Medium power with Device Initiated PM enabled
+ 4 => Minimum power
что соответствует режиму
med_power_with_dipm

Вопроса собственно джва:
1- для включения med_power_with_dipm получается ничего делать не нужно?
2- чем чревато ahci 0000:00:1f.2: port does not support device sleep

Пока что выставил в параметрах ядра
ahci.mobile_lpm_policy=0
udev правилом определил max_performance - от зарядки, med_power_with_dipm - от батарейки.
И действительно, max_performance - сообщение о неподдерживаемом сне отсутствует, med_power_with_dipm - появляется.

Получается тот параметр ядра и опция модуля делают одно и то же?
Ваще ничего непонятно(
И да, забыл, НАФИГА опция выставлена по-умолчанию, если в вики написано, что данную опцию лучше применять в зависимости от наличия подключенной зарядки, т.к. это дает задержку доступа к диску.
Если AHCI в биос отключить что-то изменится? Я отключил давно.
Aivar
Если AHCI в биос отключить что-то изменится? Я отключил давно.
не отключабельно там у меня..( Выбор есть, но там только ahci) Видимо с каким-то обновлением БИОСа выпилили
Morisson
1- для включения med_power_with_dipm получается ничего делать не нужно?
Не нужно - стоит по умолчанию
Точнее, значение параметра /sys/module/ahci/parameters/mobile_lpm_policy=-1 … а значение=-1 означает. что значение данного параметра установлено по дефолту, а по дефолту стоит CONFIG_SATA_MOBILE_LPM_POLICY=3.
Для проверки можно загрузиться с параметром ahci.mobile_lpm-policy=3 и получим
cat /sys/module/ahci/parameters/mobile_lpm_policy
3
cat /sys/class/scsi_host/host*/link_power_management_policy
med_power_with_dipm

PS 1 - при ahci.mobile_lpm-policy=0 (и =1) будем иметь link_power_management_policy=max_performance
при ahci.mobile_lpm-policy=2 будем иметь link_power_management_policy=medium_power
при ahci.mobile_lpm-policy=3 будем иметь link_power_management_policy=med_power_with_dipm
при ahci.mobile_lpm-policy=4 будем иметь link_power_management_policy=min_power_with_partial

Но не все так просто с этим энергосбережением - вкратце
при =4 - возможны проблемы с повреждением диска SSD
при =3 - на некоторых ноутбуках наблюдается freeze при изменении яркости
при =0 - точно не помню, но некоторые ноутбуки с определенной firmware тоже имеют проблемы

И как резюме - в Fedora обсуждается установка по дефолту значения ahci.mobile_lpm_polic=1

EDIT 1 -
Morisson
2- чем чревато ahci 0000:00:1f.2: port does not support device sleep
Насколько понимаю ничем, кроме возможных проблем, описанных выше, но если все нормально, то и забей ... но лучше пробуй =1
Ошибки не исчезают с опытом - они просто умнеют
Короче, потестил.. Пофиг. При любом раскладе
ahci 0000:00:1f.2: port does not support device sleep
Что-то я сделал, и на одну перезагрузку оно пропало..
А теперь опять..
Никакие параметры не влияют..
Любой уровень энергосбережения вплоть до max_power вызывает это сообщение.
Попереключал, попереключал..
[10282.688123] ahci 0000:00:1f.2: port does not support device sleep
[10293.881752] ahci 0000:00:1f.2: port does not support device sleep
[10305.766856] ata1.00: exception Emask 0x10 SAct 0x80000000 SErr 0x50000 action 0xe frozen
[10305.766858] ata1.00: irq_stat 0x00400000, PHY RDY changed
[10305.766859] ata1: SError: { PHYRdyChg CommWake }
[10305.766861] ata1.00: failed command: WRITE FPDMA QUEUED
[10305.766865] ata1.00: cmd 61/18:f8:80:bd:4d/00:00:05:00:00/40 tag 31 ncq dma 12288 out
                        res 50/00:03:00:00:00/00:00:00:00:00/a0 Emask 0x10 (ATA bus error)
[10305.766866] ata1.00: status: { DRDY }
[10305.766868] ata1: hard resetting link
[10306.506853] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[10306.518101] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[10306.518586] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[10306.518773] ata1.00: configured for UDMA/133
[10306.529001] ahci 0000:00:1f.2: port does not support device sleep
Morisson
[10305.766856] ata1.00: exception Emask 0x10 SAct 0x80000000 SErr 0x50000 action 0xe frozen
[10305.766858] ata1.00: irq_stat 0x00400000, PHY RDY changed
[10305.766859] ata1: SError: { PHYRdyChg CommWake }
а это вас не смущает, может у вас питание плохо подключено к диску или плохо ему стало?
Пробуйте кабель sata поменять, если это ПК
svicer
а это вас не смущает, может у вас питание плохо подключено к диску или плохо ему стало?
Это при переключении режимов "наживую" через
tee /sys/class/scsi_host/host3/link_power_management_policy <<< max_performance
tee /sys/class/scsi_host/host3/link_power_management_policy <<< med_power_with_dipm
Вообще таких ошибок не появляется. Только сообщение о неподдерживаемом сне.
Типа как бы диск переподключается..
Штатная прога OCZ SSD Utility показывает, что все с диском хорошо..
Разъем проверял.
У меня ноут, но с коротеньким кабельком SATA.
Morisson
SErr 0x50000 action 0xe frozen
У меня подобного типа сообщения если перегревается северный мост. Не допускаю, т.к. чревато ошибками ввода/вывода HDD.
 
Зарегистрироваться или войдите чтобы оставить сообщение.