|
今天在调试IPQ40xx的HWCrypto,顺便做了一个OpenSSL的性能测试.
IPQ40xx支持的HWCrypto:
[ 3500.415466] qcrypto 8e20000.qcrypto: qcrypto-ecb-aes
[ 3500.419550] qcrypto 8e20000.qcrypto: qcrypto-cbc-aes
[ 3500.424664] qcrypto 8e20000.qcrypto: qcrypto-ctr-aes
[ 3500.429443] qcrypto 8e20000.qcrypto: qcrypto-ecb-des
[ 3500.434376] qcrypto 8e20000.qcrypto: qcrypto-cbc-des
[ 3500.439323] qcrypto 8e20000.qcrypto: qcrypto-ecb-3des
[ 3500.444347] qcrypto 8e20000.qcrypto: qcrypto-cbc-3des
[ 3500.449383] qcrypto 8e20000.qcrypto: qcrypto-xts-aes
[ 3500.454328] qcrypto 8e20000.qcrypto: qcrypto-sha1
[ 3500.459071] qcrypto 8e20000.qcrypto: qcrypto-sha256
[ 3500.463892] qcrypto 8e20000.qcrypto: qcrypto-aead-hmac-sha1-cbc-aes
[ 3500.470131] qcrypto 8e20000.qcrypto: qcrypto-aead-hmac-sha1-cbc-des
[ 3500.476385] qcrypto 8e20000.qcrypto: qcrypto-aead-hmac-sha1-cbc-3des
[ 3500.482711] qcrypto 8e20000.qcrypto: qcrypto-aead-hmac-sha256-cbc-aes
[ 3500.489153] qcrypto 8e20000.qcrypto: qcrypto-aead-hmac-sha256-cbc-des
[ 3500.495567] qcrypto 8e20000.qcrypto: qcrypto-aead-hmac-sha256-cbc-3des
[ 3500.502069] qcrypto 8e20000.qcrypto: qcrypto-hmac-sha1
[ 3500.507221] qcrypto 8e20000.qcrypto: qcrypto-hmac-sha256
[ 3500.512514] qcrypto 8e20000.qcrypto: qcrypto-aes-ccm
[ 3500.517442] qcrypto 8e20000.qcrypto: qcrypto-rfc4309-aes-ccm
测试参考命令:
openssl speed -evp md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 -elapsed | tee /tmp/sslspeed | awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " |";b=""} END { print "\n" }' | sed 's/\.\(..\)k/\10/g'
注意,这个跟OpenWrt官方的openssl测试命令不一样,可能不具备参考意义.
单核测试:
openssl speed -evp md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 -elapsed | tee /tmp/sslspeed | awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " |";b=""} END { print "\n" }' | sed 's/\.\(..\)k/\10/g'
OpenSSL 1.0.2l 25 May 2017
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(ptr)
compiler: arm-openwrt-linux-uclibcgnueabi-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/include -znow -zrelro -DOPENSSL_SMALL_FOOTPRINT -DHAVE_CRYPTODEV -DOPENSSL_NO_ERR -DTERMIOS -Os -pipe -mcpu=cortex-a7 -mfpu=neon-vfpv4 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -I/home/vic/work/PandoraBox/package/libs/openssl/include -ffunction-sections -fdata-sections -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
sha1 3771.87k 11617.62k 26297.09k 38891.93k 45320.87k
des cbc 6398.44k 6593.32k 6670.93k 6663.48k 6687.40k
des ede3 2314.30k 2359.51k 2360.98k 2372.27k 2372.95k
aes-128 cbc 14555.15k 15284.37k 15563.35k 15624.87k 15586.57k
aes-192 cbc 12634.87k 13224.46k 13466.88k 13515.43k 13485.50k
aes-256 cbc 11394.85k 11877.61k 12075.26k 12114.60k 12089.32k
md5 4464.73k 13942.52k 33987.50k 52480.34k 62387.11k
sha256 4593.37k 10461.96k 18638.34k 23179.82k 25067.52k
sha512 2395.69k 9593.32k 14229.25k 19657.74k 22238.55k
sign verify sign/s verify/s
rsa 2048 bits 0.051015s 0.001476s 19.6 677.7
sign verify sign/s verify/s
dsa 2048 bits 0.013564s 0.014613s 73.7 68.4
| 1.0.2l | 38891930 | 52480340 | 23179820 | 19657740 | 6663480 | 2372270 | 15624870 | 13515430 | 12114600 | 19.6 | 677.7 | 73.7 | 68.4 |
四核测试:
openssl speed -evp md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 -elapsed -multi 4 | tee /tmp/sslspeed | awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " |";b=""} END { print "\n" }' | sed 's/\.\(..\)k/\10/g'
OpenSSL 1.0.2l 25 May 2017
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(ptr)
compiler: arm-openwrt-linux-uclibcgnueabi-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/include -znow -zrelro -DOPENSSL_SMALL_FOOTPRINT -DHAVE_CRYPTODEV -DOPENSSL_NO_ERR -DTERMIOS -Os -pipe -mcpu=cortex-a7 -mfpu=neon-vfpv4 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -I/home/vic/work/PandoraBox/package/libs/openssl/include -ffunction-sections -fdata-sections -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM
sha1 15046.95k 46669.54k 105090.72k 156377.73k 181043.20k
des cbc 25591.08k 26441.75k 26631.40k 26748.87k 26704.29k
des ede3 9289.82k 9433.10k 9463.75k 9502.32k 9484.76k
aes-128 cbc 58315.65k 61215.49k 62252.86k 62453.79k 62518.01k
aes-192 cbc 50547.97k 52962.04k 53851.49k 54016.63k 54082.21k
aes-256 cbc 45557.34k 47589.85k 48288.59k 48409.55k 48457.45k
evp 17847.60k 55841.04k 135899.63k 209737.97k 250202.75k
sha256 18363.72k 41954.86k 74417.58k 93127.37k 100124.75k
sha512 9595.55k 38440.04k 56842.46k 78974.14k 88835.57k
sign verify sign/s verify/s
rsa 2048 bits 0.012819s 0.000369s 78.0 2707.3
sign verify sign/s verify/s
dsa 2048 bits 0.003402s 0.003578s 293.9 279.5
| 1.0.2l | 156377730 | 93127370 | 78974140 | 26748870 | 9502320 | 62453790 | 54016630 | 48409550 | 78.0 | 2707.3 | 293.9 | 279.5 |
硬件加密测试:
openssl speed -evp md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 -engine cryptodev -elapsed| tee /tmp/sslspeed | awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " |";b=""} END { print "\n" }' | sed 's/\.\(..\)k/\10/g'
OpenSSL 1.0.2l 25 May 2017
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(ptr)
compiler: arm-openwrt-linux-uclibcgnueabi-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/include -znow -zrelro -DOPENSSL_SMALL_FOOTPRINT -DHAVE_CRYPTODEV -DOPENSSL_NO_ERR -DTERMIOS -Os -pipe -mcpu=cortex-a7 -mfpu=neon-vfpv4 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -I/home/vic/work/PandoraBox/package/libs/openssl/include -ffunction-sections -fdata-sections -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
sha1 3752.91k 11674.82k 26308.01k 38924.25k 45315.41k
des cbc 6376.22k 6615.02k 6670.25k 6660.42k 6690.13k
des ede3 2312.77k 2360.55k 2370.99k 2366.43k 2375.68k
aes-128 cbc 14524.97k 15307.58k 15489.96k 15604.39k 15567.52k
aes-192 cbc 12618.89k 13243.84k 13402.07k 13499.73k 13471.89k
aes-256 cbc 11366.22k 11900.44k 12023.50k 12102.66k 12075.72k
md5 4374.39k 13782.44k 33542.12k 52304.55k 62357.18k
sha256 4577.18k 10497.15k 18635.61k 23183.22k 25067.52k
sha512 2386.94k 9625.98k 14229.33k 19656.04k 22235.82k
sign verify sign/s verify/s
rsa 2048 bits 0.052021s 0.001480s 19.2 675.6
sign verify sign/s verify/s
dsa 2048 bits 0.013638s 0.014239s 73.3 70.2
| 1.0.2l | 38924250 | 52304550 | 23183220 | 19656040 | 6660420 | 2366430 | 15604390 | 13499730 | 12102660 | 19.2 | 675.6 | 73.3 | 70.2 |
四核硬件加密测试:
openssl speed -evp md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048 -engine cryptodev -elapsed -multi 4| tee /tmp/sslspeed | awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " |";b=""} END { print "\n" }' | sed 's/\.\(..\)k/\10/g'
OpenSSL 1.0.2l 25 May 2017
built on: reproducible build, date unspecified
options:bn(64,32) rc4(ptr,char) des(idx,cisc,2,long) aes(partial) blowfish(ptr)
compiler: arm-openwrt-linux-uclibcgnueabi-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/target-arm_cortex-a7+neon-vfpv4_uClibc-1.0.x_eabi/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/usr/include -I/home/vic/work/PandoraBox/staging_dir/toolchain-arm_cortex-a7+neon-vfpv4_gcc-4.8-linaro_uClibc-1.0.x_eabi/include -znow -zrelro -DOPENSSL_SMALL_FOOTPRINT -DHAVE_CRYPTODEV -DOPENSSL_NO_ERR -DTERMIOS -Os -pipe -mcpu=cortex-a7 -mfpu=neon-vfpv4 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=soft -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -fpic -I/home/vic/work/PandoraBox/package/libs/openssl/include -ffunction-sections -fdata-sections -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM
sha1 15024.30k 46665.59k 105066.14k 156106.04k 181622.10k
des cbc 25581.13k 26387.41k 26675.97k 26750.68k 26742.39k
des ede3 9282.83k 9421.83k 9486.94k 9488.57k 9501.09k
aes-128 cbc 58180.48k 61344.74k 62222.73k 62398.34k 62564.61k
aes-192 cbc 50450.06k 53099.30k 53767.74k 54081.28k 54093.12k
aes-256 cbc 45561.67k 47586.17k 48263.11k 48540.33k 48430.78k
evp 17836.66k 55824.71k 135816.24k 209943.60k 249973.03k
sha256 18334.93k 41949.15k 74438.85k 92960.90k 100453.03k
sha512 9569.52k 38462.90k 56806.66k 78947.31k 88936.27k
sign verify sign/s verify/s
rsa 2048 bits 0.012832s 0.000371s 77.9 2695.9
sign verify sign/s verify/s
dsa 2048 bits 0.003418s 0.003580s 292.6 279.3
| 1.0.2l | 156106040 | 92960900 | 78947310 | 26750680 | 9488570 | 62398340 | 54081280 | 48540330 | 77.9 | 2695.9 | 292.6 | 279.3 |
单独硬件AES测试:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-cbc(软加密) 1397.85k 4002.41k 7981.16k 10677.93k 11698.18k
aes-128-cbc(硬件加密) 308.76k 1227.65k 4593.71k 16221.18k 68007.21k
总结,其实启用HWCRYPTO跟不启用HWCRYPTO的加密性能差距不大,在小块的情况下,硬件加密的速度反而会比CPU加密慢.
越趋向大块的时候,硬件加密跟软件加密的差距才被拉大,在8K的AES-128-CBC上,硬件加密能领先6倍,这个对部分virtual**应用非常有用.
另外,看起来硬件加密模块也并未完全用上,这貌似是我的坑?
IPQ40XX的单核性能惨不忍睹,多核性能才看起来像个样子.
请不要胡乱输入以及粘贴、复制等方式灌水
请尊重作者、并共同维护网站的正常阅读,否则账户将会被限制发帖、回帖,并且积分可能会被清零,站内短信以及阅读权限等都会受到影响,谢谢。
具体限制方式:https://www.right.com.cn/forum/thread-8307840-1-1.html
|
评分
-
查看全部评分
|