On 05/15/15 03:34 PM, Peter Harris wrote:
On 2015-05-15 01:48, Alan Coopersmith wrote:

Speaking of which, something I've wondered about for a while, but never
had time to test, is if telling the server to optimize for valid requests
would make a difference, such as:

  #define REQUEST_AT_LEAST_SIZE(req) \
-    if ((sizeof(req) >> 2) > client->req_len )\
+    if (_X_UNLIKELY((sizeof(req) >> 2) > client->req_len )) \
           return(BadLength)

If anyone wants to try it out and report back, please do so!

Slightly less than 1% improvement on x11perf -noop. Stable over multiple
runs:

   before           after         Operation
----------   -----------------   --------------------
13800000.0   13900000.0 (1.01)   X protocol NoOperation

I didn't try the full patch or a full x11perf run, but it seems unlikely
that it would be significant on a real load.

Thanks - since even a noop goes through a sizable stack, it's not that tight
of a loop going through this code, and I wouldn't be surprised if optimizers
already assume early return paths like that are uncommon error cases.

--
        -Alan Coopersmith-              [email protected]
         Oracle Solaris Engineering - http://blogs.oracle.com/alanc
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to