Announcement

Collapse
No announcement yet.

Issues with vgaswitcheroo disappearing?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Issues with vgaswitcheroo disappearing?

    I have a hybrid laptop -- Intel Ivybridge + AMD 7970M -- and I've been using the latest open source driver stack, keeping up to date with the latest developments. 64bit Arch.

    With 3.13 we're going to have runtime power management, which will be fantastic for battery life. However, I'm running into an issue: whenever I disable my discrete card using `echo OFF > /sys/kernel/debug/vgaswitcheroo/switch` one of two things happens:

    a) I get a ton of error messages in dmesg, looks like CPU locks

    b) I get no errors, but /sys/kernel/debug/vgaswitcheroo disappears

    I noticed this when testing some of the 3.13 changes, that my computer would mostly jus crash with CPU lock errors. I thought it was just an issue with 3.13, but going back to 3.12 I tried manually disabling the discrete card and, while X was running, my system would lockup, or, if X was *not* running, the vgaswitcheroo directory would vanish.

    Has anyone run into this issue before, or maybe know a way of fixing it?

  • #2
    You shouldn't need to mess with vgaswitcheroo in 3.13. The driver automatically powers down the card when not in use.

    Comment


    • #3
      Originally posted by agd5f View Post
      You shouldn't need to mess with vgaswitcheroo in 3.13. The driver automatically powers down the card when not in use.
      The trouble is though, when using 3.13, I'm getting the same behavior -- CPU locks, specifically -- as when I would `echo OFF > /sys/kernel/debug/vgaswitcheroo` , so I'm not sure if I'm doing something wrong or there's some other issue.

      I'll try to see if I can get some of the error output.

      Comment


      • #4
        Can you bisect?

        Comment


        • #5
          Originally posted by agd5f View Post
          Can you bisect?
          I've never done so before, and am not terrible familiar with the process. I did, however, do a little poking and prodding of my own and I found:



          1. It seems to be an issue with xf86-video-ati/intel, which I had assumed

          2. When using latest git builds of either, disabling the discrete card via vgaswitcheroo causes /sys/kernel/debug/vgaswitcheroo to disappear, meaning I can't re-enable it

          3. When using the stable versions from the Arch Linux repos ( https://www.archlinux.org/packages/e...6-video-intel/ && https://www.archlinux.org/packages/e...f86-video-ati/ ) vgaswitcheroo/switch reports the discrete card being OFF. However, once I start X, /sys/kernel/debug/vgaswitcheroo disappears so I cannot re-start the discrete card

          4. When using a recent git build of linux-next + stable intel/ati drivers I can start X successfully but the entire machine then crashes after about a minute with an error "unable to handle paging request", which was just dumped to stdout so I'll need to try to replicate that and capture the error. With this test I am *not* using vgaswitcheroo at all; I assume the crash occurs when the system tries to disable the discrete card



          I'm still digging around with this to see what I can find. I'm *hoping* it's not bad hardware T__T

          Comment


          • #6
            I also noticed these errors printed to stdout (before starting X) when testing on linux-next (with stable intel/ati drivers):

            Code:
            error waiting for ring[6] to become idle
            
            *ERROR* radeon: failed testing IB on ring 5
            I'm working on getting some more definitive error logs, my Linux partition is not the most stable right now.

            Comment


            • #7
              Originally posted by dffx View Post
              I've never done so before, and am not terrible familiar with the process. I did, however, do a little poking and prodding of my own and I found:
              1. It seems to be an issue with xf86-video-ati/intel, which I had assumed
              The ddxes are not really aware of or involved in hybrid graphics. They just send commands to the kernel driver to draw stuff. The problem is mostly likely kernel related.

              Comment


              • #8
                Do you have dpm enabled?

                Does it work with dpm disabled?

                Comment


                • #9
                  Same problem here.
                  My graphics cards:
                  Code:
                   lspci | grep VGA
                  01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880M [Mobility Radeon HD 4225/4250]
                  02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430/5450/5470]
                  kernel 3.11 o.k.
                  kernel 3.12 vgaswitcheroo disappears
                  kernel 3.13 freeze 10sec after boot( if run something with discrete card, do not freeze)
                  like
                  Code:
                  DRI_PRIME=1 glxgears

                  Comment


                  • #10
                    Issues with vgaswitcheroo disappearing?

                    Same problem here.
                    My graphics cards:
                    Code:
                     lspci | grep VGA
                    01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880M [Mobility Radeon HD 4225/4250]
                    02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430/5450/5470]
                    kernel 3.11: o.k.
                    kernel 3.12: vgaswitcheroo disappears
                    kernel 3.13: freeze 10sec after boot( if run something with discrete card, do not freeze)
                    like
                    Code:
                    DRI_PRIME=1 glxgears
                    kernel 3.13, DPM disabled:freeze again.

                    Comment


                    • #11
                      Issues with vgaswitcheroo disappearing?

                      Same problem here.
                      My graphics cards:
                      Code:
                       lspci | grep VGA
                      01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880M [Mobility Radeon HD 4225/4250]
                      02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430/5450/5470]
                      kernel 3.11: o.k.
                      kernel 3.12: vgaswitcheroo disappears
                      kernel 3.13: freeze 10sec after boot( if run something with discrete card, do not freeze)
                      like
                      Code:
                      DRI_PRIME=1 glxgears
                      kernel 3.13, DPM disabled:freeze again

                      Comment


                      • #12
                        Originally posted by sotos4421 View Post
                        kernel 3.13: freeze 10sec after boot( if run something with discrete card, do not freeze)
                        like
                        Code:
                        DRI_PRIME=1 glxgears
                        Of course that defeats the purpose of runtime power management, since the reason that it doesn't crash on 3.13 when you're running glxgears on the discrete card is because it's not actually turning off.

                        Comment


                        • #13
                          I was digging around the kernel.org bugzilla and I came across this bug which may be what we're running into: https://bugzilla.kernel.org/show_bug.cgi?id=61891

                          Comment


                          • #14
                            If you're running Arch Linux, it seems like the linux-git AUR package builds successfully: https://aur.archlinux.org/packages/linux-git/

                            And I've had no crashes, and vgaswitcheroo/switch remains and reports dynamic power in my discrete GPU.

                            Comment


                            • #15
                              This bug is still present in 3.12.3 and 3.13-rc2 in opensuse. Is there any news related to the bug?

                              Comment

                              Working...
                              X