SRU: PRIME Power Saving mode draws too much power

Bug #1778011 reported by Alberto Milone on 2018-06-21
202
This bug affects 37 people
Affects Status Importance Assigned to Milestone
HWE Next
Undecided
Unassigned
gdm3 (Ubuntu)
High
Alberto Milone
Bionic
High
Alberto Milone
nvidia-graphics-drivers-390 (Ubuntu)
High
Alberto Milone
Bionic
High
Alberto Milone
nvidia-prime (Ubuntu)
High
Alberto Milone
Bionic
High
Alberto Milone
nvidia-settings (Ubuntu)
High
Alberto Milone
Bionic
High
Alberto Milone
sddm (Ubuntu)
Undecided
Unassigned
Bionic
Undecided
Unassigned
ubuntu-drivers-common (Ubuntu)
High
Alberto Milone
Bionic
High
Alberto Milone

Bug Description

SRU Request:

[Impact]
Relying on the nouveau driver and on the vga switcheroo (to get around a change in systemd LP: #1777099) caused increased power consumption, and slowed down the switching process.

Furthermore, if the main X/Xwayland session was started by Gdm when the nvidia driver was loaded, the session will keep the nvidia module loaded, and prevent the system from switching off the dGPU. Also, the nouveau driver will be loaded, if nvidia is not, and this can cause problems to unsupported NVIDIA GPUs.

The solution involves the following changes:

1) Solving the problem in systemd (LP: #1777099)

2) Adding code in gpu-manager and in nvidia-prime to unload the nvidia modules, and to allow the PCI device to sleep.

3) Making a slight change to the current patch in Gdm, used to call the PRIME scripts before and after a Gdm session (so that gpu-manager gets actually called on log out)

4) Adding code in gpu-manager to kill the main X/Xwayland session on log out, if the session is preventing us from unloading the nvidia driver. A new X/Xwayland session will be created after unload the module.

5) Removing the systemd service that loads nouveau from the nvidia packages.

[Test Case]
1) Enable the -proposed repository, and install the new "ubuntu-drivers-common", nvidia drivers, nvidia-prime, and gdm3 *

2) Make sure the nvidia packages are installed, and enable performance mode (if it is already enabled, call "sudo prime-select intel" first):
sudo prime-select nvidia

3) Restart your computer and attach your /var/log/gpu-manager.log. see if the system boots correctly. If unsure, please attach your /var/log/gpu-manager.log and /var/log/Xorg.0.log

4) Select power saving mode:
sudo prime-select intel

5) Log out and log back in

6) Check if the nvidia driver is still loaded:
lsmod | grep nvidia

[Regression Potential]
Low, as hybrid graphics support does not work correctly, and the changes only affect this use case.

_____________________________________
* Steps to test the updates:

1) Enable the bionic-proposed repositories

2) Create /etc/apt/preferences.d/proposed-updates with the following content:

Package: *
Pin: release a=bionic-proposed
Pin-Priority: 400

3) Update the list of packages:

sudo apt-get update

4) Install the packages from -proposed using the following command:

sudo apt install nvidia-driver-390/bionic-proposed gdm3/bionic-proposed ubuntu-drivers-common/bionic-proposed nvidia-prime/bionic-proposed nvidia-settings/bionic-proposed libnvidia-gl-390/bionic-proposed libnvidia-compute-390/bionic-proposed libnvidia-decode-390/bionic-proposed libnvidia-encode-390/bionic-proposed libnvidia-ifr1-390/bionic-proposed libnvidia-fbc1-390/bionic-proposed

Related branches

CVE References

Alberto Milone (albertomilone) wrote :

Here is a PPA with the current code for Bionic, available for testing:
https://launchpad.net/~albertomilone/+archive/ubuntu/hybridgraphics?field.series_filter=bionic

You will have to upgrade systemd, nvidia-prime, and ubuntu-drivers-common, call "sudo update-initramfs -u" (just in case), and reboot

Changed in nvidia-prime (Ubuntu Bionic):
status: New → In Progress
Changed in ubuntu-drivers-common (Ubuntu):
status: New → In Progress
Changed in ubuntu-drivers-common (Ubuntu Bionic):
status: New → In Progress
Changed in nvidia-prime (Ubuntu Bionic):
assignee: nobody → Alberto Milone (albertomilone)
Changed in ubuntu-drivers-common (Ubuntu):
assignee: nobody → Alberto Milone (albertomilone)
Changed in ubuntu-drivers-common (Ubuntu Bionic):
assignee: nobody → Alberto Milone (albertomilone)
Changed in nvidia-prime (Ubuntu Bionic):
importance: Undecided → High
Changed in ubuntu-drivers-common (Ubuntu):
importance: Undecided → High
Changed in ubuntu-drivers-common (Ubuntu Bionic):
importance: Undecided → High
André Brait (andrebrait) wrote :

Hey, Alberto. I have a few questions:

1. Are these changes intended to be deployed to Bionic, eventually? (I assume yes, by the names/versions you're working on, but I wanted to confirm this)

2. Would it make it not necessary to switch to nouveau at all? (I assume this is why prime-select currently has to generate another initramfs, right?)

3. Could this, along with restarting some services, make switching without a full reboot possible? Or would that still require LightDM?

Thanks!

Alberto Milone (albertomilone) wrote :

@André

1. Yes.

2. The new code doesn't involve using nouveau, or bbswitch, or regenerating the initramfs.

3. I don't think Gdm3 allows stopping X, calling gpu-manager, and then restarting X, as LightDm does on log out. I hope to do some work on it in the future though.

fargoth (cantfind) wrote :

Can we have an option to switch to the iGPU, but keep the nvidia card powered and its modules loaded so that it can be used for CUDA calculations?

Alberto Milone (albertomilone) wrote :

@fargoth: you can disable gpu-manager by passing the "nogpumanager" boot parameter. Wouldn't this work for you?

Mauro Gaspari (ilvipero) wrote :

This bug also affects me.
I am running Kubuntu 18.04 on Gigabyte AERO14, CPU:i7-7700HQ (45W TDP), GPU:Nvidia 1050Ti

I took a full system image with clonezilla, and tested Alberto Milone's PPA. System working fine after the upgrade. I tested switch+reboot around 20 times.

Test results:
No issue rebooting with or without switching GPU.
GPU Switching: Switching GPU is now much faster. Even if i use it from nvidia gui, I get the popup window asking to reboot right away.
system shutdown/reboot after I switch gpu is fast. Usual 5~10 seconds, same time it takes when I am not switching gpu.
Power usage - Nvidia mode: powertop reports around 30w idle (cpu load:2~3%, gpu ops/sec:0)
Power usage - Intel mode: powertop reports around 20w idle (cpu load:2~3%, gpu ops/sec:0) - Device stats report usage of 100% of the Nvidia 1050 in powertop, not sure if accurate.

I hope it helps.

Cheers,
Mauro

Changed in gdm3 (Ubuntu):
status: New → In Progress
importance: Undecided → High
assignee: nobody → Alberto Milone (albertomilone)
Changed in gdm3 (Ubuntu Bionic):
assignee: nobody → Alberto Milone (albertomilone)
importance: Undecided → High
status: New → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package nvidia-prime - 0.8.9

---------------
nvidia-prime (0.8.9) cosmic; urgency=medium

  [ Alberto Milone ]
  * 90-nvidia.conf,
    debian/rules,
    prime-select:
    - Make sure to remove the old blacklist file.
    - Use /lib for blacklist-nvidia.conf.
    - Do not check if prime is supported when disabling nvidia.
    - Enable KMS by default.
    - Install prime-switch again (LP: #1778011).
  * debian/nvidia-prime.nvidia-prime-boot.service:
    - Remove service.

  [ Alex Tu ]
    * prime-select: avoid regenerating the initramfs.

 -- Alberto Milone <email address hidden> Tue, 31 Jul 2018 16:47:20 +0200

Changed in nvidia-prime (Ubuntu):
status: In Progress → Fix Released
description: updated
Changed in nvidia-graphics-drivers-390 (Ubuntu):
status: New → Fix Released
Changed in nvidia-graphics-drivers-390 (Ubuntu Bionic):
status: New → In Progress
Changed in nvidia-graphics-drivers-390 (Ubuntu):
importance: Undecided → High
Changed in nvidia-graphics-drivers-390 (Ubuntu Bionic):
importance: Undecided → High
Changed in nvidia-graphics-drivers-390 (Ubuntu):
assignee: nobody → Alberto Milone (albertomilone)
Changed in nvidia-graphics-drivers-390 (Ubuntu Bionic):
assignee: nobody → Alberto Milone (albertomilone)
description: updated
summary: - PRIME Power Saving mode draws too much power
+ SRU: PRIME Power Saving mode draws too much power
Changed in gdm3 (Ubuntu):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-drivers-common - 1:0.5.3

---------------
ubuntu-drivers-common (1:0.5.3) cosmic; urgency=medium

  * gpu-manager.(c|py):
    - Set automatic pci power management when the dGPU is disabled (LP: #1778011).
    - Load the nvidia modules when switching to performance mode.
    - Do not skip unbound devices.
    - Make remove_prime_outputclass() void.
    - Report failures in enable_power_management().
    - Look for blacklisted modules in /lib/modprobe.d too.
    - Report failure when the nvidia modules cannot be unloaded,
      kill the main display session created by gdm3, and try
      unloading the nvidia modules once again.
  * gpu-manager.service:
    - Start before oem-config.service.

 -- Alberto Milone <email address hidden> Thu, 02 Aug 2018 15:45:42 +0200

Changed in ubuntu-drivers-common (Ubuntu):
status: In Progress → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gdm3 - 3.28.2-3ubuntu4

---------------
gdm3 (3.28.2-3ubuntu4) cosmic; urgency=medium

  * ubuntu_nvidia_prime.patch:
    - Run scripts for Prime before and after Gdm sessions (LP: #1778011).

 -- Alberto Milone <email address hidden> Mon, 30 Jul 2018 18:31:17 +0200

Changed in gdm3 (Ubuntu):
status: Fix Committed → Fix Released
Changed in nvidia-settings (Ubuntu):
assignee: nobody → Alberto Milone (albertomilone)
importance: Undecided → High
status: New → In Progress
status: In Progress → Fix Released
Changed in nvidia-settings (Ubuntu Bionic):
assignee: nobody → Alberto Milone (albertomilone)
importance: Undecided → High
status: New → In Progress
Steve Langasek (vorlon) wrote :

Reviewing ubuntu-drivers-common in the queue, I notice:

+ if (!match) {
+ free(match);

Surely no good can come of this call to free() and it should be omitted?

The change to start before oem-config.service seems correct but has no associated bug linked. This looks to me like it should still go through the SRU verification process because it's unrelated to the other changes. (Also, it's not 100% obvious that the change is correct: for example, why does oem-config not provide display-manager.service? Why are there no interdependencies between oem-config's systemd units and display-manager.service?)

The source package as uploaded appears to have a lot of cruft in various __pycache__ directories. This ought to be cleaned up.

I'm going to go ahead and reject based on the missing bug reference for the oem-config.service change. If you think this is wrong, feel free to ping me on IRC to discuss.

An upload of ubuntu-drivers-common to bionic-proposed has been rejected from the upload queue for the following reason: "contains change to systemd service with no bug reference; https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1778011/comments/10".

Steve Langasek (vorlon) wrote :

Bug description says:

> [Regression Potential]
> Low, as hybrid graphics support does not work correctly, and the changes only affect
> this use case.

Dropping the nvidia-fallback service means that any time the nvidia module has failed to be loaded, including if the nvidia module has failed to build for any reason, the nouveau module will not be loaded in its place. This is a behavior change that potentially affects users other than those with hybrid graphics. Is that a concern? How long has the existing behavior been there, and what are the chances that users may be inadvertently relying on the current fallback behavior without knowing it?

Changed in nvidia-graphics-drivers-390 (Ubuntu Bionic):
status: In Progress → Incomplete
ubname (ubname) wrote :

just to give some feedback, I have a optimus laptop with i7 sandibridge and nvidia GT550M, there is a led that indicates the nvidia GPU is always in use also after using the ppa to test, the laptop is indeed very hot also after I select intel and reboot and the led indicates that the nvidia GPU is in use despite selecting intel.

thanks!

Hello Alberto, or anyone else affected,

Accepted gdm3 into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/gdm3/3.28.3-0ubuntu18.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in gdm3 (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-bionic
Łukasz Zemczak (sil2100) wrote :

(waiting with the other packages until Steve's concerns are addressed)

Download full text (3.9 KiB)

Software rendering is a better bet if DKMS fails, as nouveau can cause
problems when dealing with (partially?) supported GPUs. I introduced that
change in bionic, but then I reverted that behaviour, also because it would
cause problems to hybrid graphics.

I don't think users relying on something that is broken should hold us
back. If anything, the fallback would cause users to file bug reports
(about graphics corruption, increased power consumption, etc.) against
nvidia, where these would be really nouveau's.

On Thu, 16 Aug 2018 at 00:36, Steve Langasek <email address hidden>
wrote:

> Bug description says:
>
> > [Regression Potential]
> > Low, as hybrid graphics support does not work correctly, and the changes
> only affect
> > this use case.
>
> Dropping the nvidia-fallback service means that any time the nvidia
> module has failed to be loaded, including if the nvidia module has
> failed to build for any reason, the nouveau module will not be loaded in
> its place. This is a behavior change that potentially affects users
> other than those with hybrid graphics. Is that a concern? How long has
> the existing behavior been there, and what are the chances that users
> may be inadvertently relying on the current fallback behavior without
> knowing it?
>
> ** Changed in: nvidia-graphics-drivers-390 (Ubuntu Bionic)
> Status: In Progress => Incomplete
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1778011
>
> Title:
> SRU: PRIME Power Saving mode draws too much power
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1778011/+subscriptions
>
> Launchpad-Notification-Type: bug
> Launchpad-Bug: distribution=ubuntu; sourcepackage=gdm3; component=main;
> status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu;
> sourcepackage=nvidia-graphics-drivers-390; component=restricted; status=Fix
> Released; importance=High; <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; sourcepackage=nvidia-prime;
> component=main; status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; sourcepackage=nvidia-settings;
> component=main; status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; sourcepackage=ubuntu-drivers-common;
> component=main; status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=gdm3; component=main; status=In Progress; importance=High;
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=nvidia-graphics-drivers-390; component=restricted;
> status=Incomplete; importance=High; <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=nvidia-prime; component=main; status=In Progress;
> importance=High; <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; dist...

Read more...

Alberto Milone (albertomilone) wrote :
Download full text (3.6 KiB)

I am going to have a look at this soon.

On Wed, 15 Aug 2018 at 23:20, Steve Langasek <email address hidden>
wrote:

> Reviewing ubuntu-drivers-common in the queue, I notice:
>
> + if (!match) {
> + free(match);
>
> Surely no good can come of this call to free() and it should be omitted?
>
> The change to start before oem-config.service seems correct but has no
> associated bug linked. This looks to me like it should still go through
> the SRU verification process because it's unrelated to the other
> changes. (Also, it's not 100% obvious that the change is correct: for
> example, why does oem-config not provide display-manager.service? Why
> are there no interdependencies between oem-config's systemd units and
> display-manager.service?)
>
> The source package as uploaded appears to have a lot of cruft in various
> __pycache__ directories. This ought to be cleaned up.
>
> I'm going to go ahead and reject based on the missing bug reference for
> the oem-config.service change. If you think this is wrong, feel free to
> ping me on IRC to discuss.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1778011
>
> Title:
> SRU: PRIME Power Saving mode draws too much power
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1778011/+subscriptions
>
> Launchpad-Notification-Type: bug
> Launchpad-Bug: distribution=ubuntu; sourcepackage=gdm3; component=main;
> status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu;
> sourcepackage=nvidia-graphics-drivers-390; component=restricted; status=Fix
> Released; importance=High; <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; sourcepackage=nvidia-prime;
> component=main; status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; sourcepackage=nvidia-settings;
> component=main; status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; sourcepackage=ubuntu-drivers-common;
> component=main; status=Fix Released; importance=High; assignee=
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=gdm3; component=main; status=In Progress; importance=High;
> <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=nvidia-graphics-drivers-390; component=restricted; status=In
> Progress; importance=High; <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=nvidia-prime; component=main; status=In Progress;
> importance=High; <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=nvidia-settings; component=main; status=In Progress;
> importance=High; <email address hidden>;
> Launchpad-Bug: distribution=ubuntu; distroseries=bionic;
> sourcepackage=ubuntu-drivers-common; component=main; status=In Progress;
> importance=High; ...

Read more...

monogato (luiscastro193) wrote :

I agree with #13

The problem is still there, switching to power saving mode doesn't save any power since the graphic card is always on anyway.

Alberto Milone (albertomilone) wrote :

@monogato: please give us time to get all the components into the -proposed repository first.

Alberto Milone (albertomilone) wrote :

On Wed, 15 Aug 2018 at 23:20, Steve Langasek <email address hidden>
wrote:

> Reviewing ubuntu-drivers-common in the queue, I notice:
>
> + if (!match) {
> + free(match);
>
> Surely no good can come of this call to free() and it should be omitted?
>

Nice catch. I think it was just debris, but it wouldn't have caused any
problem, since match could be either a valid string or NULL, and freeing a
NULL pointer results in a no-op. I have addressed this though.

>
> The change to start before oem-config.service seems correct but has no
> associated bug linked. This looks to me like it should still go through
> the SRU verification process because it's unrelated to the other
> changes. (Also, it's not 100% obvious that the change is correct: for
> example, why does oem-config not provide display-manager.service? Why
> are there no interdependencies between oem-config's systemd units and
> display-manager.service?)
>
>
I am not sure why oem-config does not provide display-manager.service, but
this change suits our needs, which I have now filed in a separate bug
report (LP: #1789201), and referenced in the changelog.

> The source package as uploaded appears to have a lot of cruft in various
> __pycache__ directories. This ought to be cleaned up.
>
>
This should not be a problem in my last upload.

--
Alberto Milone

My hardware: Probe URL: https://linux-hardware.org/?probe=572f1e3e6a

nvidia-fallback.service loads nouveau when I switched PRIME to Intel. I also see nouveau in `sensors` output. `systemctl disable nvidia-fallback` seems to cure the ptoblem, nouveau kernel module is not loaded any more and power cosumption _seems_ to be lower.

nvidia-fallback.service loads nouveau module even when it's blacklisted because this service starts after systemd loads kernel modules according to configs in /etc/modprobe.d/

Other PRIME fuctions work correctly except switching being much longer than it was before upgrading to bionic (18.04).

Can you please explain why is nvidia-fallback needed? It worked without it before.

Sorry, I have read above and understood why it's needed. I think prime-select can leave a dummy file somewhere and systemd service nvidia-fallback should be loaded when there is no this file written by prime-select.

Also, something, probably prime-select, adds nouveau.runpm=0 to GRUB_CMDLINE_LINUX_DEFAULT

$ cat `which prime-select` | grep nouveau.runpm
        boot_params['nouveau.runpm'] = '0'
                                 self._grub_path, ['nouveau.runpm', 'video=VGA'])

I don't understand why it does this, but I removed it , updated grub and everything works.

--- /tmp/nvidia-fallback.service.orig 2018-08-27 23:52:21.739079571 +0300
+++ /tmp/nvidia-fallback.service 2018-08-27 23:55:14.674338550 +0300
@@ -1,7 +1,8 @@
 [Unit]
-Description=Fall back on nouveau if nvidia is not loaded
+Description=Fall back on nouveau if nvidia is not loaded and PRIME not switched to integrated GPU
 Before=display-manager.service
 ConditionPathExists=!/sys/module/nvidia
+ConditionPathExists=!/etc/modprobe.d/blacklist-nvidia.conf

 [Service]
 Type=oneshot

Alberto Milone (albertomilone) wrote :

On Mon, 27 Aug 2018 at 23:01, Mikhail Novosyolov <email address hidden>
wrote:

> Can you please explain why is nvidia-fallback needed? It worked without
> it before.
>

I am trying to remove it with this SRU.

--
Alberto Milone

Is it already fix in proposed?

Hello Alberto, or anyone else affected,

Accepted nvidia-graphics-drivers-390 into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/nvidia-graphics-drivers-390/390.77-0ubuntu0.18.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in nvidia-graphics-drivers-390 (Ubuntu Bionic):
status: Incomplete → Fix Committed
Steve Langasek (vorlon) wrote :

Hello Alberto, or anyone else affected,

Accepted nvidia-prime into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/nvidia-prime/0.8.8.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in nvidia-prime (Ubuntu Bionic):
status: In Progress → Fix Committed
Steve Langasek (vorlon) wrote :

Hello Alberto, or anyone else affected,

Accepted nvidia-settings into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/nvidia-settings/390.77-0ubuntu0.18.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in nvidia-settings (Ubuntu Bionic):
status: In Progress → Fix Committed
Brian Murray (brian-murray) wrote :

I'm still seeing cruft in _pycache_ with the latest upload of ubuntu-drivers-common.

I've done 2 tests on 2 different machines.

1) nvidia 960m, bionic-proposed: everything up to date except for ubuntu-drivers-common. Nvidia driver is working when selected with prime-select but switching to intel (prime-select intel) does not work. Nvidia is still running.

2) nvidia 970m, bionic-proposed: everything up to date. I installed ubuntu-drivers-common and nvidia-prime from Alberto's hybridgraphics ppa. Everything works correctly. Both nvidia and intel modes are working as expected. Nvidia card is now silent and cold (I have 2 separate fan for cpu/gpu) when intel is selected.

Maybe I should retry when ubuntu-drivers-common is updated in proposal?

Hope it helps.

Serhiy Zahoriya (xintx-ua) wrote :

nvidia-prime 0.8.8.1, everything else updated. After selecting intel and rebooting NVidia drivers still loaded.

tags: added: verification-failed-bionic
removed: verification-needed-bionic
Alberto Milone (albertomilone) wrote :

@Serhiy Zahoriya: sorry but ubuntu-drivers-common (1:0.5.2.1) doesn't seem to be in bionic-proposed yet. No wonder things failed.

tags: added: verification-needed-bionic
removed: verification-failed-bionic
Alberto Milone (albertomilone) wrote :

@Steve, Brian: I have re-uploaded ubuntu-drivers-common 1:0.5.2.1, now with code to prevent shipping the __pycache__ cruft. While running debdiff against 1:0.5.2 will still mention the cruft, if you run "lintian -v ubuntu-drivers-common_0.5.2.1.dsc --pedantic", lintian won't complain about "source-contains-prebuilt-python-object" any more.

I hope we can finally get ubuntu-drivers-common into bionic-proposed now, or verification for this bug report will keep failing.

ubname (ubname) wrote :

Hi Alberto,

is there a way to test if this works? Should I use the ppa 8they do not seems to be up to date(?)

thanks!

Timo Aaltonen (tjaalton) wrote :

Hello Alberto, or anyone else affected,

Accepted ubuntu-drivers-common into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/ubuntu-drivers-common/1:0.5.2.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in ubuntu-drivers-common (Ubuntu Bionic):
status: In Progress → Fix Committed
Aurelijus Rinkevicius (odysei) wrote :

Hello,

I have pulled the updates from the -proposed (including ubuntu-drivers-common 1:0.5.2.1) and my gtx 1060 is roasting like a pig (intel is ON, so NVIDIA should be off). Pretty much no change on my end.

Are people with pre-Pascal seeing improvements? (Nouveau is in a better shape there)

Thanks.

Giraffe (dodger-forum) wrote :

Running a Quadro M2000M here.

ubuntu-drivers-common ver. 1:0.5.2.1 fixes the issue for me.

The dGPU fan is of and -according to powertop the dGPU draws zero power when using Intel iGPU.

tags: added: verification-done-bionic
removed: verification-needed-bionic
Alberto Milone (albertomilone) wrote :

@Aurelijus: please follow these steps for testing:

1) Enable the bionic-proposed repositories

2) Create /etc/apt/preferences.d/proposed-updates with the following content:

Package: *
Pin: release a=bionic-proposed
Pin-Priority: 400

3) Update the list of packages:

sudo apt-get update

4) Install the packages from -proposed using the following command:

sudo apt install nvidia-driver-390/bionic-proposed gdm3/bionic-proposed ubuntu-drivers-common/bionic-proposed nvidia-prime/bionic-proposed nvidia-settings/bionic-proposed

description: updated
ubname (ubname) on 2018-09-20
tags: added: verification-failed-bionic
removed: verification-done-bionic
tags: added: verification-needed-bionic
removed: verification-failed-bionic
description: updated
AaronMa (mapengyu) on 2018-09-20
tags: added: verification-done-bionic
removed: verification-needed-bionic
tags: added: originate-from-1788575 somerville
Changed in gdm3 (Ubuntu Bionic):
status: Fix Committed → Fix Released
Changed in ubuntu-drivers-common (Ubuntu Bionic):
status: Fix Committed → Fix Released
Changed in nvidia-settings (Ubuntu Bionic):
status: Fix Committed → Fix Released
Changed in nvidia-prime (Ubuntu Bionic):
status: Fix Committed → Fix Released
Changed in nvidia-graphics-drivers-390 (Ubuntu Bionic):
status: Fix Committed → Fix Released
56 comments hidden view all 136 comments

@Alberto: Is there any chance that this work-around works without gdm3?
I'm using ubuntu-server 18.04 and this my laptop configuration:
➜ ~ inxi -G
Graphics: Card-1: Intel HD Graphics 5500
           Card-2: NVIDIA GK208M [GeForce 920M]
           Display Server: X.Org 1.19.6 driver: intel Resolution: 1366x768@60.06hz
           OpenGL: renderer: Mesa DRI Intel HD Graphics 5500 (Broadwell GT2) version: 4.5 Mesa 18.0.5

I followed the steps and installed required packages as follows:
➜ ~ sudo apt install nvidia-driver-390/bionic-updates ubuntu-drivers-common/bionic-proposed nvidia-prime/bionic-proposed nvidia-settings/bionic-updates libnvidia-gl-390/bionic-updates libnvidia-compute-390/bionic-updates libnvidia-decode-390/bionic-updates libnvidia-encode-390/bionic-updates libnvidia-ifr1-390/bionic-updates libnvidia-fbc1-390/bionic-updates

Then I executed "sudo prime-select nvidia".
But after rebooting, I have no openGl support and this error is present at Xorg's logs:
VGA arbiter: cannot open kernel arbiter, no multi-card support
Nvidia kernel modules are loaded and Xorg seems to register nvidia driver at init.

If I try to run glxgears for example, I get the following message:
glxinfo Error: couldn't get an RGB, Double-buffered visual

And using "sudo prime-select intel" also leaves me without GL. I think this is something related to gpu-manager, because I am not using any display manager, just running xorg from startx.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in sddm (Ubuntu Bionic):
status: New → Confirmed
Changed in sddm (Ubuntu):
status: New → Confirmed
1 comments hidden view all 136 comments
Michael Weimann (m982) wrote :

For me the power management isn't working, too.
The fan is always running and my notebook is getting hot.

I'm using Ubuntu 18.04 and installed the default nvidia driver 390.

My machine is an ASUS UX331UN with an nvidia mx150.

Currently my workaround is to install bbswitch and turn the nvidia graphics on/off with that by hand :/

Michael Weimann (m982) wrote :
Stefan Girstmair (djefo) wrote :

Hi Alberto,

just wanted to let you know that I made a new and clean install of Ubuntu 18.10 and now switching to Intel GPU works from the start.
Thank you so much for your work.

Krzysztof Janowicz (janowicz) wrote :

@Alberto: here you go. The card is a GeForce GTX 1050 Ti with Max-Q Design/PCIe/SSE2 in a Thinkpad X1 Extreme.

@Fernando: we don't support hybrid graphics without using a display manager, as that would prevent gpu-manager from running at the right time.

@Michael: I can only assume there was some failure somewhere when setting the power state of the NVIDIA GPU (the dmesg output might help). There are indeed cases in which bbswitch works best on some GPUs. This sounds like one of them.

@Stefan: good. Thanks for reporting :)

@Krzysztof: in your case, the NVIDIA GPU seems to be first, and the Intel GPU is seen as last. Can you set Intel as first in the BIOS, please?

Leandro Sá (leandrosa) wrote :

@albertomilone here is my gpu-manager.log this is a fresh install and all updates have been made

Leandro Sá (leandrosa) wrote :

Sorry wrong file this is the file with the $ prime-select intel

Vitaliy Kraynov (vantuz) wrote :

My laptop is MSI GE60 0NC
CPU: Intel i5-3210M, GPU: NVIDIA GeForce GTX 660M
Running Kubuntu 18.10

As in comment https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1778011/comments/13 my laptop has a led indicating if Nvidia GPU is on and according to it Nvidia GPU does not power off when I select Intel GPU.
Also tested on Kubuntu 18.04 (without "proposed" repository), same issue.

Vitaliy Kraynov (vantuz) wrote :

My gpu-manager.log (Intel selected)

Gregor Burger (burger-gregor) wrote :

Hi,

Thinkpad P1 Quadro P1000. prime-select also not working.
after prime-select intel and a rebeoot nouveau is driving the GPU but not intel.

Thanks

Gregor Burger (burger-gregor) wrote :
Krzysztof Janowicz (janowicz) wrote :

@Alberto: Thanks a lot for your help! There is no such setting in the BIOS of the Thinkpad X1 Extreme. I can either select discrete only or hybrid cards. I was finally able to get prime-select to switch to intel but the rate remains at like 20W which is essentially the same as using the nvidia card. I am also not able to connect to an external screen via the on-board HDMI port which is another issue I never had to deal with in a Thinkpad (usb-c to HDMI adapter does not work as well).

Chris L8 (ekpyroticfrood) wrote :

@janowicz The HDMI port on the Thinkpad X1 Extreme is physically connected to the Nvidia chip, so it ONLY works if you are using the Nvidia card, not the Intel Integrated graphics.

This is the case with several of the latest laptops with Nvidia GTX 1050 cards in them.

Krzysztof Janowicz (janowicz) wrote :

@Chris, Thanks for your reply. I know, my point is a bit different. If I set the bios to discrete only, I get an HDMI signal. If I set the bios option to hybrid, I can use prime-select to switch between intel and nvidia but in both cases I cannot use HDMI anymore and in both cases power consumption is at a rate of above 20W, essentially emptying my battery within 2-3 hours.

@Krzysztof: The NVIDIA GPU is more powerful, but also more power hungry than the Intel GPU. This is why you are seeing such a high power consumption.

If you select the Intel GPU, through prime-select, then you will lose the HDMI, but power consumption should also go down. If it doesn't, it is a bug, and I am going to provide a solution in the future.

As for losing the HDMI output even when both Intel and NVIDIA are enabled, that is certainly unexpected.

@Gregor: that shouldn't be an issue any more, assuming that you are using the latest updates, and that you are using the nvidia driver from the ubuntu archive.

Dan Robinson (dlrobinson) wrote :

I'm still experiencing high power consumption with GDM3 on Cosmic with 0.8.10 of nvidia-prime. Can provide logs/hardware info if it's helpful, just let me know what you need. Nouveau or manually disabling the DGPU in the BIOS behaves as expected.

1 comments hidden view all 136 comments
Fink Nottle (finknottle) wrote :

Thinkpad w530. Still looks like the nvidia gpu isn't turning off. bionic+lightdm+unity7. Log attached.

prime-select query
intel
cat /proc/acpi/bbswitch
0000:01:00.0 ON

@Dan: I would like to see your /var/log/gpu-manager.log when in power saving mode.

@Fink: please install powertop, launch it by typing "sudo powertop", and get to the "device stats" tab, to see what's drawing power. You can attach a screenshot of that.

also, we do not rely on bbswitch any more.

Pe4enko (ipe4enko) wrote :

Should it work on ubuntu 18.10? I try to install 390 driver. After this i run command
sudo prime-select nvidia and restart system. But GUI no work anymore. In kernel log i see errors.
My video card is geforce 750M

Jan 11 02:38:17 lblack kernel: [ 121.613281] nvidia: loading out-of-tree module taints kernel.
Jan 11 02:38:17 lblack kernel: [ 121.613290] nvidia: module license 'NVIDIA' taints kernel.
Jan 11 02:38:17 lblack kernel: [ 121.613290] Disabling lock debugging due to kernel taint
Jan 11 02:38:17 lblack kernel: [ 121.616641] nvidia: module verification failed: signature and/or required key missing - tainting kernel
Jan 11 02:38:17 lblack kernel: [ 121.623093] nvidia-nvlink: Nvlink Core is being initialized, major device number 238
Jan 11 02:38:17 lblack kernel: [ 121.623677] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 390.87 Tue Aug 21 12:33:05 PDT 2018 (using threaded interrupts)
Jan 11 02:38:17 lblack kernel: [ 121.625479] NVRM: API mismatch: the client has the version 410.66, but
Jan 11 02:38:17 lblack kernel: [ 121.625479] NVRM: this kernel module has the version 390.87. Please
Jan 11 02:38:17 lblack kernel: [ 121.625479] NVRM: make sure that this kernel module and all NVIDIA driver
Jan 11 02:38:17 lblack kernel: [ 121.625479] NVRM: components have the same version.

Fink Nottle (finknottle) wrote :

Attached powertop images. I'm not sure how accurate powertop's values and distributions are. With prime-select intel, the total estimated power remains high although it doesn't attribute it to nvidia. bbswitch also stays on. I've also attached a bbswitch off capture after prime-select intel. That actually seems to turn the gpu off. There's also a default capture with nouveau drivers (i.e., the nvidia gpu is not in use). There are a few other issues with prime-selct too. prime-select intel glitches the lightdm login screen. You can't see the text entry field. prime-query is also not accurate always. Sometimes it says it's nvidia, but nvidia drivers are not loaded.

Pe4enko: Here is your problem:

NVRM: API mismatch: the client has the version 410.66, but
NVRM: this kernel module has the version 390.87. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.

It looks like you installed the 410.66 driver (maybe using the installer from Nvidia's website), and then tried to install the 390 driver from the Ubuntu archive. This is not going to work. Please uninstall the nvidia packages (sudo apt-get remove --purge '*nvidia*') and then use the Nvidia installer to uninstall the other driver.

@Fink: I would like to see powertop when you don't use bbswitch (and the Nvidia GPU is on). More specifically, I would like to know if you can disable the Nvidia GPU using the "Tunables" tab from powertop.

Dan Robinson (dlrobinson) wrote :

@Alberto:

Sorry for the lateness of my reply, apparently Launchpad doesn't automatically subscribe me just because I commented...

Anyway, I am attaching both gpu-manager.log and gpu-manager-switch.log for when both the Nvidia profile and Intel profiles are selected.

FWIW, I discovered that once I select the Intel profile I can use bbswitch to shut the card down for full power saving. This behavior remains constant regardless of whether I have TLP running or not. Powertop shows the Nvidia card tunable set to "Good" even without TLP running.

As far as I can tell, the issue seems to be that on my hardware the only way to shut the card down completely is through a dedicated ACPI message (i.e., what bbswitch does) rather than "normal" PCIe power management.

Let me know if I need to do anything else, this laptop is not essential for productivity so if I need to try to break stuff I'm up for that.

Dan Robinson (dlrobinson) wrote :

I noticed off a clean boot on Intel gpu-manager.log was different from when I just logged out and logged back in so I'm attaching that file now.

No change as far as power consumption goes though.

Adrian S. (dustya) wrote :

I can confirm that installing nvidia-390 through the Ubuntu driver dialog, and then using nvidia-settings or prime-select to set intel keeps the nvidia card on for me on my GeForce 840M laptop.
I can also confirm Installing bbswitch-dkms and turning it off through bbswitch works.

Michael Weimann (m982) wrote :

I observed the same behaviour as Adrian S..

Selecting Intel keeps the Nvidia card powered and the fan spinning.
Installing and using bbswitch manually works. I can't make it working powering off the card at boot time :( Therefore I have to do it manually every time I boot my notebook.

MX150, Ubuntu 18.04.2

jespestana (jespestana) wrote :

I am very interested on the status of this bug, since I am considering which version of Ubuntu to install. I have just 3 questions about it:

* If I understand correctly, the bug does not occur in Ubuntu 18.10. The user can switch seamlessly between using the Intel or the Nvidia discrete graphics card. Is this correct?
* What is the status in Ubuntu 18.04? Is the bug solved?
* In Ubuntu 18.04, is it possible to run the laptop disabling the Nvidia graphics card completely (with the card not consuming any power)? How can this be achieved?

Adrian S. (dustya) wrote :

> * If I understand correctly, the bug does not occur in Ubuntu 18.10. The user can switch seamlessly between using the Intel or the Nvidia discrete graphics card. Is this correct?

@jespestana
No, this bug is affecting me on 18.10.

jespestana (jespestana) wrote :

@dustya
Thanks a lot for the feedback. I think that I will install both operating systems on the laptop, and check what happens.

Fink Nottle (finknottle) wrote :

@Alberto, with prime-select intel as well as with bbswitch off, powertop shows the nvidia tunable as "good". Still, the battery's discharge rate on idle remains pretty high (around 20W) on prime-select intel. With bbswitch off, it drops to 13W or thereabouts. Do you need any more information ?

Fink Nottle (finknottle) wrote :

After spending some more time with this, I can confirm that this is definitely a regression. Both nouveau and the old bbswitch based method in 16.04 were able to power off the nvidia card successfully when not in use. The current implementation of prime-select in 18.04 doesn't do that. It may be that this is card or ACPI specific, but my hardware is fairly old (2012 ivybridge with kepler GPU), and it doesn't work for it.

Ravind K (ravindk89) wrote :

@Alberto I'm afraid I have to add to the pile of users reporting issues here. Kernel 4.20.14 with 418.43 drivers. Ubuntu 18.04.2 LTS, on an X1 Extreme.

Using both GDM3 and lightdm, "prime-switch intel" doesn't seem to power off the nvidia GPU. power seems to go between 25-35W on battery. Using powertop to set the Nvidia GPU to `Good` doesn't seem to help (100% usage in Device stats).

Attached are gpu-manager.log and gpu-manager-switch.log (while in prime-select intel mode). I'm not using bbswitch. I've rebooted a few times while in intel mode to see if that would take. No die.

Also including output of apt-list --installed | grep nvidia:

libnvidia-cfg1-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
libnvidia-common-418/bionic,bionic,now 418.43-0ubuntu0~18.04.1 all [installed,automatic]
libnvidia-compute-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
libnvidia-decode-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
libnvidia-encode-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
libnvidia-fbc1-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
libnvidia-gl-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
libnvidia-ifr1-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
nvidia-compute-utils-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
nvidia-dkms-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
nvidia-driver-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed]
nvidia-kernel-common-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
nvidia-kernel-source-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
nvidia-prime/bionic-updates,bionic-updates,now 0.8.8.2 all [installed]
nvidia-settings/bionic,now 418.43-0ubuntu0~gpu18.04.1 amd64 [installed,automatic]
nvidia-utils-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]
xserver-xorg-video-nvidia-418/bionic,now 418.43-0ubuntu0~18.04.1 amd64 [installed,automatic]

I'm fairly new to Linux, but if there's any additional information I can provide, I'd be glad to assist.

alex morris (alex.morris) wrote :

With kernel 4.18 and 410.104 drivers, it seems to work properly for me.

Ubuntu 18.04.2 LTS on a Dell Inspiron Gaming 7000 with nvidia GeForce GTX 1050 Ti, Gnome.

I am here because a couple patches ago, I lost ability to resume from sleep. Opening the lid, it would just hang in black screen, requiring hold of power button +5 sec to turn off. I tried the blacklist-nouveau and bbswitch-dkms tricks, no difference. On top of that configuration, I upgraded to kernel 4.18, still no difference.

I found a repo for drivers > 390, http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu

I reverted previous changes, uninstalled bbswitch-dkms, and eventually got drivers, libs and nvidia-* packages for version 410.104 installed properly.

Fixed. I can once again close the lid, the laptop sleeps; open the lid, the laptop wakes and gives the beaver login screen. Awesome.

Thanks Alberto and other devs for your work.

Adrian S. (dustya) wrote :

After seeing Alex's post, I tried installing 410.104-0ubuntu0~18.10.1 from ppa:graphics-drivers.
Using 4.18.0-16-generic kernel.

I find that when I use Intel profile, powertop reports the nvidia card as 0% active, and the setting in Tunables shows up as Good.
However, /proc/acpi/bbswitch reports as 0000:01:00.0 ON, and the *fans* are spinning.

Turning the graphics card OFF with bbswitch, the fans stop spinning.

Displaying first 40 and last 40 comments. View all 136 comments or add a comment.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers