[ARM] alternative copy_to_user: more precise fallback threshold
authorNicolas Pitre <nico@cam.org>
Sat, 30 May 2009 01:55:50 +0000 (21:55 -0400)
committerNicolas Pitre <nico@cam.org>
Sat, 30 May 2009 05:10:15 +0000 (01:10 -0400)
commitc626e3f5ca1d95ad2204d3128c26e7678714eb55
tree7c75da068ff30389e1801a3801bd45d38ccae7a7
parentcb9dc92c0a1b76165c8c334402e27191084b2047
[ARM] alternative copy_to_user: more precise fallback threshold

Previous size thresholds were guessed from various user space benchmarks
using a kernel with and without the alternative uaccess option.  This
is however not as precise as a kernel based test to measure the real
speed of each method.

This adds a simple test bench to show the time needed for each method.
With this, the optimal size treshold for the alternative implementation
can be determined with more confidence.  It appears that the optimal
threshold for both copy_to_user and clear_user is around 64 bytes. This
is not a surprise knowing that the memcpy and memset implementations
need at least 64 bytes to achieve maximum throughput.

One might suggest that such test be used to determine the optimal
threshold at run time instead, but results are near enough to 64 on
tested targets concerned by this alternative copy_to_user implementation,
so adding some overhead associated with a variable threshold is probably
not worth it for now.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
arch/arm/lib/uaccess_with_memcpy.c