[Bug 29842] Radeon runs very hot

Phillip Susi psusi at cfl.rr.com
Sat Feb 26 07:40:38 PST 2011


On 02/26/2011 03:09 AM, Michel Dänzer wrote:
> On Fre, 2011-02-25 at 12:11 -0500, Phillip Susi wrote:
>>
>> It seems like the GPU is executing a few different microcode kernels
>> that process commands placed into ring buffers.  When the ring buffers
>> are empty and the gui is idle, it seems like the GPU is still busily
>> executing an infinite loop checking for work in the ring buffers.
>
> As has been pointed out by Alex, that's not true to the best of our
> knowledge.

I wonder how that is though.  I see nothing in the R600 microcode 
documentation about a way to halt execution, and it explicitly says it 
does not support interrupts, so I don't see any way for the CP to avoid 
busy waiting other than to be explicitly stopped by the driver.

>> Shouldn't the driver detect the idle condition and issue an
>> r600_cp_stop() to halt execution and stop wasting power?
>
> Feel free to try it, but I wouldn't expect it to make much if any
> difference.

I tried adding a debugfs file to call it and it didn't seem to make any 
difference.

> Did you check that your card runs significantly cooler in the other OS
> before starting all this ruckus? (Though even if it does, the lack of
> clock gating might explain the difference)

I don't even have a working copy of the other OS any more.  It is on my 
old first gen WD raptor fakeraid 0 that the new system's bios and 
Windows driver won't recognize.  Now that you mention it though, I do 
think it always tended to run hot there and I usually underclocked it a 
bit to try and help.  Maybe I just have a poorly designed card with 
insufficient heatsink+fan?

It seems like clock gating, while helpful to maximize power savings, 
should not be needed to stay below critical temperatures when idle.

Strange.  This morning it seems to be running at "only" 66 C instead of 80+.


More information about the dri-devel mailing list