On 12/13/11 14:31, Adam Jackson wrote:
Don't call LookupMajorName if the hooks aren't active, it's quite expensive.

It was a simple table lookup when I added it, before the conversion to the
registry functions in commit 996b621bec.

@@ -425,9 +425,11 @@ Dispatch(void)
                        client->minorOp = ext->MinorOpcode(client);
                }
  #ifdef XSERVER_DTRACE
-               XSERVER_REQUEST_START(LookupMajorName(client->majorOp), 
client->majorOp,
-                             ((xReq *)client->requestBuffer)->length,
-                             client->index, client->requestBuffer);
+               if (XSERVER_REQUEST_START_ENABLED())
+                   XSERVER_REQUEST_START(LookupMajorName(client->majorOp),
+                                         client->majorOp,
+                                         ((xReq 
*)client->requestBuffer)->length,
+                                         client->index, client->requestBuffer);
  #endif
                if (result>  (maxBigRequestSize<<  2))
                    result = BadLength;
@@ -438,8 +440,10 @@ Dispatch(void)
                    XaceHookAuditEnd(client, result);
                }
  #ifdef XSERVER_DTRACE
-               XSERVER_REQUEST_DONE(LookupMajorName(client->majorOp), 
client->majorOp,
-                             client->sequence, client->index, result);
+               if (XSERVER_REQUEST_DONE_ENABLED())
+                   XSERVER_REQUEST_DONE(LookupMajorName(client->majorOp),
+                                        client->majorOp, client->sequence,
+                                        client->index, result);
  #endif

                if (client->noClientException != Success)

Seems like there's room for further optimization in the enabled case by caching the LookupMajorName result, but that's far less important than the disabled case, so just doing this for now is great.

Reviewed-by: Alan Coopersmith <[email protected]>

--
        -Alan Coopersmith-        [email protected]
         Oracle Solaris Platform Engineering: X Window System

_______________________________________________
[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