Bug#366245: X crashes with Sig 11 when switching from console to+GUI using Alt + Fn keys
On Sat, Dec 23, 2006 at 02:31:56PM -0500, David Nusinow wrote:
>
> That said, let's try to actually fix the problem. The best thing to do
> would be to get a full backtrace. You'll want to build the server and
> driver with debugging symbols enabled. These are stock debhelper packages,
> so building with DEB_BUILD_OPTIONS set to nostrip (as per dh_strip(1)) will
> work. Then if you follow the basic instructions at
> http://wiki.x.org/wiki/DebuggingTheXserver you can get the backtraces. We
> should be able to go from there. Sorry we don't have -dbg packages, but
> several people vetoed them as archive bloat, although I'll probably be
> making a server one for etch.
It seems be much harder to reproduce when gdb is attached.
All I get from this is, that it seems to have had a 2 second timeout.
I have no idea from which point it starts to count those 2 seconds.
What I notice when switching is that it does take some time before it
actually redraws the screen, and that might be in the order of 2 seconds.
What I always notice when it's crashing is that it only draws the bottom
half of the screen, and the upper half is black.
I'm going to try with a higher timeout, and see what results this gives.
This seems like a good candidate, since it's timing related, not everybody
has the problem, and I might have a slower machine.
Anyway, I finally got a stack trace:
#0 0xb7f3a410 in ?? ()
#1 0xbfc2589c in ?? ()
#2 0x00000006 in ?? ()
#3 0x00000bc1 in ?? ()
#4 0xb7d51811 in raise () from /lib/tls/i686/cmov/libc.so.6
#5 0xb7d52fb9 in abort () from /lib/tls/i686/cmov/libc.so.6
#6 0x081a299c in FatalError (f=0xb7bbc6fc "lockup\n") at ../../os/log.c:556
#7 0xb7b8f83c in I830WaitLpRing (pScrn=0x81fd0d8, n=131064,
timeout_millis=2000) at ../../src/i830_accel.c:115
#8 0xb7b90092 in I830Sync (pScrn=0x81fd0d8) at ../../src/i830_accel.c:166
#9 0xb79bfe2d in XAALeaveVT () from /usr/lib/xorg/modules/libxaa.so
#10 0x080d7e79 in xf86XVLeaveVT (index=0, flags=0)
at ../../../../hw/xfree86/common/xf86xv.c:1278
#11 0xb7c247cf in glxDRILeaveVT ()
from /usr/lib/xorg/modules/extensions/libglx.so
#12 0x0809f548 in AbortDDX () at ../../../../hw/xfree86/common/xf86Init.c:1308
#13 0x081a2473 in AbortServer () at ../../os/log.c:408
#14 0x081a2987 in FatalError (f=0xb7bbc6fc "lockup\n") at ../../os/log.c:554
#15 0xb7b8f83c in I830WaitLpRing (pScrn=0x81fd0d8, n=131064,
timeout_millis=2000) at ../../src/i830_accel.c:115
#16 0xb7b90092 in I830Sync (pScrn=0x81fd0d8) at ../../src/i830_accel.c:166
#17 0xb79c6502 in XAACopyAreaFallback () from /usr/lib/xorg/modules/libxaa.so
#18 0xb79c77f7 in XAACopyArea () from /usr/lib/xorg/modules/libxaa.so
#19 0x081566cd in damageCopyArea (pSrc=0x8397af8, pDst=0x8393b60,
pGC=0x8391e28, srcx=0, srcy=0, width=280, height=20, dstx=0, dsty=0)
at ../../../miext/damage/damage.c:790
#20 0x08084da9 in ProcCopyArea (client=0x835c360) at ../../dix/dispatch.c:1743
#21 0x08086cab in Dispatch () at ../../dix/dispatch.c:459
#22 0x0806e699 in main (argc=11, argv=0xbfc261f4, envp=0x0)
at ../../dix/main.c:479
(gdb) frame 6
#6 0x081a299c in FatalError (f=0xb7bbc6fc "lockup\n") at ../../os/log.c:556
556 abort();
(gdb) up
#7 0xb7b8f83c in I830WaitLpRing (pScrn=0x81fd0d8, n=131064,
timeout_millis=2000) at ../../src/i830_accel.c:115
115 FatalError("lockup\n");
(gdb) p last_head
$5 = 12
(gdb) p *ring
$7 = {tail_mask = 1, mem = {Start = -268374161, End = -268377405,
Size = -268374161, Physical = 4026593135, Offset = 4026597204,
Alignment = 4026564616, Key = -268374161, Pool = 0xf000fea5},
virtual_start = 0xf000e987 <Address 0xf000e987 out of bounds>,
head = -268374161, tail = -268374161, space = -268374161}
(gdb) p n
$8 = 131064
(gdb) up
#8 0xb7b90092 in I830Sync (pScrn=0x81fd0d8) at ../../src/i830_accel.c:166
166 I830WaitLpRing(pScrn, pI830->LpRing->mem.Size - 8, 0);
(gdb) p pScrn
$17 = (ScrnInfoPtr) 0x81fd0d8
(gdb) p *pScrn
$19 = {driverVersion = 4000, driverName = 0xb7bbc87e "i810",
pScreen = 0x8201350, scrnIndex = 0, configured = 1, origIndex = 0,
imageByteOrder = 0, bitmapScanlineUnit = 32, bitmapScanlinePad = 32,
bitmapBitOrder = 0, numFormats = 0, formats = {{depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}, {depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}, {depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}, {depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}, {depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}, {depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}, {depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}, {depth = 0 '\0',
bitsPerPixel = 0 '\0', scanlinePad = 0 '\0'}}, fbFormat = {
depth = 16 '\020', bitsPerPixel = 16 '\020', scanlinePad = 32 ' '},
bitsPerPixel = 16, pixmap24 = Pix24DontCare, depth = 16,
depthFrom = X_CONFIG, bitsPerPixelFrom = X_PROBED, weight = {red = 5,
green = 6, blue = 5}, mask = {red = 63488, green = 2016, blue = 31},
offset = {red = 11, green = 5, blue = 0}, rgbBits = 6, gamma = {red = 1,
green = 1, blue = 1}, defaultVisual = 4, maxHValue = 0, maxVValue = 0,
virtualX = 1024, virtualY = 768, xInc = 8, virtualFrom = X_PROBED,
displayWidth = 1024, frameX0 = 0, frameY0 = 0, frameX1 = 1023,
frameY1 = 767, zoomLocked = 0, modePool = 0x0, modes = 0x81ff078,
currentMode = 0x81ff078, confScreen = 0x81e0ce8, monitor = 0x81e0d20,
display = 0x81e6b78, entityList = 0x81fae20, numEntities = 1, widthmm = 0,
heightmm = 0, xDpi = 96, yDpi = 96, name = 0xb7bbc825 "I810",
driverPrivate = 0x81fe558, privates = 0x81f86e0, drv = 0x81fb6e8,
module = 0x81fcff0, colorKey = 0, overlayFlags = 0,
chipset = 0xb7bbe548 "i830", ramdac = 0x0, clockchip = 0x0, progClock = 1,
numClocks = 0, clock = {0 <repeats 128 times>}, videoRam = 65368,
biosBase = 0, memPhysBase = 2945654784, fbOffset = 131072, domainIOBase = 0,
memClk = 0, textClockFreq = 0, flipPixels = 0, options = 0x81fd9e0,
chipID = 0, chipRev = 0, racMemFlags = 5, racIoFlags = 0,
access = 0x81fca10, CurrentAccess = 0x81d0db4, resourceType = MEM_IO,
busAccess = 0x81fce60, vtSema = 1, pixmapPrivate = {ptr = 0xaf952000,
val = -1349181440, uval = 2945785856, fptr = 0xaf952000}, silkenMouse = 1,
clockRanges = 0x0, adjustFlags = 0, reservedInt = {0 <repeats 16 times>},
entityInstanceList = 0x81fc3c0, reservedPtr = {0x0 <repeats 15 times>},
Probe = 0xb7b88ab0 <I810Probe>, PreInit = 0xb7b9c820 <I830BIOSPreInit>,
ScreenInit = 0xb7ba3060 <I830BIOSScreenInit>,
SwitchMode = 0x80cc8e0 <CMapSwitchMode>,
AdjustFrame = 0x80d9840 <xf86XVAdjustFrame>,
EnterVT = 0xb7c247e0 <glxDRIEnterVT>, LeaveVT = 0xb7c24780 <glxDRILeaveVT>,
FreeScreen = 0xb7b952d0 <I830BIOSFreeScreen>,
ValidMode = 0xb7b940f0 <I830ValidMode>,
EnableDisableFBAccess = 0xb79b3f10 <xf86CursorEnableDisableFBAccess>,
SetDGAMode = 0x80cdb50 <CMapSetDGAMode>,
ChangeGamma = 0x80cd6a0 <CMapChangeGamma>,
PointerMoved = 0xb7b92fc0 <I830PointerMoved>,
PMEvent = 0xb7b9a650 <I830PMEvent>, HandleMessage = 0,
DPMSSet = 0xb7b9c5a0 <I830DisplayPowerManagementSet>,
LoadPalette = 0xb7b93a80 <I830LoadPalette>, SetOverscan = 0, DriverFunc = 0,
reservedFuncs = {0 <repeats 11 times>}}
(gdb) p pI830->LockHeld
$20 = 1
(gdb) p pI830->directRenderingEnabled
$21 = 1
(gdb) p *pI830
$23 = {MMIOBase = 0xb7932000 <Address 0xb7932000 out of bounds>,
FbBase = 0xaf932000 <Address 0xaf932000 out of bounds>, cpp = 2,
bios_version = 2540, newPipeSwitch = 0, fakeSwitch = 0, fixedPipe = -1,
currentMode = 0x81ff078, Clone = 0, CloneRefresh = 60, CloneHDisplay = 0,
CloneVDisplay = 0, entityPrivate = 0x0, pipe = 0, origPipe = 0, init = 0,
bufferOffset = 131072, FbMemBox = {x1 = 0, y1 = 0, x2 = 1024, y2 = 1792},
FbMemBox2 = {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, CacheLines = -1,
FbMapSize = 134217728, TotalVideoRam = 67108864, StolenMemory = {Start = 0,
End = 913408, Size = 913408, Physical = 0, Offset = 0, Alignment = 0,
Key = 0, Pool = 0x0}, BIOSMemorySize = 8192000, BIOSMemSizeLoc = 0,
FreeMemory = 8192, MemoryAperture = {Start = 56553472, End = 127926272,
Size = 71372800, Physical = 0, Offset = 0, Alignment = 0, Key = 0,
Pool = 0x0}, StolenPool = {Total = {Start = 0, End = 63832064,
Size = 63832064, Physical = 0, Offset = 0, Alignment = 0, Key = 0,
Pool = 0x0}, Free = {Start = 3801088, End = 3801088, Size = 0,
Size = 63832064, Physical = 0, Offset = 0, Alignment = 0, Key = 0,
Pool = 0x0}, Free = {Start = 3801088, End = 3801088, Size = 0,
Physical = 0, Offset = 0, Alignment = 0, Key = 0, Pool = 0x0}, Fixed = {
Start = 0, End = 913408, Size = 913408, Physical = 0, Offset = 0,
Alignment = 0, Key = 0, Pool = 0x0}, Allocated = {Start = 913408,
End = 63832064, Size = 62918656, Physical = 0, Offset = 913408,
Alignment = 0, Key = 7, Pool = 0x0}}, allocatedMemory = 3268608,
FrontBuffer = {Start = 131072, End = 3801088, Size = 3670016, Physical = 0,
Offset = 0, Alignment = 65536, Key = -1, Pool = 0x81fe604},
FrontBuffer2 = {Start = 0, End = 0, Size = 0, Physical = 0, Offset = 0,
Alignment = 0, Key = 0, Pool = 0x0}, Scratch = {Start = 134127616,
End = 134193152, Size = 65536, Physical = 0, Offset = 134127616,
Alignment = 4096, Key = 3, Pool = 0x0}, Scratch2 = {Start = 0, End = 0,
Size = 0, Physical = 0, Offset = 0, Alignment = 0, Key = -1, Pool = 0x0},
CursorMem = 0x81fef78, CursorMemARGB = 0x81ff208, LpRing = 0x81fda58,
OverlayMem = 0x81ff128, LinearMem = {Start = 0, End = 0, Size = 0,
Physical = 0, Offset = 0, Alignment = 0, Key = 0, Pool = 0x0},
LinearAlloc = 0, MergedFB = 0, pScrn_2 = 0x0, SecondHSync = 0x0,
SecondVRefresh = 0x0, MetaModes = 0x0, SecondPosition = 0, FirstXOffs = 0,
FirstYOffs = 0, SecondXOffs = 0, SecondYOffs = 0, FirstframeX0 = 0,
FirstframeX1 = 0, FirstframeY0 = 0, FirstframeY1 = 0, MBXNR1XMAX = 65536,
MBXNR1YMAX = 65536, MBXNR2XMAX = 65536, MBXNR2YMAX = 65536, NonRect = 0,
HaveNonRect = 0, HaveOffsRegions = 0, MouseRestrictions = 0,
maxFirst_X1 = 0, maxFirst_X2 = 0, maxFirst_Y1 = 0, maxFirst_Y2 = 0,
maxSecond_X1 = 0, maxSecond_X2 = 0, maxSecond_Y1 = 0, maxSecond_Y2 = 0,
NonRectDead = {x0 = 0, x1 = 0, y0 = 0, y1 = 0}, OffDead1 = {x0 = 0, x1 = 0,
y0 = 0, y1 = 0}, OffDead2 = {x0 = 0, x1 = 0, y0 = 0, y1 = 0},
IntelXinerama = 1, SecondIsScrn0 = 0, XineramaExtEntry = 0x0,
I830XineramaVX = 0, I830XineramaVY = 0, shadowReq = {
majorversion = 1 '\001', minorversion = 1 '\001', patchlevel = 0,
abiclass = 0x0, abiversion = 0, moduleclass = 0x0}, RotatedMem = {
Start = 0, End = 0, Size = 0, Physical = 0, Offset = 0, Alignment = 0,
Key = -1, Pool = 0x0}, RotatedMem2 = {Start = 0, End = 0, Size = 0,
Physical = 0, Offset = 0, Alignment = 0, Key = -1, Pool = 0x0},
rotation = 1, InitialRotation = 0, displayWidth = 1024,
PointerMoved = 0x80c0950 <xf86PointerMoved>,
CreateScreenResources = 0x8119c70 <miCreateScreenResources>,
used3D = 0x81ff5a8, ContextMem = {Start = 134094848, End = 134127616,
Size = 32768, Physical = 0, Offset = 134094848, Alignment = 4096, Key = 4,
Pool = 0x0}, BackBuffer = {Start = 130023424, End = 131596288,
Size = 1572864, Physical = 0, Offset = 130023424, Alignment = 2097152,
Key = 5, Pool = 0x0}, DepthBuffer = {Start = 127926272, End = 129499136,
Size = 1572864, Physical = 0, Offset = 127926272, Alignment = 2097152,
Key = 6, Pool = 0x0}, TexMem = {Start = 3801088, End = 63832064,
Size = 60030976, Physical = 0, Offset = 0, Alignment = 4096, Key = -1,
Pool = 0x81fe604}, TexGranularity = 18, drmMinor = 5, have3DWindows = 0,
front_tiled = 0, back_tiled = 1, depth_tiled = 2, rotated_tiled = 0,
rotated2_tiled = 0, NeedRingBufferLow = 1, allowPageFlip = 0,
disableTiling = 0, backPitch = 0, CursorNeedsPhysical = 1, CursorIsARGB = 1,
pCurs = 0x8391ae0, MonType1 = 9, MonType2 = 0, specifiedMonitor = 0,
DGAModes = 0x822ce38, numDGAModes = 4, DGAactive = 0, DGAViewportStatus = 0,
Chipset = 0, LinearAddr = 4026531840, MMIOAddr = 3883925504, ioBase = 0,
pEnt = 0x81fdb40, PciInfo = 0x81f8188, PciTag = 4096, variant = 0 '\0',
BR = {0 <repeats 13 times>, 32507904, 0, 0, 65535, 2011020270, 65535, 0},
GttBound = 1, ScanlineColorExpandBuffers = 0x822f538,
NumScanlineColorExpandBuffers = 512, nextColorExpandBuf = 0, SavedReg = {
Fence = {0 <repeats 32 times>}}, ModeReg = {Fence = {130024001, 127926849,
0 <repeats 30 times>}}, noAccel = 0, SWCursor = 0, cursorOn = 1,
AccelInfoRec = 0x0, CursorInfoRec = 0x8240ad0,
CloseScreen = 0xb7c52e40 <XvCloseScreen>,
writeControl = 0xb7ba44c0 <I830WriteControlMMIO>,
readControl = 0xb7ba4500 <I830ReadControlMMIO>,
writeStandard = 0xb7ba4530 <I830WriteStandardMMIO>,
readStandard = 0xb7ba4550 <I830ReadStandardMMIO>, XvDisabled = 0,
XvEnabled = 1, colorKey = 2110, adaptor = 0x8243fa0,
BlockHandler = 0x811a810 <miSpriteBlockHandler>, overlayOn = 0x81ff598,
directRenderingDisabled = 0, directRenderingEnabled = 1,
directRenderingOpen = 1, LockHeld = 1, pDRIInfo = 0x8201660, drmSubFD = 10,
numVisualConfigs = 8, pVisualConfigs = 0x8202c48,
pVisualConfigsPriv = 0x8201628, buffer_map = 0, ring_map = 4026531840,
Options = 0x81fec68, StolenOnly = 0, pVbe = 0x8201200, vbeInfo = 0x81ff290,
vesa = 0x81fde20, overrideBIOSMemSize = 1, saveBIOSMemSize = 8192000,
newBIOSMemSize = 12582912, useSWF1 = 1, saveSWF1 = 8, swfSaved = 1,
saveSWF0 = 9, saveSWF4 = 0, useExtendedRefresh = 0, checkDevices = 1,
monitorSwitch = 9, operatingDevices = 9, toggleDevices = 9,
savedDevices = 9, lastDevice0 = 0, lastDevice1 = 0, lastDevice2 = 0,
displayAttached = {0, 0, 0, 1, 0, 0, 0, 0}, displayPresent = {1, 1, 0, 1, 0,
0, 0, 0}, displaySize = {{x1 = 0, y1 = 0, x2 = 800, y2 = 600}, {x1 = 0,
y1 = 0, x2 = 800, y2 = 600}, {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, {x1 = 0,
y1 = 0, x2 = 1024, y2 = 768}, {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, {x1 = 0,
y1 = 0, x2 = 0, y2 = 0}, {x1 = 0, y1 = 0, x2 = 0, y2 = 0}, {x1 = 0,
y1 = 0, x2 = 0, y2 = 0}}, availablePipes = 2, pipeDevices = {0, 0},
pipeEnabled = {1, 0}, pipeDisplaySize = {{x1 = 0, y1 = 0, x2 = 1024,
y2 = 768}, {x1 = 0, y1 = 0, x2 = 0, y2 = 0}}, planeEnabled = {1, 0},
preinit = 0, starting = 0, closing = 0, suspended = 0, leaving = 0,
xoffset = 0, yoffset = 64, SaveGeneration = 1, vbeRestoreWorkaround = 1,
displayInfo = 1, devicePresence = 0, devicesTimer = 0x8200040,
savedAsurf = 0, savedBsurf = 0}
(gdb) p pI830->LpRing->mem.Size
$25 = 131072
(gdb) up
#9 0xb79bfe2d in XAALeaveVT () from /usr/lib/xorg/modules/libxaa.so
(gdb) up
#10 0x080d7e79 in xf86XVLeaveVT (index=0, flags=0)
at ../../../../hw/xfree86/common/xf86xv.c:1278
1278 (*ScreenPriv->LeaveVT)(index, flags);
(gdb) p index
$26 = 0
(gdb) p flags
27 = 0
(gdb) frame 14
#14 0x081a2987 in FatalError (f=0xb7bbc6fc "lockup\n") at ../../os/log.c:554
554 AbortServer();
(gdb) up
#15 0xb7b8f83c in I830WaitLpRing (pScrn=0x81fd0d8, n=131064,
timeout_millis=2000) at ../../src/i830_accel.c:115
115 FatalError("lockup\n");
(gdb) p /x *pI830
$28 = {MMIOBase = 0xb7932000, FbBase = 0xaf932000, cpp = 0x2,
bios_version = 0x9ec, newPipeSwitch = 0x0, fakeSwitch = 0x0,
fixedPipe = 0xffffffff, currentMode = 0x81ff078, Clone = 0x0,
CloneRefresh = 0x3c, CloneHDisplay = 0x0, CloneVDisplay = 0x0,
entityPrivate = 0x0, pipe = 0x0, origPipe = 0x0, init = 0x0,
bufferOffset = 0x20000, FbMemBox = {x1 = 0x0, y1 = 0x0, x2 = 0x400,
y2 = 0x700}, FbMemBox2 = {x1 = 0x0, y1 = 0x0, x2 = 0x0, y2 = 0x0},
CacheLines = 0xffffffff, FbMapSize = 0x8000000, TotalVideoRam = 0x4000000,
StolenMemory = {Start = 0x0, End = 0xdf000, Size = 0xdf000, Physical = 0x0,
Offset = 0x0, Alignment = 0x0, Key = 0x0, Pool = 0x0},
BIOSMemorySize = 0x7d0000, BIOSMemSizeLoc = 0x0, FreeMemory = 0x2000,
MemoryAperture = {Start = 0x35ef000, End = 0x7a00000, Size = 0x4411000,
Physical = 0x0, Offset = 0x0, Alignment = 0x0, Key = 0x0, Pool = 0x0},
StolenPool = {Total = {Start = 0x0, End = 0x3ce0000, Size = 0x3ce0000,
Physical = 0x0, Offset = 0x0, Alignment = 0x0, Key = 0x0, Pool = 0x0},
Free = {Start = 0x3a0000, End = 0x3a0000, Size = 0x0, Physical = 0x0,
Offset = 0x0, Alignment = 0x0, Key = 0x0, Pool = 0x0}, Fixed = {
Start = 0x0, End = 0xdf000, Size = 0xdf000, Physical = 0x0,
Offset = 0x0, Alignment = 0x0, Key = 0x0, Pool = 0x0}, Allocated = {
Start = 0xdf000, End = 0x3ce0000, Size = 0x3c01000, Physical = 0x0,
Offset = 0xdf000, Alignment = 0x0, Key = 0x7, Pool = 0x0}},
allocatedMemory = 0x31e000, FrontBuffer = {Start = 0x20000, End = 0x3a0000,
Size = 0x380000, Physical = 0x0, Offset = 0x0, Alignment = 0x10000,
Key = 0xffffffff, Pool = 0x81fe604}, FrontBuffer2 = {Start = 0x0,
End = 0x0, Size = 0x0, Physical = 0x0, Offset = 0x0, Alignment = 0x0,
Key = 0x0, Pool = 0x0}, Scratch = {Start = 0x7fea000, End = 0x7ffa000,
Size = 0x10000, Physical = 0x0, Offset = 0x7fea000, Alignment = 0x1000,
Key = 0x3, Pool = 0x0}, Scratch2 = {Start = 0x0, End = 0x0, Size = 0x0,
Physical = 0x0, Offset = 0x0, Alignment = 0x0, Key = 0xffffffff,
Pool = 0x0}, CursorMem = 0x81fef78, CursorMemARGB = 0x81ff208,
LpRing = 0x81fda58, OverlayMem = 0x81ff128, LinearMem = {Start = 0x0,
End = 0x0, Size = 0x0, Physical = 0x0, Offset = 0x0, Alignment = 0x0,
Key = 0x0, Pool = 0x0}, LinearAlloc = 0x0, MergedFB = 0x0, pScrn_2 = 0x0,
SecondHSync = 0x0, SecondVRefresh = 0x0, MetaModes = 0x0,
SecondPosition = 0x0, FirstXOffs = 0x0, FirstYOffs = 0x0, SecondXOffs = 0x0,
SecondYOffs = 0x0, FirstframeX0 = 0x0, FirstframeX1 = 0x0,
FirstframeY0 = 0x0, FirstframeY1 = 0x0, MBXNR1XMAX = 0x10000,
MBXNR1YMAX = 0x10000, MBXNR2XMAX = 0x10000, MBXNR2YMAX = 0x10000,
NonRect = 0x0, HaveNonRect = 0x0, HaveOffsRegions = 0x0,
MouseRestrictions = 0x0, maxFirst_X1 = 0x0, maxFirst_X2 = 0x0,
maxFirst_Y1 = 0x0, maxFirst_Y2 = 0x0, maxSecond_X1 = 0x0,
maxSecond_X2 = 0x0, maxSecond_Y1 = 0x0, maxSecond_Y2 = 0x0, NonRectDead = {
x0 = 0x0, x1 = 0x0, y0 = 0x0, y1 = 0x0}, OffDead1 = {x0 = 0x0, x1 = 0x0,
y0 = 0x0, y1 = 0x0}, OffDead2 = {x0 = 0x0, x1 = 0x0, y0 = 0x0, y1 = 0x0},
IntelXinerama = 0x1, SecondIsScrn0 = 0x0, XineramaExtEntry = 0x0,
I830XineramaVX = 0x0, I830XineramaVY = 0x0, shadowReq = {majorversion = 0x1,
minorversion = 0x1, patchlevel = 0x0, abiclass = 0x0, abiversion = 0x0,
moduleclass = 0x0}, RotatedMem = {Start = 0x0, End = 0x0, Size = 0x0,
Physical = 0x0, Offset = 0x0, Alignment = 0x0, Key = 0xffffffff,
Pool = 0x0}, RotatedMem2 = {Start = 0x0, End = 0x0, Size = 0x0,
Physical = 0x0, Offset = 0x0, Alignment = 0x0, Key = 0xffffffff,
Pool = 0x0}, rotation = 0x1, InitialRotation = 0x0, displayWidth = 0x400,
PointerMoved = 0x80c0950, CreateScreenResources = 0x8119c70,
used3D = 0x81ff5a8, ContextMem = {Start = 0x7fe2000, End = 0x7fea000,
Size = 0x8000, Physical = 0x0, Offset = 0x7fe2000, Alignment = 0x1000,
Key = 0x4, Pool = 0x0}, BackBuffer = {Start = 0x7c00000, End = 0x7d80000,
Size = 0x180000, Physical = 0x0, Offset = 0x7c00000, Alignment = 0x200000,
Key = 0x5, Pool = 0x0}, DepthBuffer = {Start = 0x7a00000, End = 0x7b80000,
Size = 0x180000, Physical = 0x0, Offset = 0x7a00000, Alignment = 0x200000,
Key = 0x6, Pool = 0x0}, TexMem = {Start = 0x3a0000, End = 0x3ce0000,
Size = 0x3940000, Physical = 0x0, Offset = 0x0, Alignment = 0x1000,
Key = 0xffffffff, Pool = 0x81fe604}, TexGranularity = 0x12,
drmMinor = 0x5, have3DWindows = 0x0, front_tiled = 0x0, back_tiled = 0x1,
depth_tiled = 0x2, rotated_tiled = 0x0, rotated2_tiled = 0x0,
NeedRingBufferLow = 0x1, allowPageFlip = 0x0, disableTiling = 0x0,
backPitch = 0x0, CursorNeedsPhysical = 0x1, CursorIsARGB = 0x1,
pCurs = 0x8391ae0, MonType1 = 0x9, MonType2 = 0x0, specifiedMonitor = 0x0,
DGAModes = 0x822ce38, numDGAModes = 0x4, DGAactive = 0x0,
DGAViewportStatus = 0x0, Chipset = 0x0, LinearAddr = 0xf0000000,
MMIOAddr = 0xe7800000, ioBase = 0x0, pEnt = 0x81fdb40, PciInfo = 0x81f8188,
PciTag = 0x1000, variant = 0x0, BR = {0x0 <repeats 13 times>, 0x1f00800,
0x0, 0x0, 0xffff, 0x77ddbbee, 0xffff, 0x0}, GttBound = 0x1,
ScanlineColorExpandBuffers = 0x822f538,
NumScanlineColorExpandBuffers = 0x200, nextColorExpandBuf = 0x0, SavedReg = {
Fence = {0x0 <repeats 32 times>}}, ModeReg = {Fence = {0x7c00241,
0x7a00241, 0x0 <repeats 30 times>}}, noAccel = 0x0, SWCursor = 0x0,
cursorOn = 0x1, AccelInfoRec = 0x0, CursorInfoRec = 0x8240ad0,
CloseScreen = 0xb7c52e40, writeControl = 0xb7ba44c0,
readControl = 0xb7ba4500, writeStandard = 0xb7ba4530,
readStandard = 0xb7ba4550, XvDisabled = 0x0, XvEnabled = 0x1,
colorKey = 0x83e, adaptor = 0x8243fa0, BlockHandler = 0x811a810,
overlayOn = 0x81ff598, directRenderingDisabled = 0x0,
directRenderingEnabled = 0x1, directRenderingOpen = 0x1, LockHeld = 0x1,
pDRIInfo = 0x8201660, drmSubFD = 0xa, numVisualConfigs = 0x8,
pVisualConfigs = 0x8202c48, pVisualConfigsPriv = 0x8201628,
buffer_map = 0x0, ring_map = 0xf0000000, Options = 0x81fec68,
StolenOnly = 0x0, pVbe = 0x8201200, vbeInfo = 0x81ff290, vesa = 0x81fde20,
overrideBIOSMemSize = 0x1, saveBIOSMemSize = 0x7d0000,
newBIOSMemSize = 0xc00000, useSWF1 = 0x1, saveSWF1 = 0x8, swfSaved = 0x1,
saveSWF0 = 0x9, saveSWF4 = 0x0, useExtendedRefresh = 0x0,
checkDevices = 0x1, monitorSwitch = 0x9, operatingDevices = 0x9,
toggleDevices = 0x9, savedDevices = 0x9, lastDevice0 = 0x0,
lastDevice1 = 0x0, lastDevice2 = 0x0, displayAttached = {0x0, 0x0, 0x0, 0x1,
0x0, 0x0, 0x0, 0x0}, displayPresent = {0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0,
0x0}, displaySize = {{x1 = 0x0, y1 = 0x0, x2 = 0x320, y2 = 0x258}, {
x1 = 0x0, y1 = 0x0, x2 = 0x320, y2 = 0x258}, {x1 = 0x0, y1 = 0x0,
x2 = 0x0, y2 = 0x0}, {x1 = 0x0, y1 = 0x0, x2 = 0x400, y2 = 0x300}, {
x1 = 0x0, y1 = 0x0, x2 = 0x0, y2 = 0x0}, {x1 = 0x0, y1 = 0x0, x2 = 0x0,
y2 = 0x0}, {x1 = 0x0, y1 = 0x0, x2 = 0x0, y2 = 0x0}, {x1 = 0x0,
y1 = 0x0, x2 = 0x0, y2 = 0x0}}, availablePipes = 0x2, pipeDevices = {
0x0, 0x0}, pipeEnabled = {0x1, 0x0}, pipeDisplaySize = {{x1 = 0x0,
y1 = 0x0, x2 = 0x400, y2 = 0x300}, {x1 = 0x0, y1 = 0x0, x2 = 0x0,
y2 = 0x0}}, planeEnabled = {0x1, 0x0}, preinit = 0x0, starting = 0x0,
closing = 0x0, suspended = 0x0, leaving = 0x0, xoffset = 0x0,
yoffset = 0x40, SaveGeneration = 0x1, vbeRestoreWorkaround = 0x1,
displayInfo = 0x1, devicePresence = 0x0, devicesTimer = 0x8200040,
savedAsurf = 0x0, savedBsurf = 0x0}
(gdb) p /x *ring
$29 = {tail_mask = 0x1, mem = {Start = 0xf000ef6f, End = 0xf000e2c3,
Size = 0xf000ef6f, Physical = 0xf000ef6f, Offset = 0xf000ff54,
Alignment = 0xf0008008, Key = 0xf000ef6f, Pool = 0xf000fea5},
virtual_start = 0xf000e987, head = 0xf000ef6f, tail = 0xf000ef6f,
space = 0xf000ef6f}
(gdb) p n
$33 = 131064
(gdb) up
#16 0xb7b90092 in I830Sync (pScrn=0x81fd0d8) at ../../src/i830_accel.c:166
166 I830WaitLpRing(pScrn, pI830->LpRing->mem.Size - 8, 0);
(gdb) up
#17 0xb79c6502 in XAACopyAreaFallback () from /usr/lib/xorg/modules/libxaa.so
(gdb) up
#18 0xb79c77f7 in XAACopyArea () from /usr/lib/xorg/modules/libxaa.so
(gdb) up
#19 0x081566cd in damageCopyArea (pSrc=0x8397af8, pDst=0x8393b60,
pGC=0x8391e28, srcx=0, srcy=0, width=280, height=20, dstx=0, dsty=0)
at ../../../miext/damage/damage.c:790
790 ret = (*pGC->ops->CopyArea)(pSrc, pDst,
(gdb) p pSrc
$35 = (DrawablePtr) 0x8397af8
(gdb) p pDst
$36 = (DrawablePtr) 0x8393b60
$38 = 0
(gdb) p srcx
$39 = 0
(gdb) p srcy
$40 = 0
(gdb) p width
$41 = 280
(gdb) p height
$42 = 20
(gdb) p dstx
$43 = 0
(gdb) p dsty
$44 = 0
(I have no idea why the debug info from /usr/lib/xorg/modules/libxaa.so
doesn't show, it's build with debug symbols too. I can look at this if
you think it's contains something intereseting.)
Kurt
Reply to: