xserver-multidpi/os
Chris Wilson 9bf46610a9 os: Immediately queue initial WriteToClient
If we immediately put the WriteToClient() buffer into the socket's write
queue, not only do we benefit from sending the response back to client
earlier, but we also avoid the overhead of copying the data into our own
staging buffer and causing extra work in the next select(). The write is
effectively free as typically we may only send one reply per client per
select() call, so the cost of the FlushClient() is the same.

shmget10:   26400 -> 110000
getimage10: 25000 -> 108000

shmget500:   3160 -> 13500
getimage500: 1000 -> 1010

The knock-on effect is that on a mostly idle composited desktop, the CPU
overhead is dominated by the memmove in WriteToClient, which is in turn
eliminated by this patch.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-10 13:26:25 -04:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
access.c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
auth.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
backtrace.c os: use libunwind to generate backtraces 2013-02-26 07:59:53 +10:00
client.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
connection.c os: Hide the Connection{In,Out}put implementation details 2012-09-20 14:40:18 -04:00
io.c os: Immediately queue initial WriteToClient 2013-09-10 13:26:25 -04:00
log.c os: Remove any old logfile before trying to write to it 2013-07-11 07:39:03 +10:00
Makefile.am os: use libunwind to generate backtraces 2013-02-26 07:59:53 +10:00
mitauth.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
oscolor.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
osdep.h os: Hide the Connection{In,Out}put implementation details 2012-09-20 14:40:18 -04:00
osinit.c os/osinit.c: no getpgrp() and setpgrp() on WIN32 2012-11-28 14:44:11 +00:00
rpcauth.c Introduce a consistent coding style 2012-03-21 13:54:42 -07: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
utils.c os: Round fraction in pnprintf %f format 2013-02-08 08:57:43 -08:00
WaitFor.c os: make timers signal-safe 2012-05-01 11:36:35 +10:00
xdmauth.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
xdmcp.c Fix formatting of address operators 2012-12-05 18:09:48 -06:00
xprintf.c os/xprintf: add Xvscnprintf and Xscnprintf 2012-05-03 14:59:23 +10:00
xsha1.c os: Add libnettle as a choice of SHA1 implementation 2012-11-05 13:34:18 -06:00
xstrans.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00