From: Nicolas Pitre Subject: Re: [PATCH] lib/sha1: use the git implementation of SHA-1 Date: Sun, 07 Aug 2011 21:25:00 -0400 (EDT) Message-ID: References: <1312595187-3265-1-git-send-email-msb@chromium.org> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-Transfer-Encoding: 7BIT Cc: Joachim Eastwood , Andreas Schwab , Mandeep Singh Baines , lkml , Ramsay Jones , Herbert Xu , "David S. Miller" , linux-crypto@vger.kernel.org, Russell King - ARM Linux To: Linus Torvalds Return-path: In-reply-to: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-crypto.vger.kernel.org On Sun, 7 Aug 2011, Linus Torvalds wrote: > On Sun, Aug 7, 2011 at 1:48 PM, Joachim Eastwood wrote: > > > > yes, this works. At least my board boots as normal. > > Ok, I'll remove it for -rc1, just to have a working ARM setup. Maybe > we can re-introduce it later (either together with some arm-specific > hack for SHA_WORKSPACE_WORDS or by having an arm-optimized version of > the *good* sha1 routine). > > But I doubt it: there used to be an ARM-optimized thing in git too. It > was removed two years ago with the commit message: > > remove ARM and Mozilla SHA1 implementations > > They are both slower than the new BLK_SHA1 implementation, so it is > pointless to keep them around. > > and quite frankly, that removed code seems to be the same as the > in-kernel one. So I bet the ARM "optimized" SHA1 is simply not worth > keeping around. Indeed. The ARM code in the kernel is mine: |commit c09f98271f685af349d3f0199360f1c0e85550e0 |Author: Nicolas Pitre |Date: Fri Oct 28 15:26:40 2005 +0100 | | [ARM] 2930/1: optimized sha1 implementation for ARM | | Patch from Nicolas Pitre | | Here's an ARM assembly SHA1 implementation to replace the default C | version. It is approximately 50% faster than the generic C version. On | an XScale processor running at 400MHz: | generic C version: 9.8 MB/s | my version: 14.5 MB/s [...] I eventually added it to Git as well. After a while I worked on the C version in Git: |$ git log --reverse --oneline --author="Nicolas Pitre" git/block-sha1/ |30ba0de block-sha1: move code around |dc52fd2 block-sha1: split the different "hacks" to be individually selected |660231a block-sha1: support for architectures with memory alignment restrictions |ee7dc31 block-sha1: more good unaligned memory access candidates |d5f6a96 block-sha1: make the size member first in the context struct |51ea551 make sure byte swapping is optimal for git |e9c5dcd block-sha1: guard gcc extensions with __GNUC__ |30ae47b remove ARM and Mozilla SHA1 implementations I therefore think that the ARM version in the kernel should also be removed if the Git C version goes in. Nicolas