[PATCH xserver 00/23] Switch server to poll/epoll

Keith Packard keithp at keithp.com
Thu May 26 23:59:35 UTC 2016

Ok, I've reworked this patch series to try and have it make some
semblance of sense. There's two scary patches, 18/23 and 19/23;
everything else is pretty self contained.

The first patch flips to the new font API:

	[PATCH xserver 01/23] dix: Switch to the libXfont2 API (v2)

Then changes to move from select(2) to poll(2) in various isolated
bits of the server:

	[PATCH xserver 02/23] kdrive: switch from select(2) to poll(2)
	[PATCH xserver 03/23] xfree86: Switch from select(2) to poll(2)
	[PATCH xserver 04/23] dmx: Switch from select(2) to poll(2) for input
	[PATCH xserver 05/23] os: Switch from select(2) to poll(2) in

Then a bunch of fixes related to the use of NotifyFd APIs:

	[PATCH xserver 06/23] hw/xfree86: Use NotifyFd for other input fd
	[PATCH xserver 07/23] xnest: Use SetNotifyFd to receive events
	[PATCH xserver 08/23] hw/kdrive: Use passed-in fd for kdrive/linux
	[PATCH xserver 09/23] modesetting: Use passed-in fd for drm event
	[PATCH xserver 10/23] dmx: Eliminate use of AddEnabledDevice

And, with everyone using NotifyFd outside of OS, all of the fd_set's
visible in the API can be removed:

	[PATCH xserver 11/23] Remove readmask from screen block/wakeup
	[PATCH xserver 12/23] Remove fd_set from Block/Wakeup handler API
	[PATCH xserver 13/23] Remove AddEnabledDevice and AddGeneralSocket

Next come a few small cleanups in the server to prepare for major
surgery ahead:

	[PATCH xserver 14/23] dix/os: Merge priority computation into
	[PATCH xserver 15/23] dix: Intermediate GrabServer state
	[PATCH xserver 16/23] os: Compute timeout in milliseconds instead of

Here's the new interface which I've already sent out. Adam Jackson has
suggested that perhaps the edge trigger mode could be a hint instead
of a requirement. I haven't done that yet, but it seems like it might
be reasonable. Nothing is hooked to this in this patch.

	[PATCH xserver 17/23] os: Add ospoll interface

Two patches which change the server to use the new ospoll bits in
WaitForSomething. All of the old select mask frobbing is gone.

	[PATCH xserver 18/23] dix: Use list for ready clients
	[PATCH xserver 19/23] os: Switch server to poll(2)

Next, the input thread is changed over

	[PATCH xserver 20/23] os: Use poll(2) for input thread

Finally, with the server now independent of fd values, a few cleanups

	[PATCH xserver 21/23] os: eliminate fd value limits for clients
	[PATCH xserver 22/23] Allow 1024 and 2048 for LimitClients
	[PATCH xserver 23/23] os: Leave stdin and stdout open


More information about the xorg-devel mailing list