Public bug reported:

Binary package hint: xserver-xorg-video-nv

Ubuntu 8.04.1  i386

Integrated NVidia video card: (lspci -v)

00:05.0 VGA compatible controller: nVidia Corporation C51 [Quadro NVS 
210S/GeForce 6150LE] (rev a2) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. Unknown device 81cd
        Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 5
        Memory at fc000000 (32-bit, non-prefetchable) [size=16M]
        Memory at d0000000 (64-bit, prefetchable) [size=256M]
        Memory at fb000000 (64-bit, non-prefetchable) [size=16M]
        [virtual] Expansion ROM at 88000000 [disabled] [size=128K]
        Capabilities: [48] Power Management version 2
        Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 
Enable-

Some times when I double-click to some video file (.flv from youtube for
ex.) totem window appears and resize. And in this moment, before playing
video, X.org totally freezes.

Still I can login via ssh from another computer. X eats 100% CPU.

gdb
> attach <PID of X>

0xb6fa3a36 in NVSync () from /usr/lib/xorg/modules/drivers//nv_drv.so
(gdb) bt
#0  0xb6fa3a36 in NVSync () from /usr/lib/xorg/modules/drivers//nv_drv.so
#1  0xb5c9bf22 in XAACopyAreaFallback () from /usr/lib/xorg/modules//libxaa.so
#2  0xb5c9d1d7 in XAACopyArea () from /usr/lib/xorg/modules//libxaa.so
#3  0xb5cdc33a in cwCopyArea () from /usr/lib/xorg/modules//libxaa.so
#4  0x08172516 in ?? ()
#5  0x0811fcac in ?? ()
#6  0x08130828 in ?? ()
#7  0x081308f1 in ?? ()
#8  0x08129ac5 in miPointerUpdateSprite ()
#9  0x080c80bd in ProcessInputEvents ()
#10 0x0808d867 in Dispatch ()
#11 0x0807471b in main ()


I try 
* apt-get source xserver-xorg-video-nv
* cd xserver-xorg-video-nv-2.1.8
* nano debian/rules   and comment  #dh_strip
* dpkg-buildpackage -rfakeroot -b
* cd ..
* sudo dpkg -i xserver-xorg-video-nv_2.1.8-sashnov1_i386.deb

Back trace with debug symbols:
0xb6f43a16 in NVSync (pScrn=0x821d160) at ../../src/nv_xaa.c:305
305         while(pNv->PGRAPH[0x0700/4]);
(gdb) bt
#0  0xb6f43a16 in NVSync (pScrn=0x821d160) at ../../src/nv_xaa.c:305
#1  0xb5c3bf22 in XAACopyAreaFallback () from /usr/lib/xorg/modules//libxaa.so
#2  0xb5c3d1d7 in XAACopyArea () from /usr/lib/xorg/modules//libxaa.so
#3  0xb5c7c33a in cwCopyArea () from /usr/lib/xorg/modules//libxaa.so
#4  0x08172516 in ?? ()
#5  0x0811ed44 in ?? ()
#6  0x081307d0 in ?? ()
#7  0x081308f1 in ?? ()
#8  0x08129ac5 in miPointerUpdateSprite ()
#9  0x080c80bd in ProcessInputEvents ()
#10 0x0808d867 in Dispatch ()
#11 0x0807471b in main ()

Additionally, may be following been usefull:

(gdb) info locals
pNv = (NVPtr) 0x821d650
(gdb) print pNv
$1 = (NVPtr) 0x821d650
(gdb) print *pNv
$2 = {SavedReg = {bpp = 0, width = 0, height = 0, interlace = 255, repaint0 = 
0, repaint1 = 189, 
    screen = 16, scale = 269484049, dither = 786432, extra = 0, fifo = 24, 
pixel = 128, horiz = 0, 
    arbitration0 = 133, arbitration1 = 128, pll = 0, pllB = 0, vpll = 334339, 
vpll2 = 197633, 
    vpllB = 2147495435, vpll2B = 2147490307, pllsel = 2052, control = 0, 
general = 256, crtcOwner = 3, 
    head = 16, head2 = 0, config = 0, cursorConfig = 33554432, cursor0 = 0, 
cursor1 = 0, cursor2 = 0, 
    timingH = 10, timingV = 2, displayV = 0, crtcSync = 1252, crtcVSync = 
1024}, ModeReg = {bpp = 0, 
    width = 0, height = 0, interlace = 0, repaint0 = 0, repaint1 = 0, screen = 
0, scale = 0, 
    dither = 0, extra = 0, fifo = 0, pixel = 0, horiz = 0, arbitration0 = 0, 
arbitration1 = 0, 
    pll = 0, pllB = 0, vpll = 0, vpll2 = 0, vpllB = 0, vpll2B = 0, pllsel = 0, 
control = 0, 
    general = 0, crtcOwner = 0, head = 0, head2 = 0, config = 0, cursorConfig = 
0, cursor0 = 0, 
    cursor1 = 0, cursor2 = 0, timingH = 0, timingV = 0, displayV = 0, crtcSync 
= 0, crtcVSync = 0}, 
  CurrentState = 0x0, Architecture = 64, CursorStart = 33013760, pEnt = 
0x821af98, 
  PciInfo = 0x8218f18, PciTag = 10240, Chipset = 282985029, ChipRev = 162, 
Primary = 1, 
  IOAddress = 4227858432, FbAddress = 3489660928, 
  FbBase = 0xb3c2f000 <Address 0xb3c2f000 out of bounds>, 
  FbStart = 0xb3c2f000 <Address 0xb3c2f000 out of bounds>, FbMapSize = 
33554432, 
  FbUsableSize = 32980992, ScratchBufferSize = 16384, ScratchBufferStart = 
32964608, NoAccel = 0, 
  HWCursor = 0, FpScale = 1, ShadowFB = 0, ShadowPtr = 0x0, ShadowPitch = 0, 
MinVClockFreqKHz = 12000, 
  MaxVClockFreqKHz = 400000, CrystalFreqKHz = 27000, RamAmountKBytes = 32768, 
REGS = 0xb5ca4000, 
  PCRTC0 = 0xb62a4000, PCRTC = 0xb62a6000, PRAMDAC0 = 0xb6324000, PFB = 
0xb5da4000, 
  PFIFO = 0xb5ca6000, PGRAPH = 0xb60a4000, PEXTDEV = 0xb5da5000, PTIMER = 
0xb5cad000, 
  PMC = 0xb5ca4000, PRAMIN = 0xb63b4000, FIFO = 0xb64a4000, CURSOR = 0x0, 
  PCIO0 = 0xb62a5000 <Address 0xb62a5000 out of bounds>, 
  PCIO = 0xb62a7000 <Address 0xb62a7000 out of bounds>, 
  PVIO = 0xb5d64000 <Address 0xb5d64000 out of bounds>, 
  PDIO0 = 0xb6325000 <Address 0xb6325000 out of bounds>, 
  PDIO = 0xb6327000 <Address 0xb6327000 out of bounds>, PRAMDAC = 0xb6326000, 
  AccelInfoRec = 0x824b0d8, CursorInfoRec = 0x0, DGAModes = 0x8249fb0, 
numDGAModes = 40, 
  DGAactive = 0, DGAViewportStatus = 0, PointerMoved = 0, BlockHandler = 
0x81304b0, 
  CloseScreen = 0xb6f93120 <XvCloseScreen>, 
---Type <return> to continue, or q <return> to quit---
  EnableDisableFBAccess = 0xb5c35e00 <XAAEnableDisableFBAccess>, accessEnabled 
= 1, FBDev = 0, 
  Rotate = 0, CurrentLayout = {bitsPerPixel = 32, depth = 24, displayWidth = 
3584, weight = {red = 8, 
      green = 8, blue = 8}, mode = 0x8220d48}, curFg = 0, curBg = 0, curImage = 
{
    0 <repeats 256 times>}, I2C = 0x821fc28, pInt = 0x0, 
  VideoTimerCallback = 0xb6f41fd0 <NVVideoTimerCallback>, DMAKickoffCallback = 
0, 
  overlayAdaptor = 0x0, blitAdaptor = 0x8264930, videoKey = 66046, FlatPanel = 
1, FPDither = 0, 
  Television = 0, CRTCnumber = 1, Options = 0x821efe8, alphaCursor = 1, DDCBase 
= 54 '6', 
  twoHeads = 1, twoStagePLL = 1, fpScaler = 1, fpWidth = 1280, fpHeight = 1024, 
fpVTotal = 1066, 
  fpSyncs = 268435473, usePanelTweak = 0, PanelTweak = 0, LVDS = 0, dmaPut = 
3519, dmaCurrent = 3519, 
  dmaFree = 4644, dmaMax = 8191, dmaBase = 0xb5ba3000, currentRop = 3, 
WaitVSyncPossible = 1, 
  BlendingPossible = 1, RandRRotation = 0, VBEDualhead = 1, pVbe = 0x821f770, 
pVbeInfo = 0x821f9a0, 
  vbeMode = 3, vbeCRTC1Offset = 5120}


Now I fix it for my self with dirty hack:

src/nv_xaa.c:

void NVSync(ScrnInfoPtr pScrn)
{
    NVPtr pNv = NVPTR(pScrn);

    if(pNv->DMAKickoffCallback)
       (*pNv->DMAKickoffCallback)(pScrn);

    while(READ_GET(pNv) != pNv->dmaPut);

-    while(pNv->PGRAPH[0x0700/4]);
+    int n = 65535;
+    while(pNv->PGRAPH[0x0700/4] && n-- > 0);
}

ProblemType: Bug
Architecture: i386
Date: Tue Sep  9 12:37:51 2008
DistroRelease: Ubuntu 8.04
Package: xserver-xorg-video-nv 1:2.1.8-1ubuntu1
PackageArchitecture: i386
ProcEnviron:
 
PATH=/home/username/bin:/home/username/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
 LANG=ru_RU.UTF-8
 SHELL=/bin/bash
SourcePackage: xserver-xorg-video-nv
Uname: Linux 2.6.24-19-generic i686

** Affects: xserver-xorg-video-nv (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: apport-bug

-- 
xserver-xorg-video-nv driver hangs in NVSync when totem start play video
https://bugs.launchpad.net/bugs/268011
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to