You are not logged in.

#1 2020-11-23 01:26:55

MountainX
Member
Registered: 2016-02-08
Posts: 371

Nvidia discrete GPU: high power consumption @ idle drains battery

In some laptops like mine, this problem exists: Extremely_high_battery_usage_because_of_dedicated_GPU - ArchWiki

The wiki steps to resolve that (link above) look good (and are very clear), but as I was reading them, I wondered if this much simpler approach will work instead. Here's what I'm in the process of trying:

1. install nvidia-xrun
2. add the nvidia-xrun-pm.service (which it seems really should be included in the AUR package but isn't)
3. enable the nvidia-xrun-pm.service

Is there any reason why that can't accomplish the same result as all the steps written in the Wiki (link above)?

In more detail, here is what I did so far:

pacman -S nvidia-xrun

cat /etc/systemd/system/nvidia-xrun-pm.service
  [Unit]
  Description="Remove Nvidia GPU from kernel devices list and enable PM"

  [Service]
  Type=oneshot
  Environment="TURN_OFF_GPU_ONLY=1"
  ExecStart=/usr/bin/nvidia-xrun

  [Install]
  WantedBy=multi-user.target

systemctl enable nvidia-xrun-pm.service

I built the AUR package myself which is why I installed it with "pacman -S". Also, I just ran a full system update so don't be concerned about the lack of "yu" args.

Offline

#2 2020-11-23 02:08:58

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,231

Re: Nvidia discrete GPU: high power consumption @ idle drains battery

Should work, yes. Just try it and check your overall consumption with powertop.

Offline

#3 2020-11-23 02:14:42

MountainX
Member
Registered: 2016-02-08
Posts: 371

Re: Nvidia discrete GPU: high power consumption @ idle drains battery

V1del wrote:

Should work, yes. Just try it and check your overall consumption with powertop.

OK, I have to investigate a bit deeper:

# systemctl status nvidia-xrun-pm.service
● nvidia-xrun-pm.service - "Remove Nvidia GPU from kernel devices list and enable PM"
     Loaded: loaded (/etc/systemd/system/nvidia-xrun-pm.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Sun 2020-11-22 20:49:26 EST; 20min ago
    Process: 722 ExecStart=/usr/bin/nvidia-xrun (code=exited, status=1/FAILURE)
   Main PID: 722 (code=exited, status=1/FAILURE)

Nov 22 20:49:26 laghima systemd[1]: Starting "Remove Nvidia GPU from kernel devices list and enable PM"...
Nov 22 20:49:26 laghima nvidia-xrun[722]: This script must not be run as root
Nov 22 20:49:26 laghima systemd[1]: nvidia-xrun-pm.service: Main process exited, code=exited, status=1/FAILURE
Nov 22 20:49:26 laghima systemd[1]: nvidia-xrun-pm.service: Failed with result 'exit-code'.
Nov 22 20:49:26 laghima systemd[1]: Failed to start "Remove Nvidia GPU from kernel devices list and enable PM".

From the github page Witko/nvidia-xrun: Utility to run separate X with discrete nvidia graphics with full performance I saw:

/etc/systemd/system/nvidia-xrun-pm.service systemd service

But apparently that won't work because of the above error "This script must not be run as root".

I will probably just go with the original steps at the Arch Wiki then.

Last edited by MountainX (2020-11-23 02:15:41)

Offline

#4 2020-11-23 03:11:29

MountainX
Member
Registered: 2016-02-08
Posts: 371

Re: Nvidia discrete GPU: high power consumption @ idle drains battery

Now I completed all the steps at the Wiki page (url in OP). I have this content in bbswitch.conf.

# cat /etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0 unload_state=1

I have enabled all the settings to disable the nvidia GPU at boot and I rebooted. The wiki says, "Check the power status of the GPU by running cat /proc/acpi/bbswitch."

# cat /proc/acpi/bbswitch
0000:3c:00.0 ON

Does this output mean the nvidia GPU is "ON"?

The output of that remains "ON" even after manually running:

tee /proc/acpi/bbswitch <<<OFF

I have not worked with bumblebee in the past. Never had a laptop with a 2nd GPU before.

Last edited by MountainX (2020-11-23 03:12:19)

Offline

#5 2020-11-23 07:59:46

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,231

Re: Nvidia discrete GPU: high power consumption @ idle drains battery

What's in your dmesg? there should be messages if bbswitch was successful in disabling the card

FWIW depending on how new the system is you might generally prefer foregoing all of this, installing the nvidia driver and enabling power saving as it's included in it: https://download.nvidia.com/XFree86/Lin … ement.html

Last edited by V1del (2020-11-23 08:11:38)

Offline

#6 2020-11-23 17:25:11

gnox
Member
Registered: 2013-05-18
Posts: 90

Re: Nvidia discrete GPU: high power consumption @ idle drains battery

In my case I removed bbswitch, and just blacklisted the nvidia modules
/etc/modprobed.d/blacklist.conf

blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_uvm
blacklist nvidia_modeset

And created a service to put in auto the pci id

echo auto > /sys/bus/pci/devices/0000:01:00.0/power/control

That should put the nvidia card in suspended mode :

$cat /sys/bus/pci/devices/0000:01:*/power/runtime_status
suspended

The battery goes from ~3hrs to ~7hrs, and the temperature of that side of the laptop goes down .

The link that videl provides is useful when you are using the nvidia with prime render offload or reverse prime, and the nvidia modules are being used but still consuming energy depending of the card model from 1w (2xxx card models) to ~6-7w (1xxx card models).

The problem is that in my laptop I cannot wakeup again the card showing some pcihp error of card not found I have to reboot, but in my case that I use the nvidia card once a week to play or anything related to nvidia (ML) just commenting the blacklisted lines and rebooting is enough for me.

Offline

Board footer

Powered by FluxBB