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
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
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?
GeForce GT 550M + integrated Intel card using i915 driver (NVidia Optimus)
Btw, on that system there is also problem with auto-suspending (with not disabled nouveau.runpm) - a card is always in DynPwr - Bug 70875.
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).