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

vasek
но если все нормально, то и забей
Так то нормально. Но по сравнению с другим девайсом на райзене этот Dell ест батарейку в suspend. Не сильно много, но ест. ~8% за ночь.
Гибернация и проч. работают эксклюзивно.. Раньше сидел на гибернации, но решил вот копнуть, чего так..
Даже DSDT поправил.. (Что c правленым DSDT, что без него- та же песня с диском)
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 }
[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
Судя по этим ошибкам, предположу следующие возможные причины
- режим энергосбережения приводит к засыпанию диска после некоторого периода бездействия, а при выходе из засыпания могут появляться указанные выше ошибки. То есть, как и писал выше - если они влияют на работу, то лучшу убрать/изменить режим энергосбережения
- ошибки NCQ - можно попробовать отключить NCQ - echo 1 | sudo tee /sys/block/sda/device/queue_depth
- возможно и контакт, но, имхо, маловероятно, так как относительно SError: { PHYRdyChg CommWake } doc пишет
 If any bits in the SATA SError register are set, the SError register contents will be expanded into its component bits, for example: SError: { PHYRdyChg CommWake }
These bits are set by the SATA host interface in response to error conditions on the SATA link. Unless a drive hotplug or unplug operation occurred, it is generally not normal to see any of these bits set. If they are, it usually points strongly toward a hardware problem (often a bad SATA cable or a bad or inadequate power supply). 

PS -
frozen - if present, indicates the port was frozen for EH
PHYRdyChg - PhyRdy signal changed state
CommWake - COMWAKE detected by PHY (PHY woken up)
Опять указывает на засыпание.
Проверил у себя все режимы (0, 1, 2, 3, 4). а после запустил - journalctl | grep 'port does not support device sleep' - пусто.
Найду попозже bug, описанный в Fedora - выложу

EDIT 1- bug1, bug2 ... (если честно, в тонкости не влезал, так что без обид)
Ошибки не исчезают с опытом - они просто умнеют
Morisson
этот Dell ест батарейку в suspend. Не сильно много, но ест. ~8% за ночь.
Уже как то писал, что после прочтения одного совета перестал часто и надолго отправлять ноутбук в suspend.
Как пишут, возможен эффект накопления ошибок .... и количество может перейти в качество. Не верил, пока не поймал такой bug у себя - после 7-10 раз ухода в suspend, наблюдалась задержка на ввод символов с клавиатуры, приходилось программно переключать клавиатуру.

EDIT 1 - В части port does not support device sleep - никогда с таким сообщением вплотную не работал. Насколько понимаю, это говорит о том, что port не поддерживает засыпыние. А так как устройство есть ata, то речь идет о DIPM - режим глубокого сна, если не ошибаюсь, то это состояние S3 (подаётся только минимальное питание). Может поэтому и много кушает в suspend?
Точно не помню, но вроде бы можно загонять в ручную (как не помню). Можно попробовать и другое, при отправке в suspend отключать модуль (хотя не плохо бы найти ручную отправку устройства в suspend).
Помниться еще, что ты игрался с pcie_aspm - может не вернул параметр по дефолту?
Вообщем наскоком не решить … и ничего толкового сказать не могу.

EDIT 2 - можно попробовать при уходе в suspend отключать шину 0000:00:1f.2

И вопрос - в какое время появляется сообщение ahci 0000:00:1f.2: port does not support device sleep - может при уходе в suspend?
Ошибки не исчезают с опытом - они просто умнеют
vasek
Точно не помню, но вроде бы можно загонять в ручную (как не помню).
типа так?
# echo shutdown > /sys/power/disk
?

vasek
в какое время появляется сообщение ahci 0000:00:1f.2: port does not support device sleep - может при уходе в suspend?
При загрузке, при выходе из сна, при переключении режимов энергосбережения?

vasek
можно попробовать при уходе в suspend отключать шину 0000:00:1f.2
Ссылкой или командой в меня не кинешь?)
Morisson
типа так?
# echo shutdown > /sys/power/disk
Нет, не помню - выдумывать не буду (вроде бы используется какая то функция)

Отключение шины - что получится, не знаю и получится ли?
Попробуй написать (как то обсуждали) файлик в usr/lib/systemd/system-sleep/
перед уходом в suspend - echo 1 > /sys/bus/pci/devices/0000:00:1f.2/remove
при выходе из suspend - echo 1 > /sys/bus/pci/rescan

... писал по памяти, мог и ошибиться (в каком то топике уже описывал, погугли)

PS - и сомнения - а можно ли так делать??? - проверить нет времени. Загубить конечно ничего не загубиться, не должно, в крайнем случае, reboot и удалить файлик. ... сомнения гложут ... в части парковки головок ... а не загубится ли диск? ... лучше не спешить - подумать, погуглить. Может кто подскажет.
Ошибки не исчезают с опытом - они просто умнеют
vasek
в части парковки головок … а не загубится ли диск?
ssd. парковка пофиг.
Я так дискретку отключал, уйма ругани в консоли было)
Morisson
ssd. парковка пофиг.
Я так дискретку отключал, уйма ругани в консоли было)
Отпишись потом, если решишься на эксперимент - даже интересно - не понятно - будет ли выполнена запись в journal? - диск то будет отключен немного раньше.
Ошибки не исчезают с опытом - они просто умнеют
vasek
Отпишись потом, если решишься на эксперимент - даже интересно - не понятно - будет ли выполнена запись в journal? - диск то будет отключен немного раньше.
))
Уже. Отключение шины все ломает. Как бы система теряет диск. При выходе на мгновение моргает экран блокировки и черный экран. Перезагрузиться можно через REISUB
#!/bin/sh
case $1/$2 in
  pre/*)
    echo shutdown > /sys/power/disk
    echo 3 > /proc/sys/vm/drop_caches
    sync
    ;;
  post/*)
    ;;
esac
Так попробую. Что там с потреблением будет.
Morisson
Отключение шины все ломает.
Виноват, посоветовал полную чушь. Как говорится утро вечера мудренее. Не подумал, что диск то один и не откуда будет считывать даже команды.
Сейчас провел более мягкий эксперимент - отключил единственный диск на горячую - echo 1 >/sys/block/sda/device/delete ... (конечно приняв меры предосторожности) - HDD отключился нормально, терминал вижу, а вот подключить обратно естественно уже не смог (но я это и ожидал). reboot используя волшебные кнопки.
Так что посоветовал полную ерунду.
Вспомнил, есть такие диски (от чего зависит, не помню). что при уходе ноутбука в suspend питание с диска автоматически не снимается, то есть диск не спит.
На ум приходит пока одно - hdparm - посмотри это - но можно ли что из этого выжать, не знаю.

EDIT
1 - хотя в таких экспериментах и понимаешь больше суть явления...
2 - имхо, вряд ли что то получится изменить, если ничего похожего нет в BIOS
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.