Troubleshooting tips for Suspend-to-RAM

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
2
down vote

favorite












I am seeking advice regarding proper kernel command line options and/or BIOS settings for a Supermicro X10DAL-i system (with dual Xeon CPUs) for proper suspend-to-RAM under recent Linux kernels. I am currently running this kernel:



Linux 4.17.2-1-ARCH #1 SMP PREEMPT Sat Jun 16 11:08:59 UTC 2018 x86_64 GNU/Linux


On my other computers, suspend-to-RAM "just works" with Linux. However, on this system, it would not resume after being suspended overnight. My guess is that the system entered a sleep state that is "too deep". I am not using hibernate or suspend-hybrid. I only want to suspend to RAM.



In an earlier test of suspend, the system did resume after a few minutes of being suspended. All I had to do was hit any key on the keyboard. But after being suspended overnight, it was not responsive. I briefly pushed the power button. In response to that, the fans turned on and I thought the system might resume, but it did not. I was not able to access it via console or SSH.



The only difference between this system and my other systems which will suspend and resume is the motherboard (and it has more RAM). On all my systems I am using systemd, systemd-boot and UEFI. I am running KDE. I have an nvidia GPU with the proprietary driver. My other system with the same GPU and driver suspends and resumes properly.



I tested suspend on this system using both KDE's menu option (suspend) and with systemd suspend. As I mentioned, those short tests appeared to work. But it would not resume from an overnight suspend.



The BIOS displays the brand American Megatrends Inc. I see options to change CPU P State, CPU HWPM State and CPU C State along with other options. I am not familiar with any of these options and currently they are all set to default values (i.e., the overriding "Power Technology" setting is set to "Energy Efficient" which apparently manages all these settings automatically.)



My question is which settings should I try to get suspend to ram working in recent Linux versions?



Here are the final log entries as the system went into suspend to ram mode:



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)


I am curious about the line with "systemd-sleep" because the only 4 systemd power saving states I'm familiar with are:



  • suspend (which is what I used)

  • hibernate

  • hybrid-sleep

  • suspend-then-hibernate

There are no journal entries for this boot after the above. I had to reboot the system (hard power reset) to get it to "wake up".



This might be relevant:



I do have the package [upower][1] installed (Version: 0.99.7-1). (It was installed as a dependency of kdelibs.) I have not changed any settings in /etc/UPower/UPower.conf and because this is a desktop system, I'm not sure upower is relevant.



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


I do not have a /etc/systemd/sleep.conf file (or any sleep.conf.d files).



UPDATE: I am adding more info:



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 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz



Supermicro suggested these BIOS settings:



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.






share|improve this question





















  • First you may want to try turning off deep sleep states in the BIOS setup and see if any of them help. A call, ticket or email to Supermicro may help as well.
    – ajeh
    Jun 27 at 19:43











  • I did get a reply from Supermicro. I updated my question. At the end of the day I will boot into the BIOS, change the settings as suggested and try another overnight suspend.
    – MountainX
    Jun 27 at 20:22














up vote
2
down vote

favorite












I am seeking advice regarding proper kernel command line options and/or BIOS settings for a Supermicro X10DAL-i system (with dual Xeon CPUs) for proper suspend-to-RAM under recent Linux kernels. I am currently running this kernel:



Linux 4.17.2-1-ARCH #1 SMP PREEMPT Sat Jun 16 11:08:59 UTC 2018 x86_64 GNU/Linux


On my other computers, suspend-to-RAM "just works" with Linux. However, on this system, it would not resume after being suspended overnight. My guess is that the system entered a sleep state that is "too deep". I am not using hibernate or suspend-hybrid. I only want to suspend to RAM.



In an earlier test of suspend, the system did resume after a few minutes of being suspended. All I had to do was hit any key on the keyboard. But after being suspended overnight, it was not responsive. I briefly pushed the power button. In response to that, the fans turned on and I thought the system might resume, but it did not. I was not able to access it via console or SSH.



The only difference between this system and my other systems which will suspend and resume is the motherboard (and it has more RAM). On all my systems I am using systemd, systemd-boot and UEFI. I am running KDE. I have an nvidia GPU with the proprietary driver. My other system with the same GPU and driver suspends and resumes properly.



I tested suspend on this system using both KDE's menu option (suspend) and with systemd suspend. As I mentioned, those short tests appeared to work. But it would not resume from an overnight suspend.



The BIOS displays the brand American Megatrends Inc. I see options to change CPU P State, CPU HWPM State and CPU C State along with other options. I am not familiar with any of these options and currently they are all set to default values (i.e., the overriding "Power Technology" setting is set to "Energy Efficient" which apparently manages all these settings automatically.)



My question is which settings should I try to get suspend to ram working in recent Linux versions?



Here are the final log entries as the system went into suspend to ram mode:



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)


I am curious about the line with "systemd-sleep" because the only 4 systemd power saving states I'm familiar with are:



  • suspend (which is what I used)

  • hibernate

  • hybrid-sleep

  • suspend-then-hibernate

There are no journal entries for this boot after the above. I had to reboot the system (hard power reset) to get it to "wake up".



This might be relevant:



I do have the package [upower][1] installed (Version: 0.99.7-1). (It was installed as a dependency of kdelibs.) I have not changed any settings in /etc/UPower/UPower.conf and because this is a desktop system, I'm not sure upower is relevant.



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


I do not have a /etc/systemd/sleep.conf file (or any sleep.conf.d files).



UPDATE: I am adding more info:



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 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz



Supermicro suggested these BIOS settings:



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.






share|improve this question





















  • First you may want to try turning off deep sleep states in the BIOS setup and see if any of them help. A call, ticket or email to Supermicro may help as well.
    – ajeh
    Jun 27 at 19:43











  • I did get a reply from Supermicro. I updated my question. At the end of the day I will boot into the BIOS, change the settings as suggested and try another overnight suspend.
    – MountainX
    Jun 27 at 20:22












up vote
2
down vote

favorite









up vote
2
down vote

favorite











I am seeking advice regarding proper kernel command line options and/or BIOS settings for a Supermicro X10DAL-i system (with dual Xeon CPUs) for proper suspend-to-RAM under recent Linux kernels. I am currently running this kernel:



Linux 4.17.2-1-ARCH #1 SMP PREEMPT Sat Jun 16 11:08:59 UTC 2018 x86_64 GNU/Linux


On my other computers, suspend-to-RAM "just works" with Linux. However, on this system, it would not resume after being suspended overnight. My guess is that the system entered a sleep state that is "too deep". I am not using hibernate or suspend-hybrid. I only want to suspend to RAM.



In an earlier test of suspend, the system did resume after a few minutes of being suspended. All I had to do was hit any key on the keyboard. But after being suspended overnight, it was not responsive. I briefly pushed the power button. In response to that, the fans turned on and I thought the system might resume, but it did not. I was not able to access it via console or SSH.



The only difference between this system and my other systems which will suspend and resume is the motherboard (and it has more RAM). On all my systems I am using systemd, systemd-boot and UEFI. I am running KDE. I have an nvidia GPU with the proprietary driver. My other system with the same GPU and driver suspends and resumes properly.



I tested suspend on this system using both KDE's menu option (suspend) and with systemd suspend. As I mentioned, those short tests appeared to work. But it would not resume from an overnight suspend.



The BIOS displays the brand American Megatrends Inc. I see options to change CPU P State, CPU HWPM State and CPU C State along with other options. I am not familiar with any of these options and currently they are all set to default values (i.e., the overriding "Power Technology" setting is set to "Energy Efficient" which apparently manages all these settings automatically.)



My question is which settings should I try to get suspend to ram working in recent Linux versions?



Here are the final log entries as the system went into suspend to ram mode:



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)


I am curious about the line with "systemd-sleep" because the only 4 systemd power saving states I'm familiar with are:



  • suspend (which is what I used)

  • hibernate

  • hybrid-sleep

  • suspend-then-hibernate

There are no journal entries for this boot after the above. I had to reboot the system (hard power reset) to get it to "wake up".



This might be relevant:



I do have the package [upower][1] installed (Version: 0.99.7-1). (It was installed as a dependency of kdelibs.) I have not changed any settings in /etc/UPower/UPower.conf and because this is a desktop system, I'm not sure upower is relevant.



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


I do not have a /etc/systemd/sleep.conf file (or any sleep.conf.d files).



UPDATE: I am adding more info:



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 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz



Supermicro suggested these BIOS settings:



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.






share|improve this question













I am seeking advice regarding proper kernel command line options and/or BIOS settings for a Supermicro X10DAL-i system (with dual Xeon CPUs) for proper suspend-to-RAM under recent Linux kernels. I am currently running this kernel:



Linux 4.17.2-1-ARCH #1 SMP PREEMPT Sat Jun 16 11:08:59 UTC 2018 x86_64 GNU/Linux


On my other computers, suspend-to-RAM "just works" with Linux. However, on this system, it would not resume after being suspended overnight. My guess is that the system entered a sleep state that is "too deep". I am not using hibernate or suspend-hybrid. I only want to suspend to RAM.



In an earlier test of suspend, the system did resume after a few minutes of being suspended. All I had to do was hit any key on the keyboard. But after being suspended overnight, it was not responsive. I briefly pushed the power button. In response to that, the fans turned on and I thought the system might resume, but it did not. I was not able to access it via console or SSH.



The only difference between this system and my other systems which will suspend and resume is the motherboard (and it has more RAM). On all my systems I am using systemd, systemd-boot and UEFI. I am running KDE. I have an nvidia GPU with the proprietary driver. My other system with the same GPU and driver suspends and resumes properly.



I tested suspend on this system using both KDE's menu option (suspend) and with systemd suspend. As I mentioned, those short tests appeared to work. But it would not resume from an overnight suspend.



The BIOS displays the brand American Megatrends Inc. I see options to change CPU P State, CPU HWPM State and CPU C State along with other options. I am not familiar with any of these options and currently they are all set to default values (i.e., the overriding "Power Technology" setting is set to "Energy Efficient" which apparently manages all these settings automatically.)



My question is which settings should I try to get suspend to ram working in recent Linux versions?



Here are the final log entries as the system went into suspend to ram mode:



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)


I am curious about the line with "systemd-sleep" because the only 4 systemd power saving states I'm familiar with are:



  • suspend (which is what I used)

  • hibernate

  • hybrid-sleep

  • suspend-then-hibernate

There are no journal entries for this boot after the above. I had to reboot the system (hard power reset) to get it to "wake up".



This might be relevant:



I do have the package [upower][1] installed (Version: 0.99.7-1). (It was installed as a dependency of kdelibs.) I have not changed any settings in /etc/UPower/UPower.conf and because this is a desktop system, I'm not sure upower is relevant.



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


I do not have a /etc/systemd/sleep.conf file (or any sleep.conf.d files).



UPDATE: I am adding more info:



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 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz



Supermicro suggested these BIOS settings:



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.








share|improve this question












share|improve this question




share|improve this question








edited Jun 27 at 20:21
























asked Jun 27 at 17:38









MountainX

4,3922367114




4,3922367114











  • First you may want to try turning off deep sleep states in the BIOS setup and see if any of them help. A call, ticket or email to Supermicro may help as well.
    – ajeh
    Jun 27 at 19:43











  • I did get a reply from Supermicro. I updated my question. At the end of the day I will boot into the BIOS, change the settings as suggested and try another overnight suspend.
    – MountainX
    Jun 27 at 20:22
















  • First you may want to try turning off deep sleep states in the BIOS setup and see if any of them help. A call, ticket or email to Supermicro may help as well.
    – ajeh
    Jun 27 at 19:43











  • I did get a reply from Supermicro. I updated my question. At the end of the day I will boot into the BIOS, change the settings as suggested and try another overnight suspend.
    – MountainX
    Jun 27 at 20:22















First you may want to try turning off deep sleep states in the BIOS setup and see if any of them help. A call, ticket or email to Supermicro may help as well.
– ajeh
Jun 27 at 19:43





First you may want to try turning off deep sleep states in the BIOS setup and see if any of them help. A call, ticket or email to Supermicro may help as well.
– ajeh
Jun 27 at 19:43













I did get a reply from Supermicro. I updated my question. At the end of the day I will boot into the BIOS, change the settings as suggested and try another overnight suspend.
– MountainX
Jun 27 at 20:22




I did get a reply from Supermicro. I updated my question. At the end of the day I will boot into the BIOS, change the settings as suggested and try another overnight suspend.
– MountainX
Jun 27 at 20:22










1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










I had to limit the CPU C-states to the C2 level in order to get my system to resume from suspend-to-ram. That's the general take-away.



Specifically, in regard to the Supermicro X10DAL with Xeon E5-2630 v4 CPU's, make sure you are running Supermicro BIOS 3.0a or later. Boot into the BIOS and go to Advanced > CPU Configuration > Advanced Power Management COnfiguration. Set Power Technology to Custom. Set CPU C State Control to C2.



My system will now suspend and resume using either systemd suspend or via DE suspend commands.






share|improve this answer





















    Your Answer







    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "106"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    convertImagesToLinks: false,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );








     

    draft saved


    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f452282%2ftroubleshooting-tips-for-suspend-to-ram%23new-answer', 'question_page');

    );

    Post as a guest






























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    I had to limit the CPU C-states to the C2 level in order to get my system to resume from suspend-to-ram. That's the general take-away.



    Specifically, in regard to the Supermicro X10DAL with Xeon E5-2630 v4 CPU's, make sure you are running Supermicro BIOS 3.0a or later. Boot into the BIOS and go to Advanced > CPU Configuration > Advanced Power Management COnfiguration. Set Power Technology to Custom. Set CPU C State Control to C2.



    My system will now suspend and resume using either systemd suspend or via DE suspend commands.






    share|improve this answer

























      up vote
      1
      down vote



      accepted










      I had to limit the CPU C-states to the C2 level in order to get my system to resume from suspend-to-ram. That's the general take-away.



      Specifically, in regard to the Supermicro X10DAL with Xeon E5-2630 v4 CPU's, make sure you are running Supermicro BIOS 3.0a or later. Boot into the BIOS and go to Advanced > CPU Configuration > Advanced Power Management COnfiguration. Set Power Technology to Custom. Set CPU C State Control to C2.



      My system will now suspend and resume using either systemd suspend or via DE suspend commands.






      share|improve this answer























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        I had to limit the CPU C-states to the C2 level in order to get my system to resume from suspend-to-ram. That's the general take-away.



        Specifically, in regard to the Supermicro X10DAL with Xeon E5-2630 v4 CPU's, make sure you are running Supermicro BIOS 3.0a or later. Boot into the BIOS and go to Advanced > CPU Configuration > Advanced Power Management COnfiguration. Set Power Technology to Custom. Set CPU C State Control to C2.



        My system will now suspend and resume using either systemd suspend or via DE suspend commands.






        share|improve this answer













        I had to limit the CPU C-states to the C2 level in order to get my system to resume from suspend-to-ram. That's the general take-away.



        Specifically, in regard to the Supermicro X10DAL with Xeon E5-2630 v4 CPU's, make sure you are running Supermicro BIOS 3.0a or later. Boot into the BIOS and go to Advanced > CPU Configuration > Advanced Power Management COnfiguration. Set Power Technology to Custom. Set CPU C State Control to C2.



        My system will now suspend and resume using either systemd suspend or via DE suspend commands.







        share|improve this answer













        share|improve this answer



        share|improve this answer











        answered Jul 2 at 19:34









        MountainX

        4,3922367114




        4,3922367114






















             

            draft saved


            draft discarded


























             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f452282%2ftroubleshooting-tips-for-suspend-to-ram%23new-answer', 'question_page');

            );

            Post as a guest













































































            Popular posts from this blog

            How to check contact read email or not when send email to Individual?

            Displaying single band from multi-band raster using QGIS

            How many registers does an x86_64 CPU actually have?