-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,


I'm seeing a lockup on RV250 (M9) that I thought might be related to the other 
r200 problems that have been cropping up recently.  These occurred using 
Debian's XFree86 server (4.3.0.dfsg.1-6) and kernel 2.6.5 and 2.6.7.

The issue can be reproduced as follows:
1. Download Celestia (celestia.sourceforge.net) CVS and compile.
2. Launch celestia.
3. Visit Apollo 11 by typing "Enter, Apollo 11, Enter, G"

It happens every time for me.

The chip appears to hang with the following RBBM_STATUS: 0x80316100.
The CP_RB_[R|W]PTR registers also freeze.


The backtrace from X is as follows:


(gdb) bt
#0  0x4019da44 in ioctl () from /lib/tls/libc.so.6
#1  0x084b6c7c in drmDMA (fd=5, request=0xbffff610) at xf86drm.c:796
#2  0x082fe23b in RADEONCPGetBuffer (pScrn=0x8b5c518) at radeon_accel.c:490
#3  0x082f8e32 in RADEONSetupForSolidFillCP (pScrn=0x8b5c518, color=2271897,
    rop=3, planemask=4294967295) at radeon_accelfuncs.c:215
#4  0x083734e1 in XAAFillSolidRects (pScrn=0x8b5c518, fg=2271897, rop=3,
    planemask=4294967295, nBox=1, pBox=0x8d03488) at xaaFillRect.c:383
#5  0x08380d13 in XAAPaintWindow (pWin=0x8ccd9d0, prgn=0x8d03488, what=0)
    at xaaPaintWin.c:70
#6  0x0862c565 in miSpritePaintWindowBackground (pWin=0x8ccd9d0,
    pRegion=0x8d03488, what=0) at misprite.c:845
#7  0x0860e425 in miWindowExposures (pWin=0x8ccd9d0, prgn=0x8d03488,
    other_exposed=0x0) at miexpose.c:536
#8  0x0848f5bd in xf86XVWindowExposures (pWin=0x8ccd9d0, reg1=0x8d03488,
    reg2=0x0) at xf86xv.c:1035
#9  0x088ff248 in DRIWindowExposures (pWin=0x8ccd9d0, prgn=0x8d03488,
    bsreg=0x0) at dri.c:1522
#10 0x0860507c in miHandleValidateExposures (pWin=0x8ccd9d0) at miwindow.c:468
#11 0x084fa6bf in UnmapWindow (pWin=0x8cddb60, fromConfigure=0)
    at window.c:3103
#12 0x084d0b78 in ProcUnmapWindow (client=0x8c6c830) at dispatch.c:722
#13 0x084d02ec in Dispatch () at dispatch.c:450
#14 0x084e7860 in main (argc=5, argv=0xbffffde4, envp=0xbffffdfc) at 
main.c:469


- From Frame #1:

$2 = {context = 1, send_count = 0, send_indices = 0x0, send_sizes = 0x0,
  flags = 0, request_count = 1, request_size = 65536,
  request_indices = 0xbffff608, request_sizes = 0xbffff604, granted_count = 0}


EIP at:
    do {
        ret = ioctl( fd, DRM_IOCTL_DMA, &dma );
    } while ( ret && errno == EAGAIN && i++ < DRM_DMA_RETRY );

(ret is -EBUSY after each call during the lockup)


It seems that this ioctl causes the kernel to simply execute the following 
repeatedly:
- - radeon_cp_buffers
  - radeon_cp_get_buffers
    - radeon_freelist_get

I guess the chip locks up somewhere prior to this, and the driver only notices 
it when it runs out available buffers or something.  Is there any way to 
determine exactly which operation locks the chip?  I can probably extract the 
contents of the ring buffer after the lock up if it will help.



- -- Andrew
-----BEGIN PGP SIGNATURE-----
Comment: Key ID: EC3F6CCD (www.keyserver.net)

iD8DBQFBC0KeTHKGaOw/bM0RAoU/AKCPfuxwBfB+EJ7dfg7sCngCbZgJAgCgh42S
X1qPHBRdCAm5gfiuQ1yVqIQ=
=dg7Q
-----END PGP SIGNATURE-----


-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to