George Spelvin wrote: > (Work in progress, state dump to mailing list archives.) > > This started when discussing git startup overhead due to the dynamic > linker. One big contributor is the openssl library, which is used only > for its optimized x86 SHA-1 implementation. So I took a look at it, > with an eye to importing the code directly into the git source tree, > and decided that I felt like trying to do better. > > The original code was excellent, but it was optimized when the P4 was new. Even though last revision took place when "the P4 was new" and even triggered by its appearance, *all-round* performance was and will always be the prime goal. This means that improvements on some particular micro-architecture is always weighed against losses on others [and compromise is considered of so required]. Please note that I'm *not* trying to diminish George's effort by saying that proposed code is inappropriate, on the contrary I'm nothing but grateful! Thanks, George! I'm only saying that it will be given thorough consideration. Well, I've actually given the consideration and outcome is already committed:-) See http://cvs.openssl.org/chngview?cn=18513. I don't deliver +17%, only +12%, but at the cost of Intel Atom-specific optimizations. I used this opportunity to optimize even for Intel Atom core, something I was planning to do at some point anyway... > http://www.openssl.org/~appro/cryptogams/cryptogams-0.tar.gz > - "tar xz cryptogams-0.tar.gz" If there is interest I can pack new tar ball with updated modules. > An open question is how to add appropriate CPU detection to the git > build scripts. (Note that `uname -m`, which it currently uses to select > the ARM code, does NOT produce the right answer if you're using a 32-bit > compiler on a 64-bit platform.) It's not only that. As next subscriber noted problem on MacOS X, it [MacOS X] uses slightly different assembler convention and ELF modules can't be compiled on MacOS X. OpenSSL perlasm takes care of several assembler flavors and executable formats, including MacOS X. I'm talking about > +++ Makefile 2009-08-02 06:44:44.000000000 -0400 > +%.s : %.pl x86asm.pl x86unix.pl > + perl $< elf > $@ ^^^ this argument. Cheers. A. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html