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