Adding a bug so this doesn't get lost. For the background see: http://lists.freedesktop.org/archives/xorg/2012-January/054029.html In short, the server ignores a client even if it has time to respond to it. This causes delays of up to 30ms to the ignored client, which is stuck in a call such as xquerypointer.
Archives got rebuilt/renumbered so the old link is invalid. New link seems to be: http://lists.x.org/archives/xorg/2012-January/053821.html http://lists.x.org/archives/xorg/2012-January/053826.html
Also relevant: http://lists.x.org/archives/xorg-devel/2013-October/038135.html
This is mostly fixed now, by: commit c1ce807d9f18f215332d7eeb844e8c640f71c53c Author: Keith Packard <keithp@keithp.com> Date: Wed Jan 22 11:01:59 2014 -0800 dix: Praise clients which haven't run for a while, rather than idle clients commit b61ccd5d9d368f3fbbae27ce14ac02a3db1884c4 Author: Adam Jackson <ajax@redhat.com> Date: Tue Nov 5 10:20:04 2013 -0500 smartsched: Tweak the default scheduler intervals We will now select() afresh every time we switch clients, and rely on the scheduler scores to pick the most-deserving client each time through. It's _possible_ that we should instead try to drain every ready fd every time we call select(), but I'm not totally convinced, and it would require a lot of algorithmic changes to our main loop to maintain both fairness and responsiveness. If we were a webserver it might make sense to maximize throughput like that, but probably we should consider select() cheap enough that we can just rely on the scheduler scores.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.