[PATCH 10/22] udev: Use shared NoopDDA to utilize code cache better
Mark Kettenis
mark.kettenis at xs4all.nl
Wed Dec 29 12:19:50 PST 2010
> From: Pauli <ext-pauli.nieminen at nokia.com>
> Date: Wed, 29 Dec 2010 21:27:22 +0200
>
> From: Pauli Nieminen <ext-pauli.nieminen at nokia.com>
>
> Calling function that is in code cache is order of magnitude faster. In
> arm non-cached simple function takes about 1us while cached function
> takes max 200ns.
> diff --git a/config/udev.c b/config/udev.c
> index 496bfbf..393723c 100644
> --- a/config/udev.c
> +++ b/config/udev.c
> @@ -253,11 +253,6 @@ wakeup_handler(pointer data, int err, pointer read_mask)
> }
> }
>
> -static void
> -block_handler(pointer data, struct timeval **tv, pointer read_mask)
> -{
> -}
> -
> int
> config_udev_init(void)
> {
> @@ -290,7 +285,7 @@ config_udev_init(void)
> }
> udev_enumerate_unref(enumerate);
>
> - RegisterBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL);
> + RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, wakeup_handler, NULL);
YUCK! Obfuscating code like this is sooo wrong. I don't think
optimization hacks like this that only really matter for hardware with
last-century sized caches belong in the Xorg tree.
More information about the xorg-devel
mailing list