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
