Announcement

Collapse
No announcement yet.

More Radeon Power Management Improvements

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

  • #21
    The two patchsets work great, fan speed is greatly reduced and the clocks stay at 250MHz most of the time.

    I'd really like to see this in the 2.6.35 kernel!

    Comment


    • #22
      Originally posted by LiquidAcid View Post
      The two patchsets work great, fan speed is greatly reduced and the clocks stay at 250MHz most of the time.

      I'd really like to see this in the 2.6.35 kernel!
      You've applied it against Linus' git or 2.6.34?

      Comment


      • #23
        I wonder if it is possible to completely disable a PCIe GPU so it draws nearly no power at all (~1W would be fine) and only let an onboard GPU draw the desktop. So if I want to game, I XEN passthrough the sleeping card to a gaming OS.
        Heck I would even go so far and hardwire a switch to the power cords, but I'm not sure if the card would like me flipping the switch while the computer is running...

        Comment


        • #24
          Originally posted by Neuro View Post
          You've applied it against Linus' git or 2.6.34?
          Against drm-next, like instructed.

          Comment


          • #25
            Hi,

            I just compiled a fresh Linux kernel on top of Ubuntu 10.04 from commit id 7a1ffce50373c177d3f6eecce52badc40c90e1dd from drm-radeon-next. When running on a ATI Radeon Mobility HD2400, I am experiencing some issues:
            1. The screen flickers while PM state changes.
            2. The GPU does not upclock.
            3. The system locks up.


            My dmesg shows messages like "[drm] GUI not idle!!!" and "not in vbl on entry / exit".

            Is there any way I could help debugging?

            Comment


            • #26
              There was some discussion about the "GUI not idle!!!" issue on #radeon earlier today.

              I think it's next on Matthew G's list after some rv515 problems and explaining to people that #radeon is not for people having trouble with their Vista systems
              Test signature

              Comment


              • #27
                Heh, thanks bridgman

                Comment


                • #28
                  The gui idle interrupts don't seem to work properly on some older chips. So we just check for idle when we reclock rather than waiting for the interrupt. If the engine happens to be busy, we bail and try again the next time. That message is just telling you that it couldn't reclock since the engine wasn't idle when it tried.

                  Comment


                  • #29
                    So, a little feedback:

                    Got Lenovo Ideapad U330 here with Radeon 3450 and Intel 4500MHD. I'm running a kernel build form today's drm-radeon-testing (which AFAIK has the above patches included) on current Arch Linux with KDE 4.4.

                    My state table is:
                    Code:
                    [drm] Clocks initialized !
                    [drm] 6 Power State(s)
                    [drm] State 0  (default)
                    [drm]   16 PCIE Lanes
                    [drm]   3 Clock Mode(s)
                    [drm]           0 engine/memory: 500000/700000
                    [drm]           1 engine/memory: 500000/700000
                    [drm]           2 engine/memory: 500000/700000
                    [drm] State 1 Performance 
                    [drm]   16 PCIE Lanes
                    [drm]   Single display only
                    [drm]   3 Clock Mode(s)
                    [drm]           0 engine/memory: 110000/396000
                    [drm]           1 engine/memory: 300000/396000
                    [drm]           2 engine/memory: 500000/700000
                    [drm] State 2 Battery 
                    [drm]   16 PCIE Lanes
                    [drm]   Single display only
                    [drm]   3 Clock Mode(s)
                    [drm]           0 engine/memory: 110000/396000
                    [drm]           1 engine/memory: 110000/396000
                    [drm]           2 engine/memory: 300000/396000
                    [drm] State 3  
                    [drm]   16 PCIE Lanes
                    [drm]   3 Clock Mode(s)
                    [drm]           0 engine/memory: 300000/400000
                    [drm]           1 engine/memory: 550000/700000
                    [drm]           2 engine/memory: 550000/700000
                    [drm] State 4 Performance 
                    [drm]   16 PCIE Lanes
                    [drm]   3 Clock Mode(s)
                    [drm]           0 engine/memory: 337000/700000
                    [drm]           1 engine/memory: 337000/700000
                    [drm]           2 engine/memory: 500000/700000
                    [drm] State 5 Battery 
                    [drm]   16 PCIE Lanes
                    [drm]   3 Clock Mode(s)
                    [drm]           0 engine/memory: 300000/396000
                    [drm]           1 engine/memory: 300000/396000
                    [drm]           2 engine/memory: 300000/396000
                    Observations:
                    By default the state is initialized to 1.0. This gives a massive reduction of 5W measured by powertop (23W vs 18W on idle system).

                    Unfortunately state 1.0 (and state 2.0) causes Kwin effects (like slide or present windows) work horribly horribly slow, same thing with scrolling in Firefox. After switching to anything that has a level 0 clock of more than 110MHz (like state 5.0) all is silky smooth.

                    Multi monitor setup. If running states 1.0 or 2.0 it causes vertical lines on the external HDMI display. When switching to any other state the disappear.

                    I'm also getting
                    Code:
                    [drm] GUI not idle!!!
                    I thought it was a problem with older systems. Is 3450 considered old?

                    Thoughts, wishes, questions:
                    1. Is it possible to modify the power state table so that states 1.0 and 2.0 have a but higher clock thatn 110MHz (so that KWin works smoothly) or is set in hardware?
                    2. Would it be possible for radeon to monitor ACPI events _in_kernel_ and switch modes accordingly and differentiating between non-multi and multi monitor setups? I mean it wouldn't be hard to do it in userspace, but it would be a lot of scripting
                    3. Could the messages printed in dmesg be a little bit more descriptory with a possibility of turning them off via module parameter? I mean dmesg is littered with messages as vogue as:
                    Code:
                    [drm] Setting: e: 11000
                    Overall, GREAT WORK GUYS!

                    Comment


                    • #30
                      The gui idle interrupt can be re-enabled for r6xx+; it works fine on those chips. Just older ones seem to be problematic. I just disabled it for testing on everything for testing. We should just switch to waiting on a fence. That will work on all asics.

                      The driver is supposed to switch to an appropriate power mode depending on the number of monitors attached, but there are likely still bugs in that area.

                      Comment

                      Working...
                      X