From: Felix <fx...@gm...> - 2006-07-28 14:44:57
|
Am Donnerstag, den 27.07.2006, 22:08 +0200 schrieb Tilman Sauerbeck: > Hi, > I'm trying to fix bug 7265, but I'm stuck. >=20 > I added some debugging output to the xserver and the mga driver and I > attached the interesting parts of the lock. >=20 > What's interesting is that DRILock()/DRIUnlock() are continually called > about every second even if no DRI client is connected. This might be du= e > to XAA rendering though, and it seems XAA cannot be disabled without > disabling DRI, too. >=20 > As my test case, I started glxinfo in a xterm (which hangs in > mgaGetLock(), as expected). This is line 18 in the log. >=20 > At the end of the log, you'll see that DRIDoBlockHandler() results in > another DRIUnlock() call, although the lock isn't currently held. >=20 > Now, the problem is that I cannot figure out why and how > DRIDoBlockHandler() is called. It's assigned to the DRI > inforec->wrap.BlockHandler, but I don't see when it's called. > To make things worse, I cannot get a backtrace either... attaching GDB > or using xorg_backtrace() will crash the server. >=20 > Any idea what's wrong with the locking here? > Hints on when DRIDoBlockHandler is called or why it can be called even > though the DRI lock isn't held are appreciated :) DRIDoBlockHandler is called from DRIBlockHandler: if (pDRIPriv && pDRIPriv->pDriverInfo->wrap.BlockHandler) (*pDRIPriv->pDriverInfo->wrap.BlockHandler)(i, blockData, pTimeout, pReadma= sk); DRIBlockHandler in turn is registered in DRIExtensionInit using RegisterBlockAndWakeupHandlers. Block and Wakeup handlers are called automatically whenever the server starts and stops processing client commands. I just notice that DRIBlockHandler is also called through __glXDRIleaveServer (glxdri.c), which was introduced in the AIGLX merge. Could it be that DRIBlockHandler gets called twice when it should only be called once? Regards, Felix >=20 > Thanks, > Tilman >=20 > -----------------------------------------------------------------------= -- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share= your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDEV > -- _______________________________________________ Dri-devel mailing li= st Dri...@li... https://lists.sourceforge.net/lists/li= stinfo/dri-devel --=20 | Felix K=C3=BChling <fx...@gm...> http://fxk.de.v= u | | PGP Fingerprint: 6A3C 9566 5B30 DDED 73C3 B152 151C 5CC1 D888 E595 | |