xserver-multidpi/os
Chris Wilson ac7a4bf44c os/WaitFor: Check timers on every iteration
Currently we only check timer expiry if there are no client fd (or
other input) waiting to be serviced. This makes it very easy to starve
the timers with long request queues, and so miss critical timestamps.

The timer subsystem is just another input waiting to be serviced, so
evaluate it on every loop like all the others, at the cost of calling
GetTimeInMillis() slightly more frequently. (A more invasive and likely
OS specific alternative would be to move the timer wheel to the local
equivalent of timerfd, and treat it as an input fd to the event loop
exactly equivalent to all the others, and so also serviced on every
pass. The trade-off being that the kernel timer wheel is likely more
efficiently integrated with epoll, but individual updates to each timer
would then require syscalls.)

Reviewed-by: Peter Harris <pharris@opentext.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-04-17 16:30:36 -04:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
access.c os: Fix strtok/free crash in ComputeLocalClient 2017-12-13 09:54:14 -05:00
auth.c Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
backtrace.c os: avoid uninitialized offsets in backtrace 2018-02-19 13:12:18 -05:00
busfault.c os: Fix iteration over busfaults 2017-02-23 09:20:48 +10:00
client.c DetermineClientCmd: try using /proc/pid/cmdline on Solaris too 2017-02-14 11:33:47 -05:00
connection.c os: Set oc->fd to -1 when connection is closed 2017-06-13 09:56:44 -04:00
inputthread.c os/inputthread: Force unlock when stopping thread. 2018-01-24 16:27:31 -05:00
io.c os: Define {ReadFdFrom,WriteFdTo}Client unconditionally 2018-03-08 14:12:36 -05:00
log.c os: Fix -logfile when used with -displayfd 2018-03-28 15:16:02 -04:00
Makefile.am os,dix: Depend custom libs on libs, not objects 2017-01-02 12:45:28 -05:00
meson.build meson: Remove usage of pkg-config --variable=includedir 2018-04-02 13:42:02 -04:00
mitauth.c os: make MitGenerateCookie() independent of XCSECURITY 2017-08-22 10:59:40 -04:00
oscolor.c Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
osdep.h os: Remove mffs() 2017-11-06 17:22:46 -05:00
osinit.c os: Make OsSignalHandler ask for core dumps for signo != SIGQUIT 2017-12-13 11:11:42 -05:00
ospoll.c os: Add epoll-like port implementation for Solaris 2017-12-13 11:19:09 -05:00
ospoll.h os: Add ospoll interface [v2] 2016-07-21 15:04:47 -04:00
reallocarray.c Import reallocarray() from OpenBSD 2015-04-21 16:57:08 -07:00
rpcauth.c auth: remove AuthToIDFunc and associated functions. Not used anymore. 2017-02-28 14:15:19 -05:00
strcasecmp.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strcasestr.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strlcat.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strlcpy.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strndup.c os: Ensure <dix-config.h> is included in strndup.c 2013-02-14 09:20:46 -08:00
timingsafe_memcmp.c timingsafe_memcmp: Fix meson build 2017-05-10 10:56:16 -04:00
utils.c os: use PrivsElevated instead of a manual check 2018-03-21 10:58:40 -04:00
WaitFor.c os/WaitFor: Check timers on every iteration 2018-04-17 16:30:36 -04:00
xdmauth.c auth: remove AuthToIDFunc and associated functions. Not used anymore. 2017-02-28 14:15:19 -05:00
xdmcp.c os: Fix a type error in the IPv6 XDMCP code 2018-01-08 16:19:42 -05:00
xprintf.c os/xprintf: add Xvscnprintf and Xscnprintf 2012-05-03 14:59:23 +10:00
xserver_poll.c os: Add poll emulation for mingw [v2] 2016-07-19 11:08:21 -07:00
xsha1.c os/xsha1.c: Add license and copyright attribution. 2015-01-02 13:39:52 -08:00
xstrans.c Clean up a couple of warnings in os/ 2013-10-31 16:58:12 -07:00