您尚未登录。

楼主 #1 2021-05-13 20:22:33

unturned3
会员
注册时间: 2020-07-01
已发帖子: 271
积分: 300

尝试使用 V3s 的 Crypto Engine

看了 https://whycan.com/t_2719.html 后决定搞搞 V3s 的硬件 crypto 加速器,看看能不能降低 curl 用 https 时候 CPU 的占用率。
先 make nconfig,把 buildroot 里的 cryptodev 这个包给勾选上
然后再 make linux-nconfig,把 Enable loadable module support 打开,再把 Cryptographic API 目录中的这些全部勾选上:

-*-   Cryptographic algorithm manager
<*>   Userspace cryptographic algorithm configuration
-*-   Null algorithms
<*>   CBC support
<*>   ECB support
<*>   User-space interface for hash algorithms
<*>   User-space interface for symmetric key cipher algorithms
<*>   User-space interface for random number generator algorithms
<*>   User-space interface for AEAD cipher algorithms
[*]   Hardware crypto devices  --->
	<*>   Support for Allwinner Security System cryptographic accelerator
		[*] Support for Allwinner Security System PRNG

然后运行 make linux-rebuild,make all,完成后把 sdcard.img 烧写到 tf 卡上
开机登陆 root 账户后运行 modprobe cryptodev,然后用这个指令检查能否看见 /dev/crypto:

# openssl engine -c -tt
(devcrypto) /dev/crypto engine
 [DES-CBC, DES-EDE3-CBC, AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-ECB, AES-192-ECB, AES-256-ECB, MD5, SHA1]
     [ available ]
(dynamic) Dynamic engine loading support
     [ unavailable ]

以下是测试的结果,用的指令是 openssl speed -evp <cipher_name> -elapsed

很奇怪,用了 cryptodev 硬件加速后,居然比不用还要慢。。。不知道为什么

### cryptodev unloaded ###

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      18810.66k    23347.43k    25082.11k    25546.07k    25684.65k    25695.57k
aes-192-cbc      16683.07k    20266.92k    21494.95k    21869.57k    21973.67k    21981.87k
aes-256-cbc      15192.08k    17997.65k    19016.11k    19281.24k    19360.43k    19365.89k
md5               6845.81k    21962.92k    54481.83k    88408.75k   107834.03k   109532.50k
sha1              5587.66k    16467.97k    37492.65k    55125.33k    63941.29k    64678.57k

### cryptodev loaded ###

type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc       3116.29k     8921.07k    16968.36k    21918.72k    23582.04k    23751.34k
aes-192-cbc       2927.55k     8132.22k    15011.53k    18872.66k    19830.10k    19895.64k
aes-256-cbc       2778.49k     7607.04k    13453.14k    16726.02k    17446.23k    17563.65k
md5                764.50k     2949.72k    10953.05k    33556.48k    82395.14k    92034.39k
sha1               690.34k     2573.21k     8964.01k    23353.34k    43308.37k    46088.19k

然后我试了试用 curl 通过 https 下载个大文件,发现 cryptodev 用不用,CPU占用率都在95%左右浮动


V3s 的硬件 crypto 加速器还有哪位大佬用过吗?有没有哪位能分享一下经验?

多谢多谢!

离线

楼主 #2 2021-05-13 23:07:16

unturned3
会员
注册时间: 2020-07-01
已发帖子: 271
积分: 300

Re: 尝试使用 V3s 的 Crypto Engine

可能还是什么驱动没配置好,这些都是 kernel 用软件实现的 generic 驱动,并不是 V3s 的硬加速 crypto engine...

# cat /proc/crypto

name         : ecb(aes)
driver       : ecb(aes-generic)
module       : kernel
...

name         : cbc(aes)
driver       : cbc(aes-generic)
module       : kernel
...

name         : aes
driver       : aes-generic
module       : kernel
...

离线

楼主 #3 2021-05-14 22:18:52

unturned3
会员
注册时间: 2020-07-01
已发帖子: 271
积分: 300

Re: 尝试使用 V3s 的 Crypto Engine

看了看 kernel change log,发现 5.10 版本合并了很多 Allwinner V3s 相关的代码,包括 crypto engine
把 5.3.5 内核换成了 5.10 后,果然出现了 sun4i-ss 驱动,并且 cat /proc/crypto 也显示了相关 sun4i-ss 硬驱动的 crypto 算法
不过用 openssl speed 测试,还是发现硬加速与软件 crypto 算法的速度并没有什么区别,curl 的 CPU 占用率也还是 95% 左右。。。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn