On 5/24/05, Nicolai Haehnle <[EMAIL PROTECTED]> wrote: > Unfortunately, I don't think so. The thing is, all those OUT_RING and > ADVANCE_RING commands do not really call into the hardware immediately; all > they do is write stuff to the ring buffer, but the ring buffer is just some > memory area without any magic of its own. > > Only a call to COMMIT_RING will tell the hardware that new commands are > waiting in the ring buffer, and the only thing we do know is that > *something* in the ring buffer before the last COMMIT_RING causes the chip > to hang. > > So another possible way to investigate this could be: > - Call radeon_do_wait_for_idle() at the end of the COMMIT_RING macro, and > define RADEON_FIFO_DEBUG (this will print out additional information when > wait_for_idle fails) > - Increasingly add COMMIT_RING macros into r300_cmdbuf.c to pinpoint the > exact location of the problem, if at all possible. > > It would be very helpful if you could single out one command we send using > this procedure. > > Note that in the worst case (depending on the actual nature of the lockup in > hardware), those debugging changes could actually *remove* the lockup (e.g. > because they remove a race condition that caused the lockup in the first > place). >
Below a sample of what i get when a lockup occur. There is something that seems strange to me, i saw CP_RB_RTPR change while i am in a lockup and CP_RB_WTPR increase 6 by 6, I haven't let the things live for too much time (about 2mins before reboot) but i looks like it still process ring buffer but slowly. Anyway i must misunderstood this i have to dig up more this drm code to understand it a little more. By the way why radeon_cp_flush is disactivated ? May 24 21:33:25 localhost kernel: [drm:radeon_do_wait_for_idle] *ERROR* failed! May 24 21:33:25 localhost kernel: radeon_status: May 24 21:33:25 localhost kernel: RBBM_STATUS = 0x80010140 May 24 21:33:25 localhost kernel: CP_RB_RTPR = 0x0003fdf0 May 24 21:33:25 localhost kernel: CP_RB_WTPR = 0x00000d95 May 24 21:33:25 localhost kernel: AIC_CNTL = 0x00000000 May 24 21:33:25 localhost kernel: AIC_STAT = 0x00000004 May 24 21:33:25 localhost kernel: AIC_PT_BASE = 0x00000000 May 24 21:33:25 localhost kernel: TLB_ADDR = 0x00000000 May 24 21:33:25 localhost kernel: TLB_DATA = 0x00000000 ------------------------------------------------------- This SF.Net email is sponsored by Yahoo. Introducing Yahoo! Search Developer Network - Create apps using Yahoo! Search APIs Find out how you can build Yahoo! directly into your own Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005 -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel