SRU: PRIME Power Saving mode draws too much power

Bug #1778011 reported by Alberto Milone on 2018-06-21
162
This bug affects 30 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
35 comments hidden view all 115 comments
Anton Alexandrenok (the-spyke) wrote :

After this change:

nvidia-prime (0.8.8.1) bionic; urgency=medium
 - Enable KMS by default

My external displays stopped working.
Ubuntu 18.04 (4.15.0-36-generic), nvidia-390.77, Lenovo ThinkPad P50 with NVIDIA M1000M.
I use Communitheme X session. Disabling KMS restores external displays.

Josh Holland (anowlcalledjosh) wrote :

Is there another bug I can follow to find out when LightDM will receive support for this update?

Alberto Milone (albertomilone) wrote :

@Anton: you are using gdm3, right? (you can check it with "ps aux | grep gdm")

@Josh: this bug report: LP: #1797147

Stefan Girstmair (djefo) wrote :

Hi Alberto,

I was having this issues for a long time and since I am not a very experienced user I thought to just wait for 18.10 and that it would be fixed there automatically. So today I upgraded and still face the same problem. I cannot even open the Nvidia x server settings. Could you maybe help me, as this is really annoying with the bad battery-life. Should I also follow your steps in 18.10 or is it somewhat different now?
I would really appreciate help :)

Best,
Stefan

PS: I would be happy to provide further information if neccessary

Stefan Girstmair (djefo) wrote :

Additional:

If I try sudo prime-select intel, this is what I get:

Info: selecting the intel profile
Failed to disable unit: Unit file nvidia-fallback.service does not exist.
Traceback (most recent call last):
  File "/usr/local/bin/prime-select", line 334, in <module>
    switcher.enable_profile(arg)
  File "/usr/local/bin/prime-select", line 124, in enable_profile
    self._trigger_prime_sock()
  File "/usr/local/bin/prime-select", line 183, in _trigger_prime_sock
    sock.connect(self._prime_sock_addr)
FileNotFoundError: [Errno 2] No such file or directory

I don't know what this means.

Best,
Stefan

Renato Bueno (renatoapdo) wrote :

Hi Alberto!

I was using Ubuntu 18.04 for a time, and today I decided do install Ubuntu 18.10 again e see if everything is fine. I did a clean installation but the problem persist and I can use external monitors

Do you have any tip?

Thanks man!

PS: Power consumption is very low now when nvidia is disabled. Show!

Renato Bueno (renatoapdo) wrote :

Xorg.0.log

Renato Bueno (renatoapdo) wrote :

Sory, I can't use external monitors

Do you have any tip?

Alberto Milone (albertomilone) wrote :

@Stefan: it seems to me that you didn't install nvidia-prime from the Ubuntu archive.

@Renato: does it solve your problem if you install lightdm, and you use it instead of gdm?

gp (gpat) wrote :

Hi,

I believe that I am also affected by this bug.
Graphics driver is nvidia-driver-410 on 18.04 (410.66-0ubuntu0~gpu18.04.1)
DM is sddm (0.17.0-2+18.04+bionic+build14)

Renato Bueno (renatoapdo) wrote :

@Alberto, I switched back to Ubuntu 18.04 and now everything is working.
Now I can switch to Intel with low power consumption and no external monitor how it was ever, and when I switch back to Nvidia, I can use external monitor normally.

Next weekend I`ll try again with Lightdm and tell you, ok?

Stefan Girstmair (djefo) wrote :

@Alberto,

thank you for your answer. I have answerd your question on the Discord where you have also asked for testing. (https://discourse.ubuntu.com/t/call-for-testing-nvidia-prime-in-ubuntu-18-04-and-18-10/8207/4)
Sorry for my lack of understanding, but I am not quite sure what the problem is. How do I install it from the Ubuntu archive? I just upgraded from 18.04 and it is still not working.
Again, I am really sorry for my stupid questions. But I would love it so much to finally solve it :)

Best,
Stefan

Stefan Girstmair (djefo) wrote :

Or should I maybe try to make a clean install of 18.10 as you said that it should be fixed in it and maybe I just have some stuff from 18.04 still here that does not work and I am not experienced enough to find it? I just thought that there would be a way to make it work here.

Renato Bueno (renatoapdo) wrote :

@Alberto,

As you suggest, I did some tests with lightdm on Ubuntu 18.10 and it's working. Low battery usage with Intel and second monitor working with Nvidia.

Thanks for your answer.

Renato

Andrew Lendrum (a-lendrum) wrote :

@Alberto

This is my first time on launchpad, so please forgive any noob errors.

I followed the instructions to the letter:
I enabled bionic-proposed with: sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -sc)-proposed restricted main universe"
I created /etc/apt/preferences.d/proposed-updates with the specified content
I updated.
Then when I tried to install the packages I saw:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Release 'bionic-proposed' for 'nvidia-driver-390' was not found
E: Release 'bionic-proposed' for 'gdm3' was not found
E: Release 'bionic-proposed' for 'nvidia-settings' was not found
E: Release 'bionic-proposed' for 'libnvidia-gl-390' was not found
E: Release 'bionic-proposed' for 'libnvidia-compute-390' was not found
E: Release 'bionic-proposed' for 'libnvidia-decode-390' was not found
E: Release 'bionic-proposed' for 'libnvidia-encode-390' was not found
E: Release 'bionic-proposed' for 'libnvidia-ifr1-390' was not found
E: Release 'bionic-proposed' for 'libnvidia-fbc1-390' was not found

Am I missing something?

Andrew Lendrum (a-lendrum) wrote :

UPDATE: I found the packages in bionic-updates.

After setting prime-select nvidia and logging out, I got the attached /var/log/gpu-manager.log.

It says that nvidia is not loaded, and my laptop still runs hot.

When I set prime-select intel, log out, and back in, nvidia is still not loaded (according to the log) and my laptop still runs hot.

Any suggestings?

Alberto Milone (albertomilone) wrote :

@Andrew: sorry, but your GPU is supported only by the 340 legacy driver, and we do not support hybrid graphics with that driver.

Leandro Sá (leandrosa) wrote :

@albertomilone
so this is happening to me since 18.04 is my gpu not supported also?

Alberto Milone (albertomilone) wrote :

@Leandro: please attach your /var/log/gpu-manager.log , as that might give me a clue about your system.

Krzysztof Janowicz (janowicz) wrote :

@Andrew, @Alberto: Looks like many Thinkpad X1 Extreme users are reporting the same issue where prime-select seems to work but does not power of the nvidia card nor shows up in nvidia-settings. I followed the instructions the same way Andrew did and got the same 'not found' message. I assumed the packages are in updates by now and we should all have them anyway. Apt tells me that 390.77-0ubuntu0.18.04.1 is the newest version. Am I missing something? I have the same issue as I had before (NVIDIA GTX 1050 TI). Thanks for your help.

Alberto Milone (albertomilone) wrote :

@Krzysztof: I don't think your GPU is the same as Andrew's. Please attach your /var/log/gpu-manager.log

@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 115 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.

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

Other bug subscribers