[Nouveau] Fix for potential nouveau-ddx/x-server crash on XOrg 1.12+

Mario Kleiner mario.kleiner at tuebingen.mpg.de
Tue Oct 9 00:06:58 PDT 2012


Hi all,

the following patch fixes a race-condition in the nouveau
ddx which caused frequent x-server crashes for at least 1
user under some loads when OpenGL triple-buffering is enabled,
which it is by default on XOrg 1.12 and later.

As a side effect, it provides a small optimization for the
common case of bufferswap at next vblank.

The other way to avoid the race + possible crash is
to set Option "SwapLimit" "1" in xorg.conf, but at a
performance loss due to double-buffering instead of
pseudo-triple-buffering.

Tested by me on Ubuntu 12.10 beta + XOrg 1.13 + nouveau-ddx
master, with/without triple-buffering, with/without compiz+unity,
with/without kms pageflipping.

Also successfully tested by Anssi Hannula, the original reporter
of the crash, on his setup.

Please review and apply if appropriate.

thanks,
-mario



More information about the Nouveau mailing list