You are not logged in.

#1 2021-09-03 16:25:48

plutonemhikari
Member
Registered: 2021-09-03
Posts: 2

Discrete graphics cannot be truned off under optimus hybrid mode

My laptop uses both Intel CPU and NVIDIA graphics card. My discrete graphics card is NVIDIA GeForce MX150. NVIDIA closed source drivers, including nvidia, nvidia-settings and lib32-nvidia-utils have been installed. I installed optimus-manager and bbswitch, and set the switching method of optimus to bbswitch.
However, nvidia card hadn't been disabled automatically as expected under hybrid mode, and there had been always an xorg process in the nvidia graphics card since boot. If I kill that process, my desktop environment will restart, and then there will still be an xorg process in the nvidia graphics card just like before.

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01    Driver Version: 470.63.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   37C    P8    N/A /  N/A |      4MiB /  2002MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A       530      G   /usr/lib/Xorg                       4MiB |
+-----------------------------------------------------------------------------+

It doesn't seem to have any error messages about bbswitch, bbswitch either automatically enables discrete graphics again after turning off the solo, or doesn't even try to turn it off.

[    3.403475] bbswitch: loading out-of-tree module taints kernel.
[    3.410217] bbswitch: module verification failed: signature and/or required key missing - tainting kernel
[    3.410408] bbswitch: version 0.8
[    3.410414] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0
[    3.410420] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.RP01.PXSX
[    3.410589] bbswitch: detected an Optimus _DSM function
[    3.410672] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is on

The bbswitch module has been loaded:

hhh@myarch:~$ lsmod | grep bbswitch
bbswitch               20480  0

If I try to turn off nvidia card by modifying /proc/acpi/bbswitch, dmesg will report following message:

[  207.578707] bbswitch: device 0000:01:00.0 is in use by driver 'nvidia', refusing OFF

If any other error messages are needed, please tell me how to get, I will post them.

Offline

#2 2021-09-03 16:58:00

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

Re: Discrete graphics cannot be truned off under optimus hybrid mode

All of this is completely normal for a PRIME offloading setup. If you don't want that you'd need to setup a configuration that doesn't load the nvidia driver, which is easiest done with bumblebee in addition to bbswitch.

Or a  relevant blacklist file and configuring bbswitch to disable the power: https://wiki.archlinux.org/title/Hybrid … screte_GPU

That said as far as the PRIME offloading goes, the card is as disabled as can be, do you notice a negative power draw if you check with powertop?

Offline

#3 2021-09-04 04:37:24

plutonemhikari
Member
Registered: 2021-09-03
Posts: 2

Re: Discrete graphics cannot be truned off under optimus hybrid mode

V1del wrote:

All of this is completely normal for a PRIME offloading setup. If you don't want that you'd need to setup a configuration that doesn't load the nvidia driver, which is easiest done with bumblebee in addition to bbswitch.

Or a  relevant blacklist file and configuring bbswitch to disable the power: https://wiki.archlinux.org/title/Hybrid … screte_GPU

That said as far as the PRIME offloading goes, the card is as disabled as can be, do you notice a negative power draw if you check with powertop?

I have set bbswitch's option to load_state=0. According to dmesg, nvidia does turn it off when booting, but then it automatically enables it. Is this normal?

[    3.706659] bbswitch: loading out-of-tree module taints kernel.
[    3.706727] bbswitch: module verification failed: signature and/or required key missing - tainting kernel
[    3.706954] bbswitch: version 0.8
[    3.706959] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0
[    3.706965] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.RP01.PXSX
[    3.707105] bbswitch: detected an Optimus _DSM function
[    3.707183] bbswitch: disabling discrete graphics
[    3.751081] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is off
[    3.751799] bbswitch: enabling discrete graphics

Offline

#4 2021-09-04 07:36:53

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,344

Re: Discrete graphics cannot be truned off under optimus hybrid mode

under optimus hybrid mode

That means both GUs are at your disposal, that means X11 accesses the GPU and that means its drivers must be loaded and that means the GPU cannot be fully cut off power.
To avoid that you either need to switch between IGP and GPU (use either exclusively) or use bumblebee.
If you've an external output wired to the GPU, that's not an option either because in order to feed the external output, the GPU must be invoked.

Offline

Board footer

Powered by FluxBB