Blackfin: optimize strncpy a bit
authorRobin Getz <robin.getz@analog.com>
Tue, 4 May 2010 14:59:21 +0000 (14:59 +0000)
committerMike Frysinger <vapier@gentoo.org>
Sat, 22 May 2010 18:19:11 +0000 (14:19 -0400)
commit648eee52ccdc623e21b920d6048e93490a4860a7
tree1d106f156abb6c7a0169a392f4856cd63893e079
parentc70dcabc8eba18113a4735e7b1bd09f7493e38f0
Blackfin: optimize strncpy a bit

Add a little strncpy optimization which can easily cut boot time by 20%.

When the kernel is booting with initramfs, it builds up the filesystem
from a cpio archive by calling strncpy_from_user() via fs/namei.c's
do_getname() on every file in the archive (which can be lots) with a
length of PATH_MAX (1024).  This causes the dest of the strncpy to be
padded with many NUL bytes.

This optimization mostly causes these NUL bytes to be padded with a call
to memset() which is already optimized for filling memory quickly, but
the hardware loop helps a little bit as well.

Boot time measured with 'loglevel=0' so UART speed doesn't get in the way.

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/lib/memset.S
arch/blackfin/lib/strncpy.S