Am Donnerstag, den 27.07.2006, 22:08 +0200 schrieb Tilman Sauerbeck:
> Hi,
> I'm trying to fix bug 7265, but I'm stuck.
> 
> I added some debugging output to the xserver and the mga driver and I
> attached the interesting parts of the lock.
> 
> What's interesting is that DRILock()/DRIUnlock() are continually called
> about every second even if no DRI client is connected. This might be due
> to XAA rendering though, and it seems XAA cannot be disabled without
> disabling DRI, too.
> 
> As my test case, I started glxinfo in a xterm (which hangs in
> mgaGetLock(), as expected). This is line 18 in the log.
> 
> At the end of the log, you'll see that DRIDoBlockHandler() results in
> another DRIUnlock() call, although the lock isn't currently held.
> 
> 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.
> 
> 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, pReadmask);

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

> 
> Thanks,
> Tilman
> 
> -------------------------------------------------------------------------
> 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=join.php&p=sourceforge&CID=DEVDEV
> -- _______________________________________________ Dri-devel mailing list 
> Dri-devel@lists.sourceforge.net 
> https://lists.sourceforge.net/lists/listinfo/dri-devel
-- 
| Felix Kühling <[EMAIL PROTECTED]>                     http://fxk.de.vu |
| PGP Fingerprint: 6A3C 9566 5B30 DDED 73C3  B152 151C 5CC1 D888 E595 |


-------------------------------------------------------------------------
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=join.php&p=sourceforge&CID=DEVDEV
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to