Leif,

I have had some problems with the DMA code (not just now but since the 
beginning of the week). Sometimes get lockups and some crashes quite 
easily, others I get bored of jumping around in UT waiting for something 
bad to happen.

But finally I got something - please look at the attached dump - it shows 
the ring contents. There are two things strange in that picture:

  1- In the BM_COMMAND value specified in the table head is 0x400001a0 
while the register says 0x40000038

  2- The value of BM_SYSTEM_MEM_ADDR in the table head and tail is both 
0x00534000. Although this doesn't mean much since the information pointed 
by the tail is garbage left from the previous pass, I have trouble in 
believing in coincidences.

The feeling I get from this is that we are writing to pending buffers 
causing the engine to lock. But I don't see how... This only happened in 
my testbox (which is rather slow). Have you experienced anything like this?

I really wanted to get this straight to make a call for testers. Although 
on my laptop (Pentium III 700 + Mach64 4MB AGP 2x) glxgears just rised a 
single fps with the new DMA, on my testbox (AMD K6 350 + Mach64 8MB AGP 
2x) they've increased from 144 to 235. Tuxracer is about twice the fps 
too. UT not really because the CPU has trouble coping with it, but e.g. on 
my laptop UT is much smoother. The improvements have just begun and we 
really gonna need extensive testing to avoid accumulate bugs and to know 
the impact of the improvements on the performance.

Jos� Fonseca
<6>[drm] 
<6>[drm] : ring head_addr: 0x0045e550 head: 2388 tail: 2896
<6>[drm]   0x0045e500:  0x007ffe48 0x0125c000 0xc0000048 0x00000000
<6>[drm]   0x0045e510:  0x007ffe48 0x00528000 0x40000068 0x00000000
<6>[drm]   0x0045e520:  0x007ffe48 0x01234000 0x40000048 0x00000000
<6>[drm]   0x0045e530:  0x007ffe48 0x004c0000 0x40000068 0x00000000
<6>[drm]   0x0045e540:  0x007ffe48 0x012a8000 0x40000048 0x00000000
<6>[drm]   0x0045e550:  0x007ffe48 0x00534000 0x400001a0 0x00000000 (head)
<6>[drm]   0x0045e560:  0x007ffe48 0x0047c000 0x40000048 0x00000000
<6>[drm]   0x0045e570:  0x007ffe48 0x004f4000 0x40000068 0x00000000
<6>[drm]   0x0045e580:  0x007ffe48 0x01248000 0x40000048 0x00000000
<6>[drm]   0x0045e590:  0x007ffe48 0x01288000 0x40000068 0x00000000
<6>[drm]   0x0045e5a0:  0x007ffe48 0x012c4000 0x40000048 0x00000000
<6>[drm]   0x0045e5b0:  0x007ffe48 0x01244000 0x40000068 0x00000000
<6>[drm]   0x0045e5c0:  0x007ffe48 0x004a4000 0x40000048 0x00000000
<6>[drm]   0x0045e5d0:  0x007ffe48 0x004b0000 0x40000068 0x00000000
<6>[drm]   0x0045e5e0:  0x007ffe48 0x0127c000 0x40000048 0x00000000
<6>[drm]   0x0045e5f0:  0x007ffe48 0x00474000 0x40000138 0x00000000
<6>[drm]   0x0045e600:  0x007ffe48 0x01214000 0x40000048 0x00000000
<6>[drm]   0x0045e610:  0x007ffe48 0x01284000 0x40000068 0x00000000
<6>[drm]   0x0045e620:  0x007ffe48 0x0048c000 0x40000048 0x00000000
<6>[drm]   0x0045e630:  0x007ffe48 0x004e8000 0x40000068 0x00000000
<6>[drm]   0x0045e640:  0x007ffe48 0x004c4000 0x40000048 0x00000000
<6>[drm]   0x0045e650:  0x007ffe48 0x01298000 0x40000068 0x00000000
<6>[drm]   0x0045e660:  0x007ffe48 0x01268000 0x40000048 0x00000000
<6>[drm]   0x0045e670:  0x007ffe48 0x0050c000 0x40000068 0x00000000
<6>[drm]   0x0045e680:  0x007ffe48 0x00520000 0x40000068 0x00000000
<6>[drm]   0x0045e690:  0x007ffe48 0x04064000 0x40000068 0x00000000
<6>[drm]   0x0045e6a0:  0x007ffe48 0x0052c000 0x40000048 0x00000000
<6>[drm]   0x0045e6b0:  0x007ffe48 0x01228000 0x40000068 0x00000000
<6>[drm]   0x0045e6c0:  0x007ffe48 0x01200000 0x40000048 0x00000000
<6>[drm]   0x0045e6d0:  0x007ffe48 0x00514000 0x40000068 0x00000000
<6>[drm]   0x0045e6e0:  0x007ffe48 0x01220000 0x40000048 0x00000000
<6>[drm]   0x0045e6f0:  0x007ffe48 0x06c7c000 0x40000068 0x00000000
<6>[drm]   0x0045e700:  0x007ffe48 0x004c8000 0x40000048 0x00000000
<6>[drm]   0x0045e710:  0x007ffe48 0x00540000 0x40000068 0x00000000
<6>[drm]   0x0045e720:  0x007ffe48 0x01230000 0x40000048 0x00000000
<6>[drm]   0x0045e730:  0x007ffe48 0x004a8000 0x40000068 0x00000000
<6>[drm]   0x0045e740:  0x007ffe48 0x01278000 0x40000048 0x00000000
<6>[drm]   0x0045e750:  0x007ffe48 0x00480000 0x40000068 0x00000000
<6>[drm]   0x0045e760:  0x007ffe48 0x0122c000 0x40000048 0x00000000
<6>[drm]   0x0045e770:  0x007ffe48 0x00490000 0x40000068 0x00000000
<6>[drm]   0x0045e780:  0x007ffe48 0x01240000 0x40000048 0x00000000
<6>[drm]   0x0045e790:  0x007ffe48 0x00538000 0x40000068 0x00000000
<6>[drm]   0x0045e7a0:  0x007ffe48 0x00500000 0x40000048 0x00000000
<6>[drm]   0x0045e7b0:  0x007ffe48 0x004e4000 0x40000068 0x00000000
<6>[drm]   0x0045e7c0:  0x007ffe48 0x012a4000 0x40000048 0x00000000
<6>[drm]   0x0045e7d0:  0x007ffe48 0x004fc000 0x40000068 0x00000000
<6>[drm]   0x0045e7e0:  0x007ffe48 0x04060000 0x40000048 0x00000000
<6>[drm]   0x0045e7f0:  0x007ffe48 0x00498000 0x40000068 0x00000000
<6>[drm]   0x0045e800:  0x007ffe48 0x0129c000 0x40000048 0x00000000
<6>[drm]   0x0045e810:  0x007ffe48 0x00c7c000 0x40000068 0x00000000
<6>[drm]   0x0045e820:  0x007ffe48 0x012cc000 0x40000048 0x00000000
<6>[drm]   0x0045e830:  0x007ffe48 0x0128c000 0x40000068 0x00000000
<6>[drm]   0x0045e840:  0x007ffe48 0x0053c000 0x40000048 0x00000000
<6>[drm]   0x0045e850:  0x007ffe48 0x01280000 0x40000068 0x00000000
<6>[drm]   0x0045e860:  0x007ffe48 0x012a0000 0x40000048 0x00000000
<6>[drm]   0x0045e870:  0x007ffe48 0x0123c000 0x40000068 0x00000000
<6>[drm]   0x0045e880:  0x007ffe48 0x01208000 0x40000048 0x00000000
<6>[drm]   0x0045e890:  0x007ffe48 0x004d4000 0x40000068 0x00000000
<6>[drm]   0x0045e8a0:  0x007ffe48 0x06cb4000 0x40000048 0x00000000
<6>[drm  0x007ffe48 0x01270000 0x40000068 0x00000000
<6>[drm]   0x0045ec80:  0x007ffe48 0x004dc000 0x40000048 0x00000000
<6>[drm]   0x0045ec90:  0x007ffe48 0x0684c000 0x40000068 0x00000000
<6>[drm]   0x0045eca0:  0x007ffe48 0x00494000 0x40000048 0x00000000
<6>[drm]   0x0045ecb0:  0x007ffe48 0x06838000 0x40000068 0x00000000
<6>[drm]   0x0045ecc0:  0x007ffe48 0x00544000 0x40000048 0x00000000
<6>[drm]   0x0045ecd0:  0x007ffe48 0x004bc000 0x400000d0 0x00000000
<6>[drm]   0x0045ece0:  0x007ffe48 0x004ac000 0x40000048 0x00000000
<6>[drm]   0x0045ecf0:  0x007ffe48 0x00518000 0x40000068 0x00000000
<6>[drm]   0x0045ed00:  0x007ffe48 0x00528000 0x40000048 0x00000000
<6>[drm]   0x0045ed10:  0x007ffe48 0x0125c000 0x40000068 0x00000000
<6>[drm]   0x0045ed20:  0x007ffe48 0x004c0000 0x40000048 0x00000000
<6>[drm]   0x0045ed30:  0x007ffe48 0x01234000 0xc0000068 0x00000000
<6>[drm]   0x0045ed40:  0x007ffe48 0x00534000 0x40000048 0x00000000 (tail)
<6>[drm]   0x0045ed50:  0x007ffe48 0x012a8000 0x400001a0 0x00000000
<6>[drm]   0x0045ed60:  0x007ffe48 0x004f4000 0x40000048 0x00000000
<6>[drm]   0x0045ed70:  0x007ffe48 0x0047c000 0x400001a0 0x00000000
<6>[drm] 
<6>[drm]        BM_GUI_TABLE = 0x0045e560
<6>[drm] 
<6>[drm] BM_FRAME_BUF_OFFSET = 0x007ffe48
<6>[drm]  BM_SYSTEM_MEM_ADDR = 0x00534100
<6>[drm]          BM_COMMAND = 0x40000038
<6>[drm] 
<6>[drm]           BM_STATUS = 0x130060ca
<6>[drm]            BUS_CNTL = 0x7b3fa110
<6>[drm]           FIFO_STAT = 0x00000000
<6>[drm]            GUI_STAT = 0x00800201
<6>[drm]            SRC_CNTL = 0x00000f00
<3>[drm:mach64_freelist_get] *ERROR* timeout waiting for buffers: ring head_addr: 
0x0045e550 head: 2388 tail: 2896
<3>[drm:mach64_emit_state] *ERROR* mach64_emit_state: couldn't get buffer in DMAGETPTR
<6>[drm] mach64_do_dma_flush failed! GUI_STAT=0x00800201

Reply via email to