Estou procurando orientação sobre as opções de linha de comando do kernel e / ou configurações de BIOS para um sistema Supermicro X10DAL-i (com CPUs Xeon duais) para uma suspensão adequada para RAM nos kernels recentes do Linux. Atualmente estou executando este kernel:
Linux 4.17.2-1-ARCH #1 SMP PREEMPT Sat Jun 16 11:08:59 UTC 2018 x86_64 GNU/Linux
Nos meus outros computadores, o suspend-to-RAM "simplesmente funciona" com o Linux. No entanto, neste sistema, não voltaria após ser suspenso durante a noite. Meu palpite é que o sistema entrou em um estado de suspensão que é "muito profundo". Eu não estou usando hibernar ou suspender híbrido. Eu só quero suspender para a RAM.
Em um teste anterior de suspensão, o sistema foi retomado após alguns minutos de suspensão. Tudo o que tive que fazer foi pressionar qualquer tecla do teclado. Mas depois de ser suspenso durante a noite, não foi responsivo. Eu brevemente apertei o botão de energia. Em resposta a isso, os fãs ligaram e achei que o sistema poderia ser retomado, mas isso não aconteceu. Não consegui acessá-lo via console ou SSH.
A única diferença entre este sistema e meus outros sistemas que irão suspender e retomar é a placa-mãe (e ela tem mais RAM). Em todos os meus sistemas, estou usando systemd, systemd-boot e UEFI. Eu estou executando o KDE. Eu tenho uma GPU nvidia com o driver proprietário. Meu outro sistema com o mesmo GPU e driver suspende e recomeça corretamente.
Testei a suspensão neste sistema usando a opção de menu do KDE (suspender) e com systemd suspend
. Como mencionei, esses testes curtos pareceram funcionar. Mas não seria retomada de uma suspensão durante a noite.
O BIOS exibe a marca American Megatrends Inc. Eu vejo opções para alterar o estado da CPU P, o estado do HWPM da CPU e o estado da CPU C junto com outras opções. Não estou familiarizado com nenhuma dessas opções e, atualmente, elas estão todas configuradas para valores padrão (isto é, a configuração "Power Technology" substituída é definida como "Energy Efficient", que aparentemente gerencia todas essas configurações automaticamente.)
Minha pergunta é quais configurações devo tentar suspender para ram trabalhando nas versões recentes do Linux?
Aqui estão as entradas finais do log, quando o sistema entrou no modo suspender para o modo ram:
Jun 26 23:20:26 X10DALi systemd[1]: Starting system activity accounting tool...
Jun 26 23:20:26 X10DALi systemd[1]: Started system activity accounting tool.
Jun 26 23:30:26 X10DALi systemd[1]: Starting system activity accounting tool...
Jun 26 23:30:26 X10DALi systemd[1]: Started system activity accounting tool.
Jun 26 23:32:16 X10DALi NetworkManager[997]: <info> [1530070336.6408] manager: sleep: sleep requested (sleeping: no enabled: yes)
Jun 26 23:32:16 X10DALi NetworkManager[997]: <info> [1530070336.6413] manager: NetworkManager state is now ASLEEP
Jun 26 23:32:17 X10DALi systemd[1]: Reached target Sleep.
Jun 26 23:32:17 X10DALi systemd[1]: Starting Suspend...
Jun 26 23:32:17 X10DALi systemd-sleep[10662]: Suspending system...
Jun 26 23:32:17 X10DALi kernel: PM: suspend entry (deep)
Estou curioso sobre a linha com "systemd-sleep" porque os únicos 4 estados de economia de energia que eu estou familiarizado são:
- suspender (que é o que eu usei)
- hibernar
- sono híbrido
- suspend-then-hibernate
Não há entradas no diário para esta inicialização após o acima. Eu tive que reiniciar o sistema (reset de energia) para que ele "acordasse".
Isso pode ser relevante:
Eu tenho o pacote [upower][1]
installed (Versão: 0.99.7-1). (Ele foi instalado como uma dependência do kdelibs.) Eu não alterei nenhuma configuração em /etc/UPower/UPower.conf e, como esse é um sistema de desktop, não tenho certeza se isso é relevante.
cat / sys / power / disk
[platform] shutdown reboot suspend test_resume
cat / sys / power / state
freeze mem disk
cat / proc / acpi / wakeup
Device S-state Status Sysfs node
IP2P S3 *disabled
EHC1 S4 *enabled pci:0000:00:1d.0
EHC2 S4 *enabled pci:0000:00:1a.0
RP01 S4 *disabled pci:0000:00:1c.0
PXSX S4 *disabled
RP02 S4 *disabled
PXSX S4 *disabled
RP03 S4 *disabled pci:0000:00:1c.2
PXSX S4 *enabled pci:0000:04:00.0
RP04 S4 *disabled pci:0000:00:1c.3
PXSX S4 *enabled pci:0000:05:00.0
RP05 S4 *disabled
PXSX S4 *disabled
RP06 S4 *disabled
PXSX S4 *disabled
RP07 S4 *disabled
PXSX S4 *disabled
RP08 S4 *disabled
PXSX S4 *disabled
BR1A S4 *disabled pci:0000:00:01.0
PXSX S4 *disabled
BR1B S4 *disabled
PXSX S4 *disabled
BR2A S4 *disabled
PXSX S4 *disabled
BR2B S4 *disabled
PXSX S4 *disabled
BR2C S4 *disabled
PXSX S4 *disabled
BR2D S4 *disabled
PXSX S4 *disabled
BR3A S4 *disabled pci:0000:00:03.0
PXSX S4 *disabled
BR3B S4 *disabled
PXSX S4 *disabled
BR3C S4 *disabled
PXSX S4 *disabled
BR3D S4 *disabled
PXSX S4 *disabled
XHCI S4 *enabled pci:0000:00:14.0
QRP0 S4 *disabled
PXSX S4 *disabled
QR1A S4 *disabled
PXSX S4 *disabled
QR1B S4 *disabled
PXSX S4 *disabled
QR2A S4 *disabled pci:0000:80:02.0
PXSX S4 *disabled
QR2B S4 *disabled
PXSX S4 *disabled
QR2C S4 *disabled
PXSX S4 *disabled
QR2D S4 *disabled pci:0000:80:02.3
PXSX S4 *disabled
QR3A S4 *disabled
PXSX S4 *disabled
QR3B S4 *disabled
PXSX S4 *disabled
QR3C S4 *disabled
PXSX S4 *disabled
QR3D S4 *disabled
PXSX S4 *disabled
RRP0 S4 *disabled
PXSX S4 *disabled
RR1A S4 *disabled
PXSX S4 *disabled
RR1B S4 *disabled
PXSX S4 *disabled
RR2A S4 *disabled
PXSX S4 *disabled
RR2B S4 *disabled
PXSX S4 *disabled
RR2C S4 *disabled
PXSX S4 *disabled
RR2D S4 *disabled
PXSX S4 *disabled
RR3A S4 *disabled
PXSX S4 *disabled
RR3B S4 *disabled
PXSX S4 *disabled
RR3C S4 *disabled
PXSX S4 *disabled
RR3D S4 *disabled
PXSX S4 *disabled
SRP0 S4 *disabled
PXSX S4 *disabled
SR1A S4 *disabled
PXSX S4 *disabled
SR1B S4 *disabled
PXSX S4 *disabled
SR2A S4 *disabled
PXSX S4 *disabled
SR2B S4 *disabled
PXSX S4 *disabled
SR2C S4 *disabled
PXSX S4 *disabled
SR2D S4 *disabled
PXSX S4 *disabled
SR3A S4 *disabled
PXSX S4 *disabled
SR3B S4 *disabled
PXSX S4 *disabled
SR3C S4 *disabled
PXSX S4 *disabled
SR3D S4 *disabled
PXSX S4 *disabled
Eu não tenho um arquivo /etc/systemd/sleep.conf
(ou qualquer arquivo sleep.conf.d).
UPDATE: estou adicionando mais informações:
dmesg | grep idle
[ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370452778343963 ns
[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
[ 0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[ 0.019999] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x1fa2b80c9f8, max_idle_ns: 440795260495 ns
[ 0.064738] process: using mwait in idle threads
[ 1.178343] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
[ 1.180025] cpuidle: using governor ladder
[ 1.180037] cpuidle: using governor menu
[ 17.698747] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[ 18.097294] intel_idle: MWAIT substates: 0x2120
[ 18.097295] intel_idle: v0.4.1 model 0x4F
[ 18.099136] intel_idle: lapic_timer_reliable_states 0xffffffff
[ 19.090095] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1fa3704c1a9, max_idle_ns: 440795296692 ns
CPU: 2x CPU Intel (R) Xeon (R) E5-2630 v4 @ 2.20GHz
A Supermicro sugeriu essas configurações da BIOS:
Advanced Power Management Configuration -> Power Technology Select Custom to customize system power settings
CPU C State Control: choose the options are C0/1 state, C2 state, C6 (non-Retention) state, and C6 (Retention) state.