X display locking
Torsten Jager
t.jager at gmx.de
Tue Mar 19 10:56:57 PDT 2013
Hello!
> What version of XCB are you using? There were a significant number of
> thread-related problems introduced when libX11 first switched to using
> XCB as a backend. I'd suggest using a libX11 built without XCB, but
> doing that has gotten a lot harder on recent distributions.
1.7
> This deadlock kind of sounds like this one:
> http://cgit.freedesktop.org/xcb/libxcb/commit/?id=23911a707b8845bff52cd7853fc5d59fb0823cef
Thanks. Contained in 1.9 I use now.
But this was not enough. I also needed a patch from recent libX11.
Seems those lockups have gone with those.
> I think Allen must have been thinking of the Xlib internal LockDisplay
> and UnlockDisplay functions. However, those functions aren't necessary
> unless you need multiple requests from one thread to be atomic w.r.t.
> other threads using the same display connection. For your use case, it
> sounds like you don't need them.
Well, with OpenGL omitting X(Un)LockDisplay () led to significantly
worse performance - kernel mode processor load up to 20%, which used
to be <4% before. Lots of additional context switches and cache
flushes.
Looks like my previous quick fix of bracketing the whole frame
conversion/output sequence is not that bad.
Torsten
More information about the xorg
mailing list