Am 20.12.2011 22:50, schrieb Alex Deucher:
[...]
[drm:radeon_pm_print_states], 4 Power State(s) [drm:radeon_pm_print_states], State 0: Default [drm:radeon_pm_print_states], Default [drm:radeon_pm_print_states], 16 PCIE Lanes [drm:radeon_pm_print_states], 3 Clock Mode(s) [drm:radeon_pm_print_states], 0 e: 800000 m: 1250000 v: 1060 No display only [drm:radeon_pm_print_states], 1 e: 800000 m: 1250000 v: 1060 [drm:radeon_pm_print_states], 2 e: 800000 m: 1250000 v: 1060
This first state is the default/boot state.
[drm:radeon_pm_print_states], State 1: Performance [drm:radeon_pm_print_states], 16 PCIE Lanes [drm:radeon_pm_print_states], 3 Clock Mode(s) [drm:radeon_pm_print_states], 0 e: 250000 m: 150000 v: 900 No display only [drm:radeon_pm_print_states], 1 e: 500000 m: 1250000 v: 1000 [drm:radeon_pm_print_states], 2 e: 800000 m: 1250000 v: 1060
This is the single head performance state.
[drm:radeon_pm_print_states], State 2: Default [drm:radeon_pm_print_states], 16 PCIE Lanes [drm:radeon_pm_print_states], 3 Clock Mode(s) [drm:radeon_pm_print_states], 0 e: 500000 m: 1250000 v: 1000 No display only [drm:radeon_pm_print_states], 1 e: 500000 m: 1250000 v: 1000 [drm:radeon_pm_print_states], 2 e: 725000 m: 1250000 v: 1060 [drm:radeon_pm_print_states], State 3: Default [drm:radeon_pm_print_states], 16 PCIE Lanes [drm:radeon_pm_print_states], 3 Clock Mode(s) [drm:radeon_pm_print_states], 0 e: 500000 m: 1250000 v: 1000 No display only [drm:radeon_pm_print_states], 1 e: 500000 m: 1250000 v: 1000 [drm:radeon_pm_print_states], 2 e: 725000 m: 1250000 v: 1060
These last two are most likely special video playback states.
[drm] radeon: power management initialized [drm] fb mappable at 0xC0142000 [drm] vram apper at 0xC0000000 [drm] size 8294400 [drm] fb depth is 24 [drm] pitch is 7680 fbcon: radeondrmfb (fb0) is primary device [drm:radeon_set_power_state], Setting: e: 80000 [drm:radeon_set_power_state], Setting: m: 125000 Console: switching to colour frame buffer device 240x67 fb0: radeondrmfb frame buffer device drm: registered panic notifier [drm] Initialized radeon 2.12.0 20080528 for 0000:01:00.0 on minor 0
There are three Default and one Performance State. How can they be related to the /sys profile entry? Further, how are the ones for multi-display configuration chosen?
There's only 1 default state. The code to print out the tables says "default" by default if there is no other attribute set. Most cards have two performance states: one for multi-head and one for single head. Since there is no multi-head power state, the driver uses the default profile for multi-head.
IIRC, the ATI fglrx driver seems to use the same strategy as r600. Needless to say that I'm not very fond of this strategy. I didn't check what state the windows driver chooses, but I would be surprised if it does something different.
On systems like this it might be better to use the last profile for multi-head.
Ok, for now I changed radeon_pm.c to always use the single-head profile for low and mid. However, selecting the last profile as you suggested would not help in my case, as it is the same as single-profile mid and causes the fan to spin up to definitely audible levels.
I did not notice any performance difference between low and mid for usual desktop work with desktop fx enabled. The card seems to be able to handle two monitors in single-head low power profile just fine. This might change when you connect more than two monitors.
BTW: I guess there is a typo somewhere in the drm debug code? Evidently, the last 0 is missing here: [drm:radeon_set_power_state], Setting: e: 80000 [drm:radeon_set_power_state], Setting: m: 125000
The driver stores clocks in 10 khz units.
Thanks for clarification.
Harald