|Summary:||Discrete card seems to be powered on even if reported as Off|
|Product:||xorg||Reporter:||Marcin Zajaczkowski <mszpak>|
|Component:||Driver/nouveau||Assignee:||Nouveau Project <nouveau>|
|Status:||NEW ---||QA Contact:||Xorg Project Team <xorg-team>|
|i915 platform:||i915 features:|
Description Marcin Zajaczkowski 2014-11-21 00:01:09 UTC
Following up Bug 70895. On Fedora 21 with 3.17.3-300.fc21.x86_64 when booting with nouveau.runpm=0 I have both cards on: $ $ sudo cat /sys/kernel/debug/vgaswitcheroo/switch 0:IGD:+:Pwr:0000:00:02.0 1:DIS: :Pwr:0000:01:00.0 and after: # echo OFF > /sys/kernel/debug/vgaswitcheroo/switch I have: 0:IGD:+:Pwr:0000:00:02.0 1:DIS: :Off:0000:01:00.0 Looks ok, but I still see 3 providers: $ xrandr --listproviders Providers: number : 3 Provider 0: id: 0x90 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 5 associated providers: 2 name:Intel Provider 1: id: 0x63 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 2 associated providers: 2 name:nouveau Provider 2: id: 0x63 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 2 associated providers: 2 name:nouveau and system temperature could suggest that the card is still on. When I use (on the second kernel) bbswitch with bumblebee I see only one provider and the temperature is a few (~6) degrees lower. I see no messages from VGA switcheroo in the system log (as there were in 3.11.6). Can I make output more verbose or do something else to provide more details about the situation? System specification: Asus N43SN GeForce GT 550M + integrated Intel card using i915 driver (NVidia Optimus) kernel-3.17.3-300.fc21.x86_64 xorg-x11-drv-nouveau-1.0.11-1.fc21.x86_64 xorg-x11-server-Xorg-1.16.1-1.fc21.x86_64 Btw, on that system there is also problem with auto-suspending (with not disabled nouveau.runpm) - a card is always in DynPwr - Bug 70875.
Comment 1 fredgib 2018-07-25 19:15:31 UTC
I have the same problem but found a workaround that may give a hint to developers. My system is an up-to-date Kali Linux (kernel 4.16, nouveau package: 'xserver-xorg-video-nouveau/kali-rolling,now 1:1.0.15-2 amd64'). I don't have bumblebee or prime installed. If I don't blacklist nouveau in /etc/modprobe.d/, there are 2 possibilities: - either I disable runtime management in the kernel options of /etc/default/grub, then the discrete card will be on (vgaswitcheroo would say 'Pwr') and I can turn it off by writing in vgaswitcheroo/switch. - or I don't disable runtime management, then vgaswitcheroo indicates "DynPwr" and whatever I do, I cannot change that state. In both cases, the power consumption remains the same, typical of when the discrete card is on. Now my preferred scenario, explaining the workaround: If I blacklist nouveau in /etc/modprobe.d/ and reboot, I still have a high consumption, typical of when the discrete card is on. I have only one provider indicated by xrandr (the integrated i915 in modesetting) and /sys/kernel/debug/vgaswitcheroo/switch does not exist. THEN I launch nouveau ("sudo modprobe nouveau") and that's it: my consumption is 5 Watts less (typical of what I had with bumblebee and bbswitch before), vgaswitcheroo indicates "DynOff". There is however a limitation: if I connect an HDMI screen (knowing the HDMI port of my laptop is fostered by the discrete card) and use it with 'xrandr --setprovideroutputsource 1 0', nouveau will automatically turn on the discrete card (and switcheroo will indicate "DynPwr"), but there is no return; the discrete card will remain ON, whatever I do (I even tried to 'sudo modprobe bbswitch' at that point and write "OFF" in /proc/acpi/bbswitch).