mirror of
https://github.com/X11Libre/xserver.git
synced 2026-10-01 22:03:09 +00:00
Modified performance patches from Arjan van de Ven <arjan@infradead.org>
Subject: [PATCH] fix some performance gaps in Xace The XaceHook function is used in several hotpaths. The problem with it (performance wise) is twofold: * The XaceHook function has a big switch() statement for the hook number in it * The XaceHook function uses varargs to reassemble the final dispatch arguments again Both are expensive operations... for something that is known at compile time This patch turns the hotpath XaceHook call into a direct call to avoid the switch and varargs; this gives me over 10% performance gain on the x11perf benchmark.
This commit is contained in:
parent
aaa50b6411
commit
d7c5e8bfc1
3 changed files with 32 additions and 28 deletions
|
|
@ -68,6 +68,11 @@ extern int XaceHook(
|
|||
... /*appropriate args for hook*/
|
||||
);
|
||||
|
||||
/* Special-cased hook functions
|
||||
*/
|
||||
extern void XaceHookAuditEnd(ClientPtr ptr, int result);
|
||||
extern void XaceHookAuditBegin(ClientPtr ptr);
|
||||
|
||||
/* Register a callback for a given hook.
|
||||
*/
|
||||
#define XaceRegisterCallback(hook,callback,data) \
|
||||
|
|
@ -98,9 +103,13 @@ extern void XaceCensorImage(
|
|||
|
||||
#ifdef __GNUC__
|
||||
#define XaceHook(args...) XaceAllowOperation
|
||||
#define XaceHookAuditEnd(args...) { ; }
|
||||
#define XaceHookAuditBegin(args...) { ; }
|
||||
#define XaceCensorImage(args...) { ; }
|
||||
#else
|
||||
#define XaceHook(...) XaceAllowOperation
|
||||
#define XaceHookAuditEnd(...) { ; }
|
||||
#define XaceHookAuditBegin(...) { ; }
|
||||
#define XaceCensorImage(...) { ; }
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue