Bug 9444 - i830 Crash On Switch To Console
Summary: i830 Crash On Switch To Console
Status: RESOLVED INVALID
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: 7.1 (2006.05)
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Alan Hourihane
QA Contact: Xorg Project Team
URL: http://bugs.debian.org/366245
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-12-25 08:35 UTC by David Nusinow
Modified: 2007-05-11 02:11 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Log file that goes with the gdb backtrace in the debian bug report (170.92 KB, text/plain)
2006-12-27 14:54 UTC, Kurt Roeckx
no flags Details
Xorg.0.log file when DRI is disabled. (83.34 KB, text/plain)
2007-01-23 11:34 UTC, Kurt Roeckx
no flags Details

Description David Nusinow 2006-12-25 08:35:45 UTC
Please see debian bug #366245 (available at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=366245). This affects driver
version 1.7.2, so I believe it also will affect git master.

Several users have reported an issue with this. One of them has submitted a
backtrace as well. I'm not sure how to debug this myself, but the submitter is
very knowledgeable and helpful.

 - David Nusinow
Comment 1 Alan Hourihane 2006-12-26 14:03:50 UTC
From the logs it's using 1.5.1 which is very old.

Please upload a log with 1.7.2 to prove the same problem happens.
Comment 2 Kurt Roeckx 2006-12-27 14:50:03 UTC
My post did contain a log file with 1.7.2, which is at:
http://bugs.debian.org/cgi-bin/bugreport.cgi/xorg.log?bug=366245;msg=36;att=1

I'll also attach the log file from the time I've made the backtrace.  Not sure
if that's more useful or not.


Kurt
Comment 3 Kurt Roeckx 2006-12-27 14:54:07 UTC
Created attachment 8231 [details]
Log file that goes with the gdb backtrace in the debian bug report
Comment 4 Alan Hourihane 2006-12-28 12:53:52 UTC
Try adding the option

Option "VBERestore"

and see if that helps.
Comment 5 Alan Hourihane 2006-12-28 12:55:35 UTC
Also, from the log file it looks like you had to do a few VT switches for the
problem to occur. Is that right ??
Comment 6 Alan Hourihane 2006-12-28 12:56:04 UTC
Can you submit the backtrace here too, rather than me searching a debian bug report.
Comment 7 Kurt Roeckx 2006-12-28 13:38:40 UTC
(In reply to comment #4)
> Try adding the option
> 
> Option "VBERestore"
> 
> and see if that helps.

I've had some mixed results with this.

Either it locks up from the first time, or it works perfectly for some time and
then directly gives me a black screen when switching to X.

When I get the black screen, I can perfectly switch to the console again, and X
again, and it keeps black under X.  This also doesn't screw up my console as it
otherwise does.
Comment 8 Kurt Roeckx 2006-12-28 13:40:06 UTC
(In reply to comment #6)
> Can you submit the backtrace here too, rather than me searching a debian bug
report.

I'll just copy it from the Debian BTS:

#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.)
Comment 9 Kurt Roeckx 2006-12-28 13:43:04 UTC
(In reply to comment #5)
> Also, from the log file it looks like you had to do a few VT switches for the
> problem to occur. Is that right ??

Yes, sometimes it works, sometimes it fails from the first time.  I have no idea
what's different between the time it works and not.  It's not like there is
something in the background using CPU or anything.  I always test it under the
same conditions.


Kurt
Comment 10 Kurt Roeckx 2007-01-06 06:14:50 UTC
Hi,

Is there something else I can do to try and debug/fix this?


Kurt
Comment 11 Alan Hourihane 2007-01-08 02:19:52 UTC
Does disabling DRI help ??
Comment 12 Kurt Roeckx 2007-01-08 11:08:36 UTC
(In reply to comment #11)
> Does disabling DRI help ??

That doesn't seem to have any effect on it.

I've tried with both the VBERestore option on and off.


Kurt
Comment 13 Alan Hourihane 2007-01-09 00:52:32 UTC
Can you try adding...

Option "CheckDevices" "off"

and see if that helps.
Comment 14 Kurt Roeckx 2007-01-14 09:37:26 UTC
(In reply to comment #13)
> Can you try adding...
> 
> Option "CheckDevices" "off"
> 
> and see if that helps.

With that option, the whole screen is lowered the about 80 pixels as described
before.  It used to redraw the screen higher, but it doesn't do that anymore.

Now that the screen stays that way, I can better estimate how much pixels it
are, and seems to be closer to 60.

The mouse is drawn at the correct place, but the rest is drawn lower.  I need to
click the 60 pixels higher to be able to click on something.

I'm mostly testing this at the gdm login screen.  When I log to a gnome session,
it stays that way for a while, but at a certain point it seems to be redrawing
the whole screen at the correct place.  After switching to the console and back
it has the same effect showing it 60 pixels lower.

Logging out of a gnome session that was shown correctly also has the same effect
of lowering things 60 pixels, even when I never switched to console manually.  I
seems that logging out has about the same effect also switching to console and back.


Kurt
Comment 15 Alan Hourihane 2007-01-15 01:26:16 UTC
But can you switch to a console and back now correctly ??
Comment 16 Kurt Roeckx 2007-01-15 09:58:46 UTC
(In reply to comment #15)
> But can you switch to a console and back now correctly ??

I was under the impression that it never hang up as before.  But further tests
show that this isn't true.

Sometimes I can switch like 20 or 30 times before it happens, other times it's
from the 1st or 2nd time I have the problem.

I'm not sure if it changed anything, since the behaviour has always been random.  


Kurt
Comment 17 Alan Hourihane 2007-01-15 10:31:40 UTC
How did you disable DRI ?

Can you upload a log with the DRI off and it crashing ?
Comment 18 Kurt Roeckx 2007-01-23 11:31:14 UTC
(In reply to comment #17)
> How did you disable DRI ?
> 
> Can you upload a log with the DRI off and it crashing ?

I disabled DRI by commenting out loading the DRI module in xorg.conf.  This has
as effect that the i915 dri kernel module doesn't get loaded.  Also, xglinfo
returns "direct rendering: No".  So I assume that DRI is disabled.

I'll upload a log shortly.


Kurt
Comment 19 Kurt Roeckx 2007-01-23 11:34:44 UTC
Created attachment 8486 [details]
Xorg.0.log file when DRI is disabled.

This is a log showing the problem when the dri module is disabled, and
CheckDevices is turned off.
Comment 20 Luis Rivera 2007-02-12 11:53:06 UTC
Hi, I have some problem, my graphic card is nvidia fx 9200.

I swithing in VT and X, and show black window in X.
Comment 21 Luis Rivera 2007-02-12 12:06:43 UTC
Sorry my graphic card is nvidia fx5200

And I use beryl composite window manager:   http://www.beryl-project.org/

With last driver from nvidia

I switch X -> VT1 -> X -> black window
Comment 22 Alan Hourihane 2007-02-14 01:39:02 UTC
Can you try upgrading to X.Org 7.2 ?
Comment 23 Luis Rivera 2007-02-15 06:35:14 UTC
Hi, I need only download to compile from here? 
http://xorg.freedesktop.org/releases/development/X11R7.2-RC3/xserver/xorg-server-1.1.99.903.tar.gz

or need donwload to compile from here?    :(
http://xorg.freedesktop.org/releases/development/X11R7.2-RC3/

much files in the path for download:)


Or you can give me a direct link?

I use debian etch and have Xorg 7.1.1 installed from apt-get from debian.org

Thanx
Luis Rivera
Lima-Peru
Comment 24 Daniel Stone 2007-02-27 01:35:19 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 25 Gordon Jin 2007-03-14 19:43:47 UTC
The bug priority was upgraded (P2->high) with the bugzilla configuration change.
I'm Changing the priority back to the normal one.
Sorry for the spam.
Comment 26 Alan Hourihane 2007-05-11 02:11:10 UTC
Closing. Please use the new 2.0 driver.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.