Extra battery drain in sleep mode

First and foremost; a huge thanks to @malcolmlewis for assisting me in debugging the issue regarding the extra battery drain during sleep.

This thread holds a lot of great debugging options, but for anyone reading this in the future I’ll write down the concluding solutions.

I believe I have reduced the battery drain during sleep to as little as possible, being 12% in 15 hours (less than 1% per hour).

  • I have not modified /etc/default/grub
  • I have modified /etc/modprobe.d/50-nvidia.conf with the following content:
# Disable nouveau
blacklist nouveau
options nouveau modeset=0

# Power Management
options nvidia NVreg_DynamicPowerManagement=0x03
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_EnableS0ixPowerManagement=1

# Enable the PAT feature
options nvidia NVreg_UsePageAttributeTable=1
  • After creating or modifying above file, I’ve regenerated the initramfs using sudo dracut -f --regenerate-all
  • Configure nvidia to use the offload functionality:
prime-select boot offload
  • Enable all the required nvidia services:
systemctl enable nvidia-hibernate.service nvidia-resume.service nvidia-suspend.service
  • After above steps, reboot your machine
  • However, the biggest improvement, seems to have come from moving away from an encrypted /boot partition. My partition layout now is as follows:
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
nvme0n1     259:0    0 953.9G  0 disk  
├─nvme0n1p1 259:1    0   512M  0 part  /boot/efi
├─nvme0n1p2 259:2    0     4G  0 part  /boot
├─nvme0n1p3 259:3    0   934G  0 part  
│ └─cr_root 254:0    0   934G  0 crypt /var
│                                      /usr/local
│                                      /srv
│                                      /root
│                                      /opt
│                                      /home
│                                      /.snapshots
│                                      /
└─nvme0n1p4 259:4    0  15.4G  0 part  
  └─cr_swap 254:1    0  15.4G  0 crypt [SWAP]

I cannot explain why or how this would have any impact on the battery drain. But I did notice during decryption of the LUKS partitions inside GRUB, my laptop would get extremely hot. Since no hardware acceleration is available in just GRUB, I decided to use a separate and unencrypted /boot partition instead. In doing so, the decryption passphrase is requested in initramfs, which has more hardware acceleration capabilities and doesn’t make my laptop run hot. If anyone (in the future) ever can explain why this drastically improved my battery life in sleep, I’m all ears.

I’ve got the following nvidia packages installed:

$ rpm -qa | grep -E "(nvidia|prime)"
kernel-firmware-nvidia-gspx-G06-550.90.07-1.1.x86_64
libnvidia-egl-wayland1-1.1.13-1.3.x86_64
nvidia-compute-utils-G06-550.90.07-23.1.x86_64
plasma5-applet-suse-prime-1.1-3.7.noarch
suse-prime-0.8.15-1.3.noarch
kernel-firmware-nvidia-20240618-1.1.noarch
nvidia-video-G06-32bit-550.90.07-23.1.x86_64
nvidia-compute-G06-32bit-550.90.07-23.1.x86_64
nvidia-driver-G06-kmp-default-550.90.07_k6.9.3_1-23.1.x86_64
nvidia-compute-G06-550.90.07-23.1.x86_64
nvidia-video-G06-550.90.07-23.1.x86_64
nvidia-gl-G06-550.90.07-23.1.x86_64
nvidia-gl-G06-32bit-550.90.07-23.1.x86_64
nvidia-utils-G06-550.90.07-23.1.x86_64

Some interesting reading material, regarding kernel and nvidia power settings:

2 Likes