Announcement

Collapse
No announcement yet.

RX 580 idles at 1300mhz core clock

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

  • RX 580 idles at 1300mhz core clock

    My RX 580 idles at 1300mhz and seems to only switch between 2 power states: 1300mhz and 1411mhz. The memory clock seems to work as expected, idles at 300mhz.

    I have:
    GPU: Sahpphire RX 580 Nitro+ OC 4GB
    Monitor: LG 32UD59-B 4k 60 hz
    Cable: Display Port 1.2
    OS: Debian
    Kernel: 4.19.0-rc2-amd64 (also tried 4.17.1)
    Mesa: 18.1.7
    Firmware: latest amd firmware package in debian (i think it's 2018-07-something)

    I have tried:
    1) To manually change the clocks in radeon profile
    2) Send commands to the gpu directly:
    echo 1 | sudo tee -a /sys/class/drm/card0/device/pp_dpm_sclk
    sudo echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level

    GPU artifacts and behavior:
    Seems to be working fine, the temperatures are good, the boost clock holds well and there are no visual artifacts that i have noticed running Witcher 3 on wine.


    The gpu won't accept any other power state lower than the last two and will only idle at 1300mhz. I have tried all the ports on the gpu and monitor with dp and hdmi cables. The only thing that lowers the power states is either changing to lower resolution, or reducing the 4k refresh rate to 30hz. Both of these solutions are pretty terrible.

    What could be causing this behavior?
    Last edited by hxfhjkl; 11 September 2018, 01:41 PM.

  • #2
    I think before you set the clocks you need to set the performance level to manual. So for example:

    $ echo manual | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level

    $ echo 3 | sudo tee /sys/class/drm/card0/device/pp_dpm_sclk

    Try that out and verify in another terminal with: $ watch -d -n 1 sudo tail -n 15 /sys/kernel/debug/dri/0/amdgpu_pm_info

    Comment


    • #3
      Originally posted by perpetually high View Post
      I think before you set the clocks you need to set the performance level to manual. So for example:

      $ echo manual | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_level

      $ echo 3 | sudo tee /sys/class/drm/card0/device/pp_dpm_sclk

      Try that out and verify in another terminal with: $ watch -d -n 1 sudo tail -n 15 /sys/kernel/debug/dri/0/amdgpu_pm_info
      Thanks for the tip. I did that in the radeon profile before, but just in case i tried your proposed method, sadly it did not work. It keeps holding 1300mhz. The gpu only clocks down when i lower the resolution or the refresh rate of 4k resolution.

      Comment


      • #4
        That's interesting. I wonder what the "minimum" required clock is to support a 4K resolution, even on idle.

        On kernel 4.17 and earlier, I was using ohgodatool to set the clocks, so not sure if you want to give that a shot just to verify for yourself that it can be in fact downclocked with a certain configuration.

        An example usage would be:

        $ sudo ohgodatool -i 0 --core-state 3 --core-clock 1077

        I was overclocking memory, downclocking, and setting the fan with this tool by doing the below:

        $ sudo ohgodatool -i 0 --set-fanspeed 40 --mem-state 1 --mem-clock 2080 --core-state 5 --core-clock 1191

        If I think of anything else, I'll let you know. Definitely seems related to the resolution as you pointed out, since no processes seems to be utilizing the GPU.

        This may have also gotten fixed in the latest Xorg 1.20.1/Mesa 18.3, not sure how all those play together with drm/amdgpu (I see you tried running latest 4.19 also), but I'd try ohgodatool if you don't mind running the 4.17 kernel (which is EOL actually now). Good luck.

        Comment


        • #5
          Originally posted by perpetually high View Post
          That's interesting. I wonder what the "minimum" required clock is to support a 4K resolution, even on idle.

          On kernel 4.17 and earlier, I was using ohgodatool to set the clocks, so not sure if you want to give that a shot just to verify for yourself that it can be in fact downclocked with a certain configuration.

          An example usage would be:

          $ sudo ohgodatool -i 0 --core-state 3 --core-clock 1077

          I was overclocking memory, downclocking, and setting the fan with this tool by doing the below:

          $ sudo ohgodatool -i 0 --set-fanspeed 40 --mem-state 1 --mem-clock 2080 --core-state 5 --core-clock 1191

          If I think of anything else, I'll let you know. Definitely seems related to the resolution as you pointed out, since no processes seems to be utilizing the GPU.

          This may have also gotten fixed in the latest Xorg 1.20.1/Mesa 18.3, not sure how all those play together with drm/amdgpu (I see you tried running latest 4.19 also), but I'd try ohgodatool if you don't mind running the 4.17 kernel (which is EOL actually now). Good luck.
          Thanks, i will try that out tomorrow when i get back from work.

          Comment


          • #6
            Originally posted by debianxfce View Post
            Use Debian testing/sid Xfce, the AMD drm-next04.20-wip kernel and Oibaf ppa Mesa git ubuntu cosmic version. With the mainline stuff it is lottery if drivers are working. Before reporting problems this is important, bugs might be fixed already. How-to: https://www.youtube.com/watch?v=G3AxgH2bbsE
            I tried to upgrade with the Oibaf ppa stuff, but got:

            Code:
            libdrm-amdgpu1:i386 : Depends: libc6:i386 (>= 2.28) but 2.27-6 is to be installed
            libgl1-mesa-dri : Depends: libllvm7 (>= 1:7~svn298832-1~) but it is not installable
            libgl1-mesa-dri:i386 : Depends: libc6:i386 (>= 2.28) but 2.27-6 is to be installed
            Depends: libllvm7:i386 (>= 1:7~svn298832-1~) but it is not installable
            E: Unable to correct problems, you have held broken packages.
            Also, i tried to boot latest ubuntu from an usb flash drive and everything seems to work fine on ubuntu, the gpu drops down to normal clocks on 4k 60hz. Seems like i will need to nuke debian out of my ssd. A bit of a shame, since i have a bunch of configurations and scripts.

            Comment


            • #7
              I'm running 4.18 and Manjaro KDE. My RX480 varies between 300-1000Mhz with a dual 4k setup. Couple youtube tabs open and playing, mpsyt streaming, rdp windows, kdevelop, couple spice windows so not idle.
              GFX Clocks and Power:
              2000 MHz (MCLK)
              1010 MHz (SCLK)
              300 MHz (PSTATE_SCLK)
              300 MHz (PSTATE_MCLK)
              1000 mV (VDDGFX)
              23.208 W (average GPU)

              GPU Temperature: 51 C
              GPU Load: 0 %
              Last edited by dfyt; 13 September 2018, 03:53 AM.

              Comment


              • #8
                Originally posted by debianxfce View Post

                Upgrade to Debian Sid first and install Oibaf ppa repository correctly .
                libllvm7 is in version: 1:7~+rc2-1~exp2ubuntu1~oibaf~c. When you like Debian, you can use my distribution: https://www.youtube.com/watch?v=fKJ-IatUfis

                The Oibaf ppa cosmic version is bind to libc6 2.28 but that is only in the ubuntu repository. Install the Oibaf ppa bionic version.

                Added unstable repository upgraded everything on the system, installed all the Oibaf ppa cosmic stuff, deleted gnome3 and now with only i3 window manager left i'm still in the same position. Since i already tried 4.17, 4.18 and 4.19 kernels i'm not sure if it's worth the hassle trying to install the drm-next04.20-wip only to find that it does nothing for the issue. Seems like i would need to compile it myself.

                It does not seem like it would be a hardware issue also, since on ubuntu it goes down to 300mhz, though the average gpu consumption reported is still really high (30W), so maybe it's both a software and a hardware issue?

                Comment


                • #9
                  Originally posted by debianxfce View Post


                  Here you have a deb package of that kernel:http://s000.tinyupload.com/index.php...51585818662575

                  Install latest AMD firmware files too: https://packages.debian.org/sid/firmware-amd-graphics
                  Thanks. Installed the kernel, had the firmware already installed and still the same situation. Such a strange issue, considering that the whole gpu driver stack is now from oibaf and i've tried various kernels.

                  Comment


                  • #10
                    Originally posted by debianxfce View Post

                    Check that you are using amdgpu drivers and not modesetting or old Mesa.
                    Code:
                    xfce@ryzenpc:~$ inxi -bM
                    System:
                    Host: ryzenpc Kernel: 4.19.0-rc1+ x86_64 bits: 64 Desktop: Xfce 4.12.4
                    Distro: Debian GNU/Linux buster/sid
                    Machine:
                    Type: Desktop Mobo: ASUSTeK model: PRIME B350M-K v: Rev X.0x
                    serial: <root required> UEFI: American Megatrends v: 4013 date: 06/22/2018
                    CPU:
                    6-Core: AMD Ryzen 5 1600 type: MT MCP speed: 2722 MHz
                    Graphics:
                    Device-1: AMD Baffin [Polaris11] driver: amdgpu v: kernel
                    Display: x11 server: X.Org 1.20.1 driver: amdgpu,ati
                    unloaded: fbdev,modesetting,vesa resolution: 1920x1080~60Hz
                    OpenGL: renderer: Radeon RX 560 Series (POLARIS11 DRM 3.27.0 4.19.0-rc1+
                    LLVM 7.0.0)
                    v: 4.5 Mesa 18.3.0-devel
                    My Asus RX560 2GB idles at 300Mhz.
                    Ok, so i think i solved the issue... Kind of.....

                    I installing arch linux to see if things got fixed, but noticed that nothing changed and gpu was still going at 1300mhz core clock (until execute startx it even consumes about 70w in idle). So after doing pretty much everything i could, i just started perusing the amdgpu arch linux wiki page where it mentioned atomic mode setting. I though that maybe this is not turning on, so i added
                    Code:
                    amdgpu.dc=1
                    as a kernel parameter. That did nothing, so i added
                    Code:
                    amdgpu.dc=0
                    and low and behold - the gpu now has all it's power states functioning and clocks down to 300Mhz...

                    Anyone have any idea why the gpu gets stuck at 1300Mhz when
                    Code:
                     amdgpu.dc=1
                    is set?

                    Comment

                    Working...
                    X