{"thread":{"id":"22755","subject":"[PATCH] Disable OpenSSL SHA1 implementation by default","startedAt":"2010-02-22T11:08:14Z","lastAt":"2010-02-26T22:40:11Z","messageCount":7,"participants":["Jonathan Nieder","Jeff King","Mark Lodato"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"135295","messageId":"20100222110814.GA3247@progeny.tock","threadId":"22755","inReplyTo":null,"subject":"[PATCH] Disable OpenSSL SHA1 implementation by default","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-02-22T11:08:14Z","receivedAt":"2010-02-22T11:08:14Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"The OpenSSL SHA-1 routine is about as fast as block-sha1, but linking\nto libcrypto slows down the startup of git commands by an appreciable\namount.  Use the BLK_SHA1 implementation by default instead.\n\nEven without its SHA-1 functions, OpenSSL is useful for teaching\nimap-send to use TLS.  Now people building git can decide separately\nwhether to use each of these two facilities by setting or unsetting\nthe OPENSSL_SHA1 and OPENSSL_TLS options.\n\nLet the configure script’s --with-openssl option and SSL library\nchecks toggle OPENSSL_TLS without touching OPENSSL_SHA1.  I am\nguessing most people will not want to enable OPENSSL_SHA1.  If that\nturns out to be false, we can add a new option to the configure\nscript.\n\nSigned-off-by: Jonathan Nieder <jrnieder@gmail.com>\n---\nTyped “make NO_OPENSSL=1” for the umpteenth time today, but this time\nI thought I should something about it.\n\nGood idea?  Bad idea?\n\n Makefile          |   24 +++++++++++++++++-------\n compat/mingw.h    |    2 +-\n config.mak.in     |    2 +-\n configure.ac      |   42 ++++++++++++++++++++++++++++++++++++------\n git-compat-util.h |    2 +-\n imap-send.c       |   16 ++++++++--------\n 6 files changed, 64 insertions(+), 24 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex afedb54..a82d29c 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -15,8 +15,11 @@ all::\n # Define FREAD_READS_DIRECTORIES if your are on a system which succeeds\n # when attempting to read from an fopen'ed directory.\n #\n-# Define NO_OPENSSL environment variable if you do not have OpenSSL.\n-# This also implies BLK_SHA1.\n+# Define OPENSSL_SHA1 if you would like to use the SHA-1 routine from\n+# OpenSSL.  Otherwise, BLK_SHA1 will be used.\n+#\n+# Define OPENSSL_TLS if you would like the imap-send utility to be\n+# able to use SSL.\n #\n # Define NO_CURL if you do not have libcurl installed.  git-http-pull and\n # git-http-push are not built, and you cannot use http:// and https://\n@@ -1103,7 +1106,18 @@ EXTLIBS += -lz\n ifndef NO_POSIX_ONLY_PROGRAMS\n \tPROGRAMS += git-daemon$X\n endif\n-ifndef NO_OPENSSL\n+ifdef OPENSSL_TLS\n+\tBASIC_CFLAGS += -DOPENSSL_TLS\n+\tUSE_OPENSSL = Yes\n+endif\n+ifdef OPENSSL_SHA1\n+\tBASIC_CFLAGS += -DOPENSSL_SHA1\n+\tUSE_OPENSSL = Yes\n+else\n+\tBLK_SHA1 = 1\n+endif\n+ifdef USE_OPENSSL\n+\tBASIC_CFLAGS += -DUSE_OPENSSL\n \tOPENSSL_LIBSSL = -lssl\n \tifdef OPENSSLDIR\n \t\tBASIC_CFLAGS += -I$(OPENSSLDIR)/include\n@@ -1114,10 +1128,6 @@ ifndef NO_OPENSSL\n \tifdef NEEDS_CRYPTO_WITH_SSL\n \t\tOPENSSL_LINK += -lcrypto\n \tendif\n-else\n-\tBASIC_CFLAGS += -DNO_OPENSSL\n-\tBLK_SHA1 = 1\n-\tOPENSSL_LIBSSL =\n endif\n ifdef NEEDS_SSL_WITH_CRYPTO\n \tLIB_4_CRYPTO = $(OPENSSL_LINK) -lcrypto -lssl\ndiff --git a/compat/mingw.h b/compat/mingw.h\nindex e254fb4..70c3392 100644\n--- a/compat/mingw.h\n+++ b/compat/mingw.h\n@@ -125,7 +125,7 @@ static inline int waitpid(pid_t pid, int *status, unsigned options)\n \treturn -1;\n }\n \n-#ifndef NO_OPENSSL\n+#ifdef USE_OPENSSL\n #include <openssl/ssl.h>\n static inline int mingw_SSL_set_fd(SSL *ssl, int fd)\n {\ndiff --git a/config.mak.in b/config.mak.in\nindex 6008ac9..a0cb30e 100644\n--- a/config.mak.in\n+++ b/config.mak.in\n@@ -27,7 +27,7 @@ export srcdir VPATH\n \n ASCIIDOC8=@ASCIIDOC8@\n NEEDS_SSL_WITH_CRYPTO=@NEEDS_SSL_WITH_CRYPTO@\n-NO_OPENSSL=@NO_OPENSSL@\n+OPENSSL_TLS=@OPENSSL_TLS@\n NO_CURL=@NO_CURL@\n NO_EXPAT=@NO_EXPAT@\n NO_LIBGEN_H=@NO_LIBGEN_H@\ndiff --git a/configure.ac b/configure.ac\nindex 914ae57..0efcdb9 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -80,6 +80,26 @@ else \\\n fi \\\n ])# GIT_PARSE_WITH\n #\n+# GIT_PARSE_WITH_USE(PACKAGE, VARNAME)\n+# ------------------------------------\n+# For use in AC_ARG_WITH action-if-found, for packages default ON.\n+# * Unset VARNAME for --without-PACKAGE\n+# * Always set VARNAME=YesPlease for --with-PACKAGE\n+# * Set PACKAGEDIR=PATH for --with-PACKAGE=PATH\n+AC_DEFUN([GIT_PARSE_WITH_USE],\n+[PACKAGE=m4_toupper($1); \\\n+if test \"$withval\" = \"no\"; then \\\n+\tm4_toupper($2)=; \\\n+elif test \"$withval\" = \"yes\"; then \\\n+\tm4_toupper($2)=YesPlease; \\\n+else \\\n+\tm4_toupper($2)=YesPlease; \\\n+\tm4_toupper($1)DIR=$withval; \\\n+\tAC_MSG_NOTICE([Setting m4_toupper($1)DIR to $withval]); \\\n+\tGIT_CONF_APPEND_LINE(${PACKAGE}DIR=$withval); \\\n+fi \\\n+])# GIT_PARSE_WITH_USE\n+#\n # GIT_PARSE_WITH_SET_MAKE_VAR(WITHNAME, VAR, HELP_TEXT)\n # ---------------------\n # Set VAR to the value specied by --with-WITHNAME.\n@@ -190,15 +210,18 @@ AC_MSG_NOTICE([CHECKS for site configuration])\n # Define PPC_SHA1 environment variable when running make to make use of\n # a bundled SHA1 routine optimized for PowerPC.\n #\n-# Define NO_OPENSSL environment variable if you do not have OpenSSL.\n-# This also implies BLK_SHA1.\n+# Define OPENSSL_SHA1 if you would like to use the SHA-1 routine from\n+# OpenSSL.  Otherwise, BLK_SHA1 will be used.\n+#\n+# Define OPENSSL_TLS if you would like the imap-send utility to be\n+# able to use SSL.\n #\n # Define OPENSSLDIR=/foo/bar if your openssl header and library files are in\n # /foo/bar/include and /foo/bar/lib directories.\n AC_ARG_WITH(openssl,\n AS_HELP_STRING([--with-openssl],[use OpenSSL library (default is YES)])\n AS_HELP_STRING([],              [ARG can be prefix for openssl library and headers]),\\\n-GIT_PARSE_WITH(openssl))\n+GIT_PARSE_WITH_USE(openssl, [OPENSSL_TLS]))\n #\n # Define NO_CURL if you do not have curl installed.  git-http-pull and\n # git-http-push are not built, and you cannot use http:// and https://\n@@ -383,7 +406,7 @@ AC_SUBST(ASCIIDOC8)\n ## Checks for libraries.\n AC_MSG_NOTICE([CHECKS for libraries])\n #\n-# Define NO_OPENSSL environment variable if you do not have OpenSSL.\n+# Define OPENSSL_TLS to empty if you do not have OpenSSL.\n # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).\n \n GIT_STASH_FLAGS($OPENSSLDIR)\n@@ -392,12 +415,19 @@ AC_CHECK_LIB([crypto], [SHA1_Init],\n [NEEDS_SSL_WITH_CRYPTO=],\n [AC_CHECK_LIB([ssl], [SHA1_Init],\n  [NEEDS_SSL_WITH_CRYPTO=YesPlease],\n- [NEEDS_SSL_WITH_CRYPTO= NO_OPENSSL=YesPlease])])\n+ [NEEDS_SSL_WITH_CRYPTO=])])\n+\n+if test -z \"${OPENSSL_TLS+set}\"\n+then\n+AC_CHECK_LIB([ssl], [SSL_CTX_new],\n+ [OPENSSL_TLS=YesPlease],\n+ [OPENSSL_TLS=])\n+fi\n \n GIT_UNSTASH_FLAGS($OPENSSLDIR)\n \n AC_SUBST(NEEDS_SSL_WITH_CRYPTO)\n-AC_SUBST(NO_OPENSSL)\n+AC_SUBST(OPENSSL_TLS)\n \n #\n # Define NO_CURL if you do not have libcurl installed.  git-http-pull and\ndiff --git a/git-compat-util.h b/git-compat-util.h\nindex a3c4537..c095b61 100644\n--- a/git-compat-util.h\n+++ b/git-compat-util.h\n@@ -135,7 +135,7 @@ extern char *gitbasename(char *);\n #include <iconv.h>\n #endif\n \n-#ifndef NO_OPENSSL\n+#ifdef USE_OPENSSL\n #include <openssl/ssl.h>\n #include <openssl/err.h>\n #endif\ndiff --git a/imap-send.c b/imap-send.c\nindex 5631930..9318c7f 100644\n--- a/imap-send.c\n+++ b/imap-send.c\n@@ -25,7 +25,7 @@\n #include \"cache.h\"\n #include \"exec_cmd.h\"\n #include \"run-command.h\"\n-#ifdef NO_OPENSSL\n+#ifndef OPENSSL_TLS\n typedef void *SSL;\n #endif\n \n@@ -238,7 +238,7 @@ static const char *Flags[] = {\n \t\"Deleted\",\n };\n \n-#ifndef NO_OPENSSL\n+#ifdef OPENSSL_TLS\n static void ssl_socket_perror(const char *func)\n {\n \tfprintf(stderr, \"%s: %s\\n\", func, ERR_error_string(ERR_get_error(), NULL));\n@@ -247,7 +247,7 @@ static void ssl_socket_perror(const char *func)\n \n static void socket_perror(const char *func, struct imap_socket *sock, int ret)\n {\n-#ifndef NO_OPENSSL\n+#ifdef OPENSSL_TLS\n \tif (sock->ssl) {\n \t\tint sslerr = SSL_get_error(sock->ssl, ret);\n \t\tswitch (sslerr) {\n@@ -272,7 +272,7 @@ static void socket_perror(const char *func, struct imap_socket *sock, int ret)\n \n static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int verify)\n {\n-#ifdef NO_OPENSSL\n+#ifndef OPENSSL_TLS\n \tfprintf(stderr, \"SSL requested but SSL support not compiled in\\n\");\n \treturn -1;\n #else\n@@ -333,7 +333,7 @@ static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int ve\n static int socket_read(struct imap_socket *sock, char *buf, int len)\n {\n \tssize_t n;\n-#ifndef NO_OPENSSL\n+#ifdef OPENSSL_TLS\n \tif (sock->ssl)\n \t\tn = SSL_read(sock->ssl, buf, len);\n \telse\n@@ -351,7 +351,7 @@ static int socket_read(struct imap_socket *sock, char *buf, int len)\n static int socket_write(struct imap_socket *sock, const char *buf, int len)\n {\n \tint n;\n-#ifndef NO_OPENSSL\n+#ifdef OPENSSL_TLS\n \tif (sock->ssl)\n \t\tn = SSL_write(sock->ssl, buf, len);\n \telse\n@@ -368,7 +368,7 @@ static int socket_write(struct imap_socket *sock, const char *buf, int len)\n \n static void socket_shutdown(struct imap_socket *sock)\n {\n-#ifndef NO_OPENSSL\n+#ifdef OPENSSL_TLS\n \tif (sock->ssl) {\n \t\tSSL_shutdown(sock->ssl);\n \t\tSSL_free(sock->ssl);\n@@ -1087,7 +1087,7 @@ static struct store *imap_open_store(struct imap_server_conf *srvc)\n \t\tgoto bail;\n \n \tif (!preauth) {\n-#ifndef NO_OPENSSL\n+#ifdef OPENSSL_TLS\n \t\tif (!srvc->use_ssl && CAP(STARTTLS)) {\n \t\t\tif (imap_exec(ctx, 0, \"STARTTLS\") != RESP_OK)\n \t\t\t\tgoto bail;\n-- \n1.7.0\n"},{"id":"135300","messageId":"20100222112326.GA21929@coredump.intra.peff.net","threadId":"22755","inReplyTo":"20100222110814.GA3247@progeny.tock","subject":"Re: [PATCH] Disable OpenSSL SHA1 implementation by default","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-02-22T11:23:26Z","receivedAt":"2010-02-22T11:23:26Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Feb 22, 2010 at 05:08:14AM -0600, Jonathan Nieder wrote:\n\n> The OpenSSL SHA-1 routine is about as fast as block-sha1, but linking\n> to libcrypto slows down the startup of git commands by an appreciable\n> amount.  Use the BLK_SHA1 implementation by default instead.\n\nWhat is your definition of \"about as fast\"? I benchmarked up to a 20%\nslow-down a while back:\n\n  http://article.gmane.org/gmane.comp.version-control.git/126995\n\nNow my complaint then was specifically about removing openssl sha1\nsupport entirely, and I have no problem with setting OPENSSL_SHA1 in my\nbuild options, but it does make sense to me that the default should\nbe whatever is fastest for most people. And that means benchmarking\nblk_sha1 versus the libcrypto linking slow-down on several machines to\nget actual numbers.\n\nUnfortunately, I think we may end up with an apples-to-oranges\ncomparison, as sha1-heavy tasks are affected one way, and scripted\nmany-git-invocation tasks the other way.\n\n> Typed “make NO_OPENSSL=1” for the umpteenth time today, but this time\n> I thought I should something about it.\n\necho 'NO_OPENSSL=1' >config.mak ?\n\n> -ifndef NO_OPENSSL\n> +ifdef OPENSSL_TLS\n> +\tBASIC_CFLAGS += -DOPENSSL_TLS\n> +\tUSE_OPENSSL = Yes\n> +endif\n\nDoesn't this flip the default for using TLS on imap-send?\n\n-Peff\n"},{"id":"135305","messageId":"20100222115521.GA3849@progeny.tock","threadId":"22755","inReplyTo":"20100222112326.GA21929@coredump.intra.peff.net","subject":"Re: [PATCH] Disable OpenSSL SHA1 implementation by default","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2010-02-22T11:55:21Z","receivedAt":"2010-02-22T11:55:21Z","isPatch":true,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Jeff King wrote:\n\n> What is your definition of \"about as fast\"? I benchmarked up to a 20%\n> slow-down a while back:\n> \n>   http://article.gmane.org/gmane.comp.version-control.git/126995\n\nThanks for the pointer --- I had missed that.  I’ll run some numbers\nand I’d be glad to see other people’s too (for whatever workloads are\nmost interesting).  But anyway, I think we should table this patch,\nand I’ll write another one that just splits NO_OPENSSL in two without\nchanging any defaults.\n\nJonathan\n"},{"id":"135727","messageId":"ca433831002252011r3d3459a2xca7535300cd6630f@mail.gmail.com","threadId":"22755","inReplyTo":"20100222112326.GA21929@coredump.intra.peff.net","subject":"Re: [PATCH] Disable OpenSSL SHA1 implementation by default","fromName":"Mark Lodato","fromEmail":"lodatom@gmail.com","sentAt":"2010-02-26T04:11:59Z","receivedAt":"2010-02-26T04:11:59Z","isPatch":true,"sender":{"key":"lodatom@gmail.com","avatar":"https://avatars.githubusercontent.com/u/58860?v=4"},"body":"On Mon, Feb 22, 2010 at 6:23 AM, Jeff King <peff@peff.net> wrote:\n> On Mon, Feb 22, 2010 at 05:08:14AM -0600, Jonathan Nieder wrote:\n>\n>> The OpenSSL SHA-1 routine is about as fast as block-sha1, but linking\n>> to libcrypto slows down the startup of git commands by an appreciable\n>> amount.  Use the BLK_SHA1 implementation by default instead.\n>\n> What is your definition of \"about as fast\"? I benchmarked up to a 20%\n> slow-down a while back:\n\nFor what it's worth, here are my numbers from running git-fsck on my\nx86-64 machine.  It appears that BLK-SHA1 is slightly faster.  If you\nknow a better benchmark to run, let me know.  Perhaps it would be good\nto write some sort of suite to test this, and let people post their\nresults to some website.\n\nmake git-fsck\n./git-fsck  66.75s user 0.28s system 99% cpu 1:07.17 total\n./git-fsck  66.70s user 1.28s system 99% cpu 1:08.06 total\n./git-fsck  66.77s user 0.63s system 99% cpu 1:07.42 total\n\nmake BLK_SHA1=1 git-fsck\n./git-fsck  65.60s user 0.65s system 99% cpu 1:06.26 total\n./git-fsck  65.39s user 0.65s system 99% cpu 1:06.06 total\n./git-fsck  65.24s user 1.36s system 100% cpu 1:06.60 total\n\nCore 2 Duo E6300 1.86 GHz (2MB L2 cache), 2GB memory\nUbuntu 9.10 x86-64, gcc 4.4.1, git v1.7.0-90-g251a495\n"},{"id":"135742","messageId":"20100226093633.GA9609@coredump.intra.peff.net","threadId":"22755","inReplyTo":"ca433831002252011r3d3459a2xca7535300cd6630f@mail.gmail.com","subject":"Re: [PATCH] Disable OpenSSL SHA1 implementation by default","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-02-26T09:36:33Z","receivedAt":"2010-02-26T09:36:33Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Feb 25, 2010 at 11:11:59PM -0500, Mark Lodato wrote:\n\n> For what it's worth, here are my numbers from running git-fsck on my\n> x86-64 machine.  It appears that BLK-SHA1 is slightly faster.  If you\n> know a better benchmark to run, let me know.  Perhaps it would be good\n> to write some sort of suite to test this, and let people post their\n> results to some website.\n> \n> make git-fsck\n> ./git-fsck  66.75s user 0.28s system 99% cpu 1:07.17 total\n> ./git-fsck  66.70s user 1.28s system 99% cpu 1:08.06 total\n> ./git-fsck  66.77s user 0.63s system 99% cpu 1:07.42 total\n> \n> make BLK_SHA1=1 git-fsck\n> ./git-fsck  65.60s user 0.65s system 99% cpu 1:06.26 total\n> ./git-fsck  65.39s user 0.65s system 99% cpu 1:06.06 total\n> ./git-fsck  65.24s user 1.36s system 100% cpu 1:06.60 total\n> \n> Core 2 Duo E6300 1.86 GHz (2MB L2 cache), 2GB memory\n> Ubuntu 9.10 x86-64, gcc 4.4.1, git v1.7.0-90-g251a495\n\nThanks for the numbers. I get the opposite results:\n\n  openssl, ./git-fsck (best of 3):\n  62.29user 2.08system 1:04.43elapsed 99%CPU\n\n  blk-sha1, ./git-fsck (best of 3):\n  65.57user 1.33system 1:07.19elapsed 99%CPU\n\nSo about a 5% slow-down to use blk-sha1. But that is only half the\nstory. Dropping the openssl link dependency gives:\n\n  stock, make -j4 test (best of 3):\n  57.43user 74.60system 1:09.48elapsed 190%CPU\n\n  NO_OPENSSL=TooSlow, make -j4 test (best of 3):\n  50.64user 68.74system 1:03.48elapsed 188%CPU\n\nWhich is almost a 12% speedup by dropping openssl.\n\nNow, a few qualifiers on what this means.\n\ngit-fsck is not a particularly good test of what users experience. They\njust don't do it very often. We use it here because it's sha1-heavy. The\nother heavy sha1 operation would be \"git add\" on large files. But it\nmeans we are singling out pure sha1 performance, which is a relatively\nsmall part of what users do.\n\nThe \"make -j4 test\" is also skewed a bit. Notice how we kept the dual\nCPUs almost pegged by running a bunch of tests in parallel. In terms of\nactual latency to the user, any small git speedup in the couple of git\ncommands somebody is running may be lost in the noise (e.g., just\ninvoking perl once destroys any git startup cost). The place that gets\nthe most benefit is going to be shell scripts which invoke git many\ntimes.\n\nAnd on top of that, there is the question of where users perceive\nslowness. Even a 1000% speedup in the startup code of git may not be\nnoticeable to me if the different is .002 seconds to .02 seconds. But if\nmy gigantic \"git add\" takes 4 seconds instead of 4.5, I might notice it.\n\nSo I don't think there is any objective winner. But, I am willing to\nassume that:\n\n  1. As many people actually see blk-sha1 _faster_, let's assume my\n     numbers for its slowdown are among the worst case (i.e., we do not\n     need to do a massive campaign to collect more speed results).\n\n  2. Most people don't care about large \"git add\" or \"fsck\". The sha-1\n     performance for them falls into the \"if it's not .02 instead of .002,\n     I don't care\" realm.\n\nwhich argues for dropping openssl as the default.\n\nIn other words, the reverse of what I said in my previous message (well,\nnot the reverse; what I really wanted was for somebody to generate\nactual numbers so we could base the decision on data).\n\n-Peff\n"},{"id":"135778","messageId":"ca433831002261333n4165d450k40e5feae72937cdc@mail.gmail.com","threadId":"22755","inReplyTo":"20100226093633.GA9609@coredump.intra.peff.net","subject":"Re: [PATCH] Disable OpenSSL SHA1 implementation by default","fromName":"Mark Lodato","fromEmail":"lodatom@gmail.com","sentAt":"2010-02-26T21:33:23Z","receivedAt":"2010-02-26T21:33:23Z","isPatch":true,"sender":{"key":"lodatom@gmail.com","avatar":"https://avatars.githubusercontent.com/u/58860?v=4"},"body":"On Fri, Feb 26, 2010 at 4:36 AM, Jeff King <peff@peff.net> wrote:\n> Dropping the openssl link dependency gives:\n>\n>  stock, make -j4 test (best of 3):\n>  57.43user 74.60system 1:09.48elapsed 190%CPU\n>\n>  NO_OPENSSL=TooSlow, make -j4 test (best of 3):\n>  50.64user 68.74system 1:03.48elapsed 188%CPU\n>\n> Which is almost a 12% speedup by dropping openssl.\n\nI got about an 8% speedup on this test.\n\nmaster\nmake -j4 test  216.72s user 296.83s system 171% cpu 4:58.80 total\nmake -j4 test  217.21s user 293.97s system 171% cpu 4:58.53 total\nmake -j4 test  216.08s user 293.76s system 165% cpu 5:08.39 total\n\nmaster + this patch\nmake -j4 test  199.21s user 258.88s system 159% cpu 4:47.60 total\nmake -j4 test  198.61s user 264.40s system 168% cpu 4:35.42 total\nmake -j4 test  197.12s user 268.74s system 169% cpu 4:35.33 total\n"},{"id":"135783","messageId":"20100226224011.GB24370@sigill.intra.peff.net","threadId":"22755","inReplyTo":"ca433831002261333n4165d450k40e5feae72937cdc@mail.gmail.com","subject":"Re: [PATCH] Disable OpenSSL SHA1 implementation by default","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2010-02-26T22:40:11Z","receivedAt":"2010-02-26T22:40:11Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Feb 26, 2010 at 04:33:23PM -0500, Mark Lodato wrote:\n\n> > Which is almost a 12% speedup by dropping openssl.\n> \n> I got about an 8% speedup on this test.\n\nThanks for more data. It looks like the patch is probably a win for me\n(depending on how you slice the workload), and definitely a win for you,\nthen. So probably it is a sane thing to change the default.\n\nI suspect the reason I got more of a speedup for \"make test\" is that I\ndon't do the svn or cvs tests, both of which are really slow and won't\nbe improved by the patch. If you have either installed, then that is\ndiluting your speedup.\n\n-Peff\n"}]}