Announcement

Collapse
No announcement yet.

For fglrx using people having idle overheating problems and eco friendly people...

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

  • For fglrx using people having idle overheating problems and eco friendly people...

    While reading radeonhd dev mailing list I stumbled upon a link to a modified version of radeontool that enables setting power saving registers on new radeon adapters. I've tested it with my Radeon 1950Pro, and sure enough, the card is much cooler when idle (about the same as in Windows).

    This version changes a couple of settings in the CLKIND power saving registers of which I believe that the "Auto disable unused pipes' clk" (DYN_SCLK_PWMEN_PIPE in ATI documentation) bit is the most important . When running "./radeontool power low" my glx performance falls from about 12000 FPS to 7000FPS. I've changed the modified radeontool to only enable the 'Auto disable unused pipes clk" power saving bit, and the performance of glxgears came back to 12k FPS level, while retaining a cool device.

    So I've put the radeontool binary in my /usr/local/sbin, did a chown root:root radeontool, and chmod +s radeontool, and made gnome to issue "radeontool power low" command when staring up to workaround the bug in the current fglrx driver.

    Radeon tool commands:
    radeontool power status - show the current status of the power saving registers
    radeontool power low - enable power saving


    I still don't know how to read the temperature sensor data from the card and if anybody knows the relevant registers or other way to access this info, please tell. I used Windows freshly booted after linux and my own fingers to see the temperature differences.

    Temperature without using radeontool: 50 C
    Temperature after using radeontool: 40-41 C

    Link to the radeon hd mailing list:


    Link to the discussion:
    Some time after fglrx 8.27.0 power consumption of fglrx increased. A patched radeontool is able to reduce it back to the old value by turning off unused clocks. Find the radeontool here: http://ww……


    Direct link to the original modified radeon tool:


    My modified version that only turns on disabling of the unused pipes is here EDIT updated version:


    Older version:


    Relevant documentation from ATI:
    Last edited by vrodic; 21 February 2008, 08:32 PM.

  • #2
    Well I must say that I'm impressed. On my Acer 8204Wlmi I used to only get an idle of ~21W, but using this shaved off 1-2 Watts off my power consumption. It actually idles at ~19.3W now.

    The best thing is I can't even measure a performance difference. I'm using fglrx with all the normal power-savings enabled, and even using the full "low" power options I cannot measure a performance difference. Maybe it is because powerplay is already active in fglrx?

    Comment


    • #3
      Originally posted by vrodic View Post
      My modified version that only turns on disabling of the unused pipes is here:
      Great work. Are radeontool maintainers aware of it ?

      Comment


      • #4
        When I try to run either one of these versions, my entire system freezes. Hard reset (poweroff) is the only way to go.

        I've got a Dell Inspiron 6400 (E1505) with an ATI X1400, running Xgl with fglrx version 8.40.4... OS: openSUSE 10.3 x86_64

        Is there any way to use this tool on my system?
        Battery drainage with the X1400 in linux is true hell..

        Comment


        • #5
          Originally posted by gavro View Post
          When I try to run either one of these versions, my entire system freezes. Hard reset (poweroff) is the only way to go.

          I've got a Dell Inspiron 6400 (E1505) with an ATI X1400, running Xgl with fglrx version 8.40.4... OS: openSUSE 10.3 x86_64

          Is there any way to use this tool on my system?
          Battery drainage with the X1400 in linux is true hell..
          I'm not sure how exactly is this chip is special... Maybe there's something in the released specs about that, but I don't have the hardware...

          Comment


          • #6
            Apparently a couple of registers are in a different location on the RV515 (X1400) than they are on the rest of the 5xx family. The ones we have found so far are :

            MC_FB_LOCATION -- 0x04 indirect for all but 515, 0x01 for 515
            MC_AGP_LOCATION -- 0x05 indirect for all but 515, 0x01 for 515

            I suspect that other adjacent registers also moved -- checking now. Also trying to figure out exactly which chips have the different register offsets.
            Last edited by bridgman; 18 January 2008, 01:13 PM.
            Test signature

            Comment


            • #7
              The X1400 is a strange duckling if you ask me... I always see X1300, X1600 and so on, but never any details about X1400 (or to put it differently: strange reports concerning the X1400). And now those registers... What have they done with the X1400? Why is this one 'weird'/different than the other 5xx cards?

              Comment


              • #8
                Just a note of interest, on my Mobility X1600 256MB I notice that "Static screen enable" and "Static screen mode" both seem to return OFF when notebook is only running off the LVDS, and ON when I have an external monitor also connected.

                Just reporting that I think those 2 registers are used wrongly.

                Also, writing to those registers, the values get ignored. (Possibly read-only on my card)

                Edit: I think that this should be well-investigated and added to fglrx as an optional power-saving mode controlled by atieventsd (or something) because it made a considerable difference in thermals on my notebook. Now when idling for a while, the hard-drive is clearly the warmest device in my notebook, the exhaust is roughly skin temperature. Much more comfortable to use on your lap than before.
                Last edited by grigi; 18 January 2008, 02:43 PM.

                Comment


                • #9
                  Originally posted by bridgman View Post
                  Apparently a couple of registers are in a different location on the RV515 (X1400) than they are on the rest of the 5xx family. The ones we have found so far are :

                  MC_FB_LOCATION -- 0x04 indirect for all but 515, 0x01 for 515
                  MC_AGP_LOCATION -- 0x05 indirect for all but 515, 0x01 for 515

                  I suspect that other adjacent registers also moved -- checking now. Also trying to figure out exactly which chips have the different register offsets.
                  Thanks John. I'll try to do a fix later, also please do that checking for the other chips.

                  Regarding the maintaining of the radeontool, I don't think that it's actively maintained, but I'll let the authors know about my changes.

                  Comment


                  • #10
                    Bridgman,

                    Is it possible to enable this behavior by default in the next revision of fglrx?

                    Comment

                    Working...
                    X