2011/2/26 Phillip Susi <psusi@xxxxxxxxxx>: > 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. Changing the wptr is a trigger to start the cp. When the rptr and wptr are equal the cp is idle. See chapter 5 of the r5xx acceleration guide as I mentioned earlier. > >>> 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's possible. The default clocks are designed to be safe however even if the temperature seems a bit high. > > 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+. Make sure you clean out the fan and heatsink if a lot of dust has built up in there. Alex _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel