Enable asm for OpenSSL

Denis Kovalchuk via TortoiseSVN-dev <[email protected]> Mon, 29 May 2023 07:39:28 -0700 (PDT)
Newsgroups gmane.comp.version-control.subversion.tortoisesvn.devel
Message-ID <[email protected]>

Hi!

I am wondering if there are any reasons to build OpenSSL with the

'-no-asm' [1][2] option?

Below are the results of synthetic benchmarks for Subversion, depending on

whether OpenSSL is built with or without asm support:

1) OpenSSL is built with the ‘-no-asm’ option.

svnbench null-export https://localhost/svn/iso/~7GB.iso

0 directories

1 files

7,395,016,704 bytes in files

0 properties

0 bytes in properties

50.812102 seconds taken

7,404,963,366 bytes transferred over network

2) OpenSSL is built without the ‘-no-asm’ option.

svnbench null-export https://localhost/svn/iso/~7GB.iso

0 directories

1 files

7,395,016,704 bytes in files

0 properties

0 bytes in properties

17.406729 seconds taken

7,404,963,353 bytes transferred over network

This ~3x improvement is well observed when dealing with localhost, where the

network bandwidth is high enough.

So I would like to suggest enabling asm support for OpenSSL, unless of 
course
there is a reason to build OpenSSL with the '--no-asm' option. Note that 
this
change requires NASM [3] to build TortoiseSVN.

[1] 
https://github.com/stefankueng/TortoiseSVN/blob/cb7495c3ef52b5e86f5c2a41173df44ea20f7841/ext/build/OpenSSL.build#L55

[2] 
https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options

[3] https://www.nasm.us

Best Regards,

Denis Kovalchuk

-- 
You received this message because you are subscribed to the Google Groups "TortoiseSVN-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/tortoisesvn-dev/71b09d6c-3fda-4985-b974-0118a295f730n%40googlegroups.com.
enable-asm-for-OpenSSL.patch.txt (text/plain, 1.6 KB)
Enable asm for OpenSSL

The result of a synthetic benchmark for Subversion, depending on
whether OpenSSL is built with or without asm support:

svnbench null-export https://localhost/svn/iso/~7GB.iso

1) OpenSSL is built with the '-no-asm' option:

50.812102 seconds taken

2) OpenSSL is built without the '-no-asm' option:

17.406729 seconds taken

This ~3x improvement is well observed when dealing with localhost, where the
network bandwidth is high enough.

build.txt:

Add NASM to the requirements section.

ext/build/OpenSSL.build:

Remove the '--no-asm' option.

Index: build.txt
===================================================================
--- build.txt	(revision 29549)
+++ build.txt	(working copy)
@@ -33,6 +33,7 @@
                                     https://www.activestate.com/products/perl/
 - WiX 3.10(\b 1)                    http://wixtoolset.org/
 - NAnt 0.92(\b 1)                   http://nant.sourceforge.net
+- NASM(\b 1 \b 2)                   https://www.nasm.us
 
 (\b 1) Add the paths of the binaries to the PATH environment variable. You may have to
     logoff/logon to make the new environment variables take effect!
Index: ext/build/OpenSSL.build
===================================================================
--- ext/build/OpenSSL.build	(revision 29549)
+++ ext/build/OpenSSL.build	(working copy)
@@ -52,7 +52,6 @@
     <exec program="perl" workingdir="${targetDir}">
       <arg value="..\Configure" />
       <arg value="${targetName}" />
-      <arg value="no-asm" />
       <arg value="no-gost" />
       <arg value="no-shared" />
       <arg value="no-autoload-config" />