This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5718:AES 加密加速器问题

Guru**** 2553610 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/599253/linux-am5718-aes-crypto-accelerator-issue

器件型号:AM5718

工具/软件:Linux

我尝试在最新的 debian 预编译和"openssl speed"基准上使用硬件加密、这与用户指南类似、但我在加密/解密数据时看不到任何实际的加速。 是否有任何关于基准测试与实际使用不同的原因的想法?

预编译的映像具有 OMAP-AES_DRIVER、_rng 和其他开箱即用的映像、但没有加密设备/ ocf、因此我根据 加密用户指南 和其他在线知识从源代码构建了它们和 openssl

>烟味
...
cryptodev 42926 0
OMAP_AES_DRIVER 239121...
> openssl 版本
OpenSSL 1.0.1.2l 2017年5月25日

> openssl 引擎
(cryptodev) BSD cryptodev 引擎
(动态)动态引擎加载支持

OpenSSL 速度测试(未经过-lapsed)显示出巨大差异

> modprobe -r cryptodev
>时间选择速度-EVP AES-128-CBC
在16个大小的块上执行 AES-128-CBC、时间大小为:在2.98秒内执行 AES-128-CBC
...
OpenSSL 1.0.2l 2017年5月25日
...
"数字"以每秒处理的1000s 字节为单位。
类型 16字节 64字节256字节1024字节8192字节
AES-128-CBC 57960.98k 69444.09k 72792.31k 74125.49k 74541.66k

实数0m15.018s
用户0m14.856s
系统 0m0.004s

> modprobe cryptodev
>时间选择速度-EVP AES-128-CBC
在16个大小的块上执行 AES-128-CBC 3秒:在0.18s 内执行 AES-128-CBC
……
"数字"以每秒处理的1000s 字节为单位。
类型 16字节 64字节256字节1024字节8192字节
AES-128-CBC 36281.16k 125167.16k 710721.42k 1855129.60k infk

Real 0m15.018s
用户0m0.528s
系统 0m14.316s

问题1 -之前的速度测试与指南/知识库建议的相符。  如果我使用-lapsed 重新运行速度基准、我会看到另一个故事。 看起来 cryptodev 的字节/秒较慢

> modprobe -r cryptodev
>时间选项速度-evp AES-128-CBC -已用您
选择测量已用时间而不是用户 CPU 时间。
在16个大小的块上执行 AES-128-CBC 3s:在3.00s 内执行 AES-128-CBC
……
类型 16字节 64字节256字节1024字节8192字节
AES-128-CBC 57457.61k 68461.38k 72319.66k 73284.95k 73654.27k

实数0m15.018s
用户0m14.852s
系统 0m0.008s

> modprobe cryptodev
>时间选项速度-evp AES-128-CBC -已用您
选择测量已用时间而不是用户 CPU 时间。
在16个大小的块上执行 AES-128-CBC 3秒:在3.00s 内执行418051 AES-128-CBC
……
类型 16字节 64字节256字节1024字节8192字节
AES-128-CBC 2229.61k 7969.09k 21457.49k 37310.12k 45110.61k

Real 0m15.019s
用户0m0.396s
系统 0m14.456s 

问题2 -最重要的测试-实际加密文件。 此文件存在于快速 mSATA 卡上。 这里是 hdparm/dd 速度、大小为1021MB。

> hdparm -TT /dev/sda

/dev/sda:
定时缓存读取:2.00秒内1764 MB = 881.94 MB/秒
定时缓存磁盘读取:3.00秒内616 MB = 205.19 MB/秒

> dd if=/dev/zero of=/home/debian/work/temp bs=8k count=100k; rm -f /home/debian/work/temp
102400+0中的记录
102400+0
记录已复制838860800字节(839MB)、4.82506秒、174 Mb/s 

加密文件、不加载加密/加载加密设备。 如果没有加密保护、则加密速度大约为34MB/秒、使用加密保护、则速度更慢、为22MB/秒  

> modprobe -r cryptodev
>时间 openssl 编码-AES-128-CBC -salt -in bbb.mp4 -out bbb.mp4.enc-k "123456"
实数0m29.860s
用户0m15.524s
系统 0m7.256s

> modprobe cryptodev
>时间 openssl 编码-AES-128-CBC -salt -in bbb.mp4 -out bbb.mp4.enc-k "123456"
实数0m46.070
用户0m1.408s
系统 0m37.2Ds 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    TI 不支持 Debian。 请尝试使用 AM57x 处理器 SDK: www.ti.com/.../PROCESSOR-SDK-AM57X 您可以在此处找到性能基准: processors.wiki.ti.com/.../Processor_SDK_Linux_Kernel_Performance_Guide
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很好的链接、它似乎与我的发现相匹配-该页面显示硬件引擎的吞吐量比所有 AES 的软件慢、但软件的 CPU 百分比更高-这是我们对加速器的期望吗? 看起来不对

    硬件/软件 测试 AM57xx-EVM
    硬件 AES-128-CBC_throughput _8192_by (KBytes/s) 32530.43
    软件 AES-128-CBC_throughput _8192_by (KBytes/s 48944.47
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Shaun、

    是的、确实是这样、A15可能比 Linux 中的专用加密加速器更快。

    需要考虑的一些事项:

    1) 1) Crypto 内核以 L3总线速度运行、最大266MHz  A15的运行频率将高达1.5GHz。  如果您的应用需要管理功耗、则可能需要将负载转移到加密内核、这样可以节省大量功耗(表征会很有趣!)
    2) 2) Linux 等多处理操作系统将极大地限制加密硬件吞吐量。  我估计我们仅实现了裸机应用的~25%的性能潜力。  如果不对驾驶员进行一些严重的黑客攻击、我不确定我们可以做得更好。
    3) 3) A15可以自由地执行其他任务、而专用加密硬件会在数据上出现延迟-可能不会帮助某些阻止加密数据的应用程序。

    希望这会有所帮助-目的不是对抗、而是让人了解加密内核为什么不比 A15更快。

    此致、
    Mike