Nokia's Tiago Vignatti originally mentioned his and Fernando's threaded input work on the X.Org mailing list earlier this month during another input-related discussion and mentioned their input thread branch of the X Server where their work was happening. Though in terms of moving the input event generation to its own thread, this isn't being done for performance reasons but rather to better the code by avoiding the use of SIGIO/SIGPOLL with signal handling. This threading work is being targeted at X Servers running on Linux, but it may end up benefiting other platforms too. More interesting, Tiago looks at this initial input work as "opening space to other thread works" like moving X rendering or other tasks to an independent thread as well. Basically there would be one thread for dispatch and the core object model, one thread for input, and another thread for the GPU. Threading the X Server is something that has interested Tiago since at least 2008 when he talked about it. There was also an effort to multi-thread the X11R6 Server more than a decade ago, but those attempts had failed.
The current X input event generation thread patches can be found in this mailing list. The patch right now is actually only a few hundred lines of code to implement, but more threading work will hopefully come for other areas of the X Server if other developers provide positive feedback. This patch at least should be in X.Org Server 1.10 and for now can be enabled by configuring the xorg-server build process with a new --enable-input-thread build option. Another major change that may also happen with the xorg-server 1.10 release is moving the drivers back into the X Server, but that's a heated issue and something that's to be talked about next month at the 2010 X Developers' Summit in Toulouse, which we will providing coverage.