So we needed to redo the patches, since the overall effort was bigger than we 
expected,
because several pre-requisite patches were needed.

There is now a working 4.0.1-1ubuntu6 in PPA:
https://launchpad.net/~fheimes/+archive/ubuntu/lp2138632
that shows a more significant performance improvement.

For comparison reasons:

# unpatched (means no patches regarding this LP bug/request):

$ taskset -c 0 openssl speed -seconds 10 ml-dsa-44 ml-dsa-65 ml-dsa-87
Doing ML-DSA-44 keygen ops for 10s: 59310 ML-DSA-44 signature keygen ops in 
9.99s
Doing ML-DSA-44 signs ops for 10s: 8877 ML-DSA-44 signature sign ops in 10.00s
Doing ML-DSA-44 verify ops for 10s: 48282 ML-DSA-44 signature verify ops in 
9.99s
Doing ML-DSA-65 keygen ops for 10s: 34890 ML-DSA-65 signature keygen ops in 
10.00s
Doing ML-DSA-65 signs ops for 10s: 5593 ML-DSA-65 signature sign ops in 10.01s
Doing ML-DSA-65 verify ops for 10s: 31669 ML-DSA-65 signature verify ops in 
9.99s
Doing ML-DSA-87 keygen ops for 10s: 24059 ML-DSA-87 signature keygen ops in 
10.00s
Doing ML-DSA-87 signs ops for 10s: 4827 ML-DSA-87 signature sign ops in 10.00s
Doing ML-DSA-87 verify ops for 10s: 20736 ML-DSA-87 signature verify ops in 
9.99s
version: 4.0.1
built on: Mon Aug 10 09:49:51 2026 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall 
-fzero-call-used-regs=used-gpr -Wa,--noexecstack -g -O2 
-Werror=implicit-function-declaration -mbackchain 
-ffile-prefix-map=/build/openssl-e8b4PY/openssl-4.0.1=. 
-fstack-protector-strong -Wformat -Werror=format-security 
-fno-stack-clash-protection 
-fdebug-prefix-map=/build/openssl-e8b4PY/openssl-4.0.1=/usr/src/openssl-4.0.1-1ubuntu3
 -DB_ENDIAN -DOPENSSL_PIC -DZLIB -DZSTD -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=3
CPUINFO: 
OPENSSL_s390xcap=stfle:0xfbfffffbfeffff7c:0xffdee00000000000:0xff36efd800000000:0x0:kimd:0xf0000000fc000000:0x4000000000000000:klmd:0xf0000000fc000000:0x0:km:0xf070383800002828:0x0:kmc:0xf070383800000000:0x1000000000000000:kmac:0xf070383800000000:0x0:kmctr:0xf070383800000000:0x0:kmo:0xf070383800000000:0x0:kmf:0xf070383800000000:0x0:prno:0x9000000000000000:0xa000:kma:0x8000383800000000:0x0:pcc:0xf070383800002828:0xe0c0c00000000000:kdsa:0xf070700088888800:0x0
                               keygen     signs    verify keygens/s    sign/s  
verify/s
                  ML-DSA-44 0.000168s 0.001127s 0.000207s    5936.9     887.7   
 4833.0
                  ML-DSA-65 0.000287s 0.001790s 0.000315s    3489.0     558.7   
 3170.1
                  ML-DSA-87 0.000416s 0.002072s 0.000482s    2405.9     482.7   
 2075.7
                  
# patches (not only the mentioned 24486294f7e8, but also 13 (!) more commits, 
that were needed as pre-reqs):

$ taskset -c 0 openssl speed -seconds 10 ml-dsa-44 ml-dsa-65 ml-dsa-87
Doing ML-DSA-44 keygen ops for 10s: 120558 ML-DSA-44 signature keygen ops in 
9.98s
Doing ML-DSA-44 signs ops for 10s: 32412 ML-DSA-44 signature sign ops in 9.99s
Doing ML-DSA-44 verify ops for 10s: 129711 ML-DSA-44 signature verify ops in 
10.00s
Doing ML-DSA-65 keygen ops for 10s: 61801 ML-DSA-65 signature keygen ops in 
10.00s
Doing ML-DSA-65 signs ops for 10s: 19698 ML-DSA-65 signature sign ops in 9.99s
Doing ML-DSA-65 verify ops for 10s: 79056 ML-DSA-65 signature verify ops in 
10.00s
Doing ML-DSA-87 keygen ops for 10s: 44885 ML-DSA-87 signature keygen ops in 
9.99s
Doing ML-DSA-87 signs ops for 10s: 16290 ML-DSA-87 signature sign ops in 10.00s
Doing ML-DSA-87 verify ops for 10s: 47125 ML-DSA-87 signature verify ops in 
10.00s
version: 4.0.1
built on: Mon Aug 17 08:10:14 2026 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall 
-fzero-call-used-regs=used-gpr -Wa,--noexecstack -g -O2 
-Werror=implicit-function-declaration -mbackchain 
-ffile-prefix-map=/build/openssl-2nCimN/openssl-4.0.1=. 
-fstack-protector-strong -Wformat -Werror=format-security 
-fno-stack-clash-protection 
-fdebug-prefix-map=/build/openssl-2nCimN/openssl-4.0.1=/usr/src/openssl-4.0.1-1ubuntu6
 -DB_ENDIAN -DOPENSSL_PIC -DZLIB -DZSTD -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=3
CPUINFO: 
OPENSSL_s390xcap=stfle:0xfbfffffbfeffff7c:0xffdee00000000000:0xff36efd800000000:0x0:kimd:0xf0000000fc000000:0x4000000000000000:klmd:0xf0000000fc000000:0x0:km:0xf070383800002828:0x0:kmc:0xf070383800000000:0x1000000000000000:kmac:0xf070383800000000:0x0:kmctr:0xf070383800000000:0x0:kmo:0xf070383800000000:0x0:kmf:0xf070383800000000:0x0:prno:0x9000000000000000:0xa000:kma:0x8000383800000000:0x0:pcc:0xf070383800002828:0xe0c0c00000000000:kdsa:0xf070700088888800:0x0
                               keygen     signs    verify keygens/s    sign/s  
verify/s
                  ML-DSA-44 0.000083s 0.000308s 0.000077s   12080.0    3244.4   
12971.1
                  ML-DSA-65 0.000162s 0.000507s 0.000126s    6180.1    1971.8   
 7905.6
                  ML-DSA-87 0.000223s 0.000614s 0.000212s    4493.0    1629.0 
                  
As one can see, there is now a noticeable performance benefit observable.

But this comes with a certain risk (see next comment) ...

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2138632

Title:
  [26.10 FEAT] [SEC2555] openSSL: optimize ML-DSA for the s390x
  architecture

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/2138632/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to