lib/sha1: use the git implementation of SHA-1
authorMandeep Singh Baines <msb@chromium.org>
Sat, 6 Aug 2011 01:46:27 +0000 (18:46 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 6 Aug 2011 18:26:52 +0000 (11:26 -0700)
commit1eb19a12bd2214cdcad5273d472b062a4ba97fa1
treea88b76f31a4ea5e3631581be249759fcf4b05a08
parentde96355c111679dd6e2c5c73e25e814c72510c58
lib/sha1: use the git implementation of SHA-1

For ChromiumOS, we use SHA-1 to verify the integrity of the root
filesystem.  The speed of the kernel sha-1 implementation has a major
impact on our boot performance.

To improve boot performance, we investigated using the heavily optimized
sha-1 implementation used in git.  With the git sha-1 implementation, we
see a 11.7% improvement in boot time.

10 reboots, remove slowest/fastest.

Before:

  Mean: 6.58 seconds Stdev: 0.14

After (with git sha-1, this patch):

  Mean: 5.89 seconds Stdev: 0.07

The other cool thing about the git SHA-1 implementation is that it only
needs 64 bytes of stack for the workspace while the original kernel
implementation needed 320 bytes.

Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Cc: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Cc: Nicolas Pitre <nico@cam.org>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: David S. Miller <davem@davemloft.net>
Cc: linux-crypto@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/cryptohash.h
lib/sha1.c