Bug 32931

Summary: Sluggish desktop with BARTS and power_profile = low
Product: DRI Reporter: Aidan Marks <aidan>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: medium    
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg log
none
dmesg none

Description Aidan Marks 2011-01-09 01:39:48 UTC
Radeon 6870 with latest d-r-t, git mesa/ddx.  The whole desktop experience with the low power_profile is rather sluggish.  Setting it to default/high fixes it, but also chews up another ~50W of power - no thanks.  Upgraded from rv790 which worked fine with the low power_profile.

Also tried "mid" just to see, but dmesg says forced high.
Comment 1 Alex Deucher 2011-01-09 09:33:30 UTC
please attach your dmesg and xorg log.  I suspect the forcing to high your are talking about is the display watermarks rather than the power state which is unrelated.
Comment 2 Aidan Marks 2011-01-09 11:41:40 UTC
Created attachment 41806 [details]
xorg log
Comment 3 Aidan Marks 2011-01-09 11:50:01 UTC
Created attachment 41808 [details]
dmesg
Comment 4 Aidan Marks 2011-01-09 11:56:53 UTC
mid and high profiles seem fine.

vger 0000:02:00.0 # echo low > power_profile
vger 0000:02:00.0 # cat power_profile
low
vger 0000:02:00.0 # #sluggish desktop
vger 0000:02:00.0 # echo mid > power_profile
vger 0000:02:00.0 # cat power_profile
mid
vger 0000:02:00.0 # #all good
vger 0000:02:00.0 # echo high > power_profile
vger 0000:02:00.0 # cat power_profile
high
vger 0000:02:00.0 # #all good
vger 0000:02:00.0 #

and they make a difference at the power socket for the whole system, so they are doing something:

low   ~128W
mid   ~168W
high  ~182W

vger 0000:02:00.0 # dmesg|tail
[   63.529986] uhci_hcd 0000:00:1d.1: reserve dev 2 ep81-INT, period 2, phase 1, 106 us
[   63.536962] uhci_hcd 0000:00:1d.2: reserve dev 2 ep81-INT, period 2, phase 1, 106 us
[  545.127205] [drm] force priority to high
[  603.485236] [drm] force priority to high
[  641.009436] [drm] force priority to high
[  681.913967] [drm] force priority to high
[  730.360570] [drm] force priority to high
[  925.937736] [drm] force priority to high
[  993.013847] [drm] force priority to high
[ 1027.752844] [drm] force priority to high
vger 0000:02:00.0 # 

ok this may be unrelated but it's writing this message every profile change.
Comment 5 Alex Deucher 2011-01-09 12:19:13 UTC
(In reply to comment #4)

> [ 1027.752844] [drm] force priority to high
> 
> ok this may be unrelated but it's writing this message every profile change.

Those are unrelated to the power state.  As to the bug in general, performance will be lower in lower power states since the clocks are lower.
Comment 6 Aidan Marks 2011-01-09 13:08:10 UTC
ok so why does the low power profile work fine on rv790 but not on barts?  on barts, low seems to be "too low", e.g. it takes about 3 seconds to expand and draw a dolphin window in kde. clicking on a tab in firefox seems to take about 3/4 of a second to appear.  it takes 1-1.5 seconds to show the kde menu.  sometimes I reclick on things because I think nothing happened.  the desktop response is very jerky, reminds me of graphics from over 10 years ago.
Comment 7 Alex Deucher 2011-01-09 13:11:03 UTC
(In reply to comment #6)
> ok so why does the low power profile work fine on rv790 but not on barts?  on
> barts, low seems to be "too low", e.g. it takes about 3 seconds to expand and
> draw a dolphin window in kde. clicking on a tab in firefox seems to take about
> 3/4 of a second to appear.  it takes 1-1.5 seconds to show the kde menu. 
> sometimes I reclick on things because I think nothing happened.  the desktop
> response is very jerky, reminds me of graphics from over 10 years ago.

The power modes are specified by oems and vary from card to card.  Your rv790 likely has higher clocks in it's low power mode.  The number of active displays also plays a factor in the clocks that are selected; e.g., if you have 2 displays the clocks are generally higher than with one display.
Comment 8 Aidan Marks 2011-01-09 14:50:34 UTC
Hi Alex, I have just a single head display.  How can I override the values specified by the oem (powercolor in my case).  Their values for low don't work for me.  I suspect I need something between their low and mid.  or can a power quirk be added for this card?

Also wondering what the values are.  I turned on drm.debug=1 but couldn't see any clock/mem debug output, just voltage:

[  426.411143] [drm:evergreen_pm_misc], Setting: v: 950

Tried dynpm method but didn't see anything interesting either.  Also noticed that dynpm draws slightly more power than mid at idle.
Comment 9 Alex Deucher 2011-01-09 18:10:23 UTC
If you want to add something custom you'll have to hard code it in the driver yourself.  Be careful though, the power states can be touchy and certain clock/voltage combinations don't work well together and the fan/cooling profile is tied in to the clocks.  Your best bet is to stick with the oem values.  If low is not performant enough for you, then stick with mid.  dynpm dynamically switches between states based on GPU load while the profiles (low/mid/high/default) are just static states.
Comment 10 Aidan Marks 2011-01-09 19:05:14 UTC
Hi Alex - I tried dynpm to see if it would be better suited than using static profiles but it doesn't seem to go any lower than mid in terms of total power consumption at idle. surely, when there the system is idle, low should be selected?
Comment 11 Alex Deucher 2011-01-09 20:01:07 UTC
(In reply to comment #10)
> Hi Alex - I tried dynpm to see if it would be better suited than using static
> profiles but it doesn't seem to go any lower than mid in terms of total power
> consumption at idle. surely, when there the system is idle, low should be
> selected?

It goes to between mid and high as low doesn't work properly on some systems.  low is only selected when the diplays are off or when selected via the low profile.
Comment 12 Aidan Marks 2011-02-18 22:56:05 UTC
Just a follow up on this.  After updating to the latest d-r-t/ddx/mesa (and kde 4.6.0) the low profile is now working much better (to the point it is usable again).  One assumes then that the degradation was not a direct result of the oem settings.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.