Bug#575585: xserver-xorg-video-radeon: [KMS] Crashes when switching VTs

Josselin Mouette joss at debian.org
Thu Apr 1 10:58:14 PDT 2010


Le samedi 27 mars 2010 à 14:39 +0100, Michel Dänzer a écrit : 
> On Sat, 2010-03-27 at 12:52 +0100, Josselin Mouette wrote: 
> > 
> > I don’t really know how to obtain a better backtrace. I haven’t managed 
> > to make it dump core, and using gdb directly on it prevents me from 
> > switching VTs when the server crashes.
> 
> Usually it's best to run gdb from a remote shell.

OK here we go.


Thread 1 (Thread 0x7fefb49ce6f0 (LWP 2431)):
#0  memcpy () at ../sysdeps/x86_64/memcpy.S:191
No locals.
#1  0x00007fefb08ad2aa in RADEONUploadToScreenCS (pDst=<value optimized out>, 
    x=<value optimized out>, y=<value optimized out>, w=<value optimized out>, 
    h=<value optimized out>, src=0xa0 <Address 0xa0 out of bounds>, 
    src_pitch=160) at ../../src/radeon_exa_funcs.c:535
        pScrn = <value optimized out>
        driver_priv = <value optimized out>
        scratch = 0xc5cd10
        dst = 0x7fefb49e5000 <Address 0x7fefb49e5000 out of bounds>
        datatype = <value optimized out>
        dst_domain = 32751
        dst_pitch_offset = <value optimized out>
        bpp = <value optimized out>
        scratch_pitch = 192
        r = <value optimized out>
        i = 1
        __func__ = "RADEONUploadToScreenCS"
#2  0x00007fefb01c8222 in exaHWCopyNtoN (pSrcDrawable=<value optimized out>, 
    pDstDrawable=<value optimized out>, pGC=<value optimized out>, 
    pbox=0x7fffbbfdf770, nbox=0, dx=-596, dy=-527, reverse=0, upsidedown=0)
    at ../../exa/exa_accel.c:527
        src_stride = 160
        pSrcPixmap = 0x16efbb0
        pDstPixmap = 0x971c10
        pSrcExaPixmap = 0x16f0ef0
        src_off_x = 0
        src_off_y = 0
        dst_off_x = 0
        dst_off_y = 0
        srcregion = 0xc17a90
        dstregion = 0xc6c5b0
        ret = <value optimized out>
#3  0x00007fefb01c832d in exaCopyNtoN (pSrcDrawable=<value optimized out>, 
    pDstDrawable=0x9776d0, pGC=<value optimized out>, 
    pbox=<value optimized out>, nbox=<value optimized out>, dx=-596, dy=-527, 
    reverse=0, upsidedown=0, bitplane=0, closure=0x0)
    at ../../exa/exa_accel.c:574
No locals.
#4  0x000000000054cc0d in miCopyRegion (pSrcDrawable=0x16efbb0, 
    pDstDrawable=0x0, pGC=0xa0, pDstRegion=<value optimized out>, dx=-596, 
    dy=<value optimized out>, copyProc=0x7fefb01c8240 <exaCopyNtoN>, 
    bitPlane=0, closure=0xa0) at ../../mi/micopy.c:138
        reverse = 40
        upsidedown = 7
        pbox = 0x7fffbbfdf770
        nbox = 1
        pboxNew1 = <value optimized out>
        pboxNew2 = <value optimized out>
        pboxBase = <value optimized out>
        pboxNext = <value optimized out>
        pboxTmp = <value optimized out>
#5  0x000000000054d11a in miDoCopy (pSrcDrawable=0x16efbb0, 
    pDstDrawable=0x9776d0, pGC=0x1818470, xIn=0, yIn=0, 
    widthSrc=<value optimized out>, heightSrc=40, xOut=596, yOut=527, 
    copyProc=0x7fefb01c8240 <exaCopyNtoN>, bitPlane=0, closure=0x0)
    at ../../mi/micopy.c:338
        prgnSrcClip = 0x0
        freeSrcClip = 0
        prgnExposed = <value optimized out>
        rgnDst = {extents = {x1 = 596, y1 = 527, x2 = 636, y2 = 567}, 
          data = 0x0}
        dx = 12870
        dy = 5279744
        box_x1 = <value optimized out>
        box_y1 = <value optimized out>
        box_x2 = <value optimized out>
        box_y2 = <value optimized out>
        fastSrc = <value optimized out>
        fastDst = <value optimized out>
        fastExpose = 1
#6  0x00007fefb01c6763 in exaCopyArea (pSrcDrawable=0x16efbb0, 
    pDstDrawable=0x9776d0, pGC=0x1818470, srcx=0, srcy=<value optimized out>, 
    width=<value optimized out>, height=40, dstx=596, dsty=527)
    at ../../exa/exa_accel.c:598
No locals.
#7  0x00000000004c84e8 in damageCopyArea (pSrc=0x16efbb0, pDst=0x9776d0, 
    pGC=0x1818470, srcx=<value optimized out>, srcy=<value optimized out>, 
    width=40, height=40, dstx=596, dsty=527)
    at ../../../miext/damage/damage.c:949
        ret = <value optimized out>
        pGCPriv = 0x16f1770
        oldFuncs = 0x7c1860
#8  0x000000000054763d in miDCRestoreUnderCursor (pDev=<value optimized out>, 
    pScreen=0x936180, x=<value optimized out>, y=527, w=40, 
    h=<value optimized out>) at ../../mi/midispcur.c:592
        pBuffer = <value optimized out>
        pSave = 0x16efbb0
        pWin = 0x9776d0
#9  0x000000000056d809 in miSpriteRemoveCursor (pDev=0xa88a80, 
    pScreen=0x936180) at ../../mi/misprite.c:995
        pScreenPriv = 0x949bf0
        pCursorInfo = 0xa9c800
#10 0x000000000056eded in miSpriteReportDamage (pDamage=<value optimized out>, 
    pRegion=0x7fffbbfdfa40, closure=<value optimized out>)
    at ../../mi/misprite.c:278
        pScreen = 0x936180
        pCursorInfo = <value optimized out>
        pDev = 0xa88a80
#11 0x00000000004c575c in damageReportDamage (pDamage=0x949c90, 
    pDamageRegion=0x7fffbbfdfa40) at ../../../miext/damage/damage.c:134
        tmpRegion = {extents = {x1 = -10480, y1 = 168, x2 = 0, y2 = 0}, 
          data = 0x7fefb2b0b9bc}
#12 0x00000000004c5af6 in damageRegionAppend (pDrawable=<value optimized out>, 
    pRegion=<value optimized out>, clip=<value optimized out>, 
    subWindowMode=<value optimized out>) at ../../../miext/damage/damage.c:363
        pScrPriv = 0x949b70
        pDamage = 0x949c90
        pNext = 0x0
        clippedRec = {extents = {x1 = 0, y1 = 0, x2 = 1280, y2 = 1024}, 
          data = 0xc6a040}
        pDamageRegion = 0x7fffbbfdfa40
        pixClip = {extents = {x1 = 0, y1 = 0, x2 = 1280, y2 = 1024}, 
          data = 0x0}
        draw_x = <value optimized out>
        draw_y = 0
        screen_x = 0
        screen_y = 0
#13 0x00000000004c5c28 in damageDamageBox (pDrawable=0x7fefb49e5000, 
    pBox=<value optimized out>, subWindowMode=<value optimized out>)
    at ../../../miext/damage/damage.c:425
        region = {extents = {x1 = 0, y1 = 0, x2 = 1280, y2 = 1024}, 
          data = 0xc69e80}
#14 0x00000000004c6d40 in damagePolyFillRect (pDrawable=0x9776d0, 
    pGC=0x974400, nRects=12, pRects=0xc5e2c0)
    at ../../../miext/damage/damage.c:1402
        box = {x1 = 0, y1 = 0, x2 = 1280, y2 = 1024}
        pRectsTmp = <value optimized out>
        nRectsTmp = <value optimized out>
        pGCPriv = 0x971e90
        oldFuncs = 0x7c1860
#15 0x000000000045ac8a in miPaintWindow (pWin=<value optimized out>, 
    prgn=0xc69f50, what=<value optimized out>) at ../../mi/miexpose.c:670
        pScreen = <value optimized out>
        gcval = {{val = 3, ptr = 0x3}, {val = 1, ptr = 0x1}, {val = 11065104, 
            ptr = 0xa8d710}, {val = 0, ptr = 0x0}, {val = 0, ptr = 0x0}, {
            val = 9763712, ptr = 0x94fb80}}
        gcmask = 13569
        pGC = <value optimized out>
        pbox = 0xc69f50
        prect = 0xc5e2c0
        numRects = 160
        draw_x_off = 0
        draw_y_off = 0
        tile_x_off = <value optimized out>
        tile_y_off = <value optimized out>
        fill = <value optimized out>
        drawable = 0x9776d0
#16 0x000000000045b028 in miWindowExposures (pWin=0x9776d0, prgn=0x16f1340, 
    other_exposed=0x0) at ../../mi/miexpose.c:504
        expRec = {extents = {x1 = -17984, y1 = 124, x2 = 0, y2 = 0}, 
          data = 0x9776d0}
        exposures = 0x16f1340
#17 0x00000000005387d7 in xf86XVWindowExposures (pWin=0x9776d0, 
    reg1=0x16f1340, reg2=<value optimized out>)
    at ../../../../hw/xfree86/common/xf86xv.c:1054
        pScreen = 0x936180
        WinPriv = <value optimized out>
        pPrev = <value optimized out>
        pPriv = <value optimized out>
        AreasExposed = 0
#18 0x00000000005603bb in miHandleValidateExposures (pWin=0x9776d0)
    at ../../mi/miwindow.c:246
        pChild = 0x9776d0
        val = 0x16f1340
        WindowExposures = 0x538750 <xf86XVWindowExposures>
#19 0x000000000050a547 in xf86SetRootClip (pScreen=0x936180, enable=1)
    at ../../../../hw/xfree86/common/xf86Helper.c:1148
        pWin = 0x9776d0
        pChild = <value optimized out>
        WasViewable = 1
        anyMarked = 1
        pLayerWin = 0xbbcfe0
#20 0x00007fefb01c0b4f in exaXorgEnableDisableFBAccess (index=0, enable=1)
    at ../../../../hw/xfree86/exa/examodule.c:99
No locals.
#21 0x0000000000542fb0 in xf86CursorEnableDisableFBAccess (index=0, enable=1)
    at ../../../../hw/xfree86/ramdac/xf86Cursor.c:222
        pDev = 0xa88a80
        pScreen = 0x936180
        ScreenPriv = 0x94dd40
#22 0x0000000000474d8f in xf86VTSwitch (blockData=<value optimized out>, 
    err=<value optimized out>, pReadmask=<value optimized out>)
    at ../../../../hw/xfree86/common/xf86Events.c:554
        i = 0
        prevSIGIO = 1
        pInfo = <value optimized out>
        ih = <value optimized out>
#23 xf86Wakeup (blockData=<value optimized out>, err=<value optimized out>, 
    pReadmask=<value optimized out>)
    at ../../../../hw/xfree86/common/xf86Events.c:299
        LastSelectMask = <value optimized out>
        devicesWithInput = {fds_bits = {0, 140736347502331, 0, 1, 
            140736347372992, 8216416, 8216544, 140667474861663, 
            140736347373056, 2, 8216416, 4610113, 120, 811418071, 0, 4872105}}
        pInfo = <value optimized out>
#24 0x0000000000444fbb in WakeupHandler (result=-1, pReadmask=0x7d5f60)
    at ../../dix/dixutils.c:413
        i = 0
#25 0x0000000000462c25 in WaitForSomething (
    pClientsReady=<value optimized out>) at ../../os/WaitFor.c:232
        i = 160
        waittime = {tv_sec = 0, tv_usec = 15897}
        wt = 0x7fffbbfe0080
        timeout = <value optimized out>
        clientsReadable = {fds_bits = {0 <repeats 16 times>}}
        clientsWritable = {fds_bits = {1073741825, 12630944, 0, 0, 16, 
            8602896368, 48, 140736347373600, 140736347373520, 140736347373716, 
            12970592, 4626076, 0, 4585597, 140733193388108, 0}}
        selecterr = 4
        nready = <value optimized out>
        devicesReadable = {fds_bits = {0, 0, 0, 0, 0, 140736347373444, 
            25165838, 12596416, 140736347373640, 140736347373476, 25165838, 
            12596416, 140736347373672, 4898269, 12596416, 25165838}}
        now = <value optimized out>
        someReady = 0
#26 0x0000000000443752 in Dispatch () at ../../dix/dispatch.c:375
        result = <value optimized out>
        client = 0xc034c0
        nready = -1
        start_tick = 380
#27 0x0000000000425b9a in main (argc=9, argv=0x7d52c8, 
    envp=<value optimized out>) at ../../dix/main.c:285
        i = 1
        alwaysCheckForInput = {0, 1}

Note that once this has happened, this doesn’t happen again. X restarts
fine, and you can switch to tty1 and back. However, if you try to start
a second X instance with gdmflexiserver, it will refuse to launch:

drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:05.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: drmOpenMinor returns 9
drmOpenByBusid: drmGetBusid reports pci:0000:01:05.0
(EE) RADEON(0): [drm] failed to set drm interface version.
(EE) RADEON(0): Kernel modesetting setup failed
(II) UnloadModule: "radeon"
(EE) Screen(s) found, but none have a usable configuration.

Fatal server error:
no screens found

Cheers,
-- 
 .''`.      Josselin Mouette
: :' :
`. `'  “If you behave this way because you are blackmailed by someone,
  `-    […] I will see what I can do for you.”  -- Jörg Schilling
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-driver-ati/attachments/20100401/4e8259f0/attachment.pgp>


More information about the xorg-driver-ati mailing list