You are not logged in.

#1 2022-05-07 13:24:43

nihil21
Member
Registered: 2021-07-13
Posts: 9

[SOLVED] Suspend-then-hibernate not working with NVIDIA Optimus

My system:
- EndeavourOS Linux x86_64
- XPS 15 9500
- 5.17.5-arch1-1 kernel
- NVIDIA GeForce GTX 1650 Ti Mobile with nvidia-dkms 510.68.02-1 driver

Description of the problem:
I have an Optimus laptop with an NVIDIA Turing card and I have already configured the RTD3 power management following the Arch Wiki. I've also configured the system to preserve video memory after suspend and enabled  nvidia-suspendnvidia-resumenvidia-hibernate and nvidia-persistenced service.
When I put the laptop into either suspend or hibernate state, using either systemctl suspend or systemctl hibernate, everything works as expected. However, if I use systemctl suspend-then-hibernate the system fails to enter in suspend state with the following error message:

mag 07 15:09:00 ikigai systemd[1]: Starting Suspend; Hibernate if not used for a period of time...
mag 07 15:09:00 ikigai systemd-sleep[292811]: Entering sleep state 'suspend'...
mag 07 15:09:07 ikigai systemd-sleep[292811]: Failed to put system to sleep. System resumed again: Input/output error
mag 07 15:09:09 ikigai systemd[1]: systemd-suspend-then-hibernate.service: Main process exited, code=exited, status=1/FAILURE
mag 07 15:09:09 ikigai systemd[1]: systemd-suspend-then-hibernate.service: Failed with result 'exit-code'.
mag 07 15:09:09 ikigai systemd[1]: Failed to start Suspend; Hibernate if not used for a period of time.

My guess is that there is no nvidia-suspend-then-hibernate service. Specifying NVreg_PreserveVideoMemoryAllocations=0 works, but only if the NVIDIA card is not in use: if it is, then the system sometimes goes to sleep and sometimes not, causing unexpected overheat (e.g. when I close the lid and put the laptop is in my bag).

Unfortunately my laptop does not support s3 ("deep standby") but only s2idle ("modern standby"): thus when suspended the system still consumes a lot of power (30% in 10 hours) and for this reason I need to use the suspend-then-hibernate feature.

Am I missing something? Should I report this directly on NVIDIA forums?

Last edited by nihil21 (2022-05-08 17:21:29)

Offline

#2 2022-05-07 18:15:30

JoeyCorleone
Member
Registered: 2022-01-22
Posts: 88

Re: [SOLVED] Suspend-then-hibernate not working with NVIDIA Optimus

You should probably ask over at EndeavourOS.

If you cross-post on other forums (as you obviously did), you should also post a link so everyone can follow the progress.

Offline

#3 2022-05-08 08:45:59

nihil21
Member
Registered: 2021-07-13
Posts: 9

Re: [SOLVED] Suspend-then-hibernate not working with NVIDIA Optimus

My bad, I thought it was ok to post here since EOS is very close to vanilla Arch. I'll write on EndeavourOS forums then, should I close this here?

Offline

#4 2022-05-08 09:30:49

nihil21
Member
Registered: 2021-07-13
Posts: 9

Re: [SOLVED] Suspend-then-hibernate not working with NVIDIA Optimus

In the end I posted it on NVIDIA developer forum and found a workaround, for those that are interested this is the link.

Offline

Board footer

Powered by FluxBB