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.

[参考译文] PROCESSOR-SDK-AM62X:PROCESSOR-SDK-AM62X

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1317576/processor-sdk-am62x-processor-sdk-am62x

器件型号:PROCESSOR-SDK-AM62X

您好,

     我们在测试 AM62X 平台的硬件加速时发现了一个问题。

    使用 devcrypto 引擎:CPU 使用率为99%

   

time -v openssl speed -evp SHA512 -engine devcrypto  
Invalid engine "devcrypto"
Doing SHA512 for 3s on 16 size blocks: 1410387 SHA512's in 2.98s
Doing SHA512 for 3s on 64 size blocks: 1409513 SHA512's in 2.98s
Doing SHA512 for 3s on 256 size blocks: 765527 SHA512's in 2.98s
Doing SHA512 for 3s on 1024 size blocks: 323599 SHA512's in 2.98s
Doing SHA512 for 3s on 8192 size blocks: 50709 SHA512's in 2.99s
Doing SHA512 for 3s on 16384 size blocks: 25769 SHA512's in 2.97s
version: 3.0.9
built on: Tue May 30 12:31:57 2023 UTC
options: bn(64,64)
compiler: aarch64-oe-linux-gcc  --sysroot=recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=                      -fdebug-prefix-map=                      -fdebug-prefix-map=                      -fdebug-prefix-map=  -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0xbd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
SHA512            7572.55k    30271.42k    65763.39k   111196.43k   138932.48k   142154.65k
        Command being timed: "openssl speed -evp SHA512 -engine devcrypto"
        User time (seconds): 17.90
        System time (seconds): 0.01
        Percent of CPU this job got: 99%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0m 18.03s
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 23840
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 13
        Minor (reclaiming a frame) page faults: 313
        Voluntary context switches: 12
        Involuntary context switches: 21
        Swaps: 0
        File system inputs: 1648
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

 请勿使用 devcrypto 引擎:CPU 使用率为99%

 

root@OK62xx:/# time -v openssl speed -evp SHA512                    
Doing SHA512 for 3s on 16 size blocks: 1410248 SHA512's in 2.98s
Doing SHA512 for 3s on 64 size blocks: 1407024 SHA512's in 2.99s
Doing SHA512 for 3s on 256 size blocks: 764826 SHA512's in 2.98s
Doing SHA512 for 3s on 1024 size blocks: 323385 SHA512's in 2.98s
Doing SHA512 for 3s on 8192 size blocks: 50719 SHA512's in 2.98s
Doing SHA512 for 3s on 16384 size blocks: 25800 SHA512's in 2.98s
version: 3.0.9
built on: Tue May 30 12:31:57 2023 UTC
options: bn(64,64)
compiler: aarch64-oe-linux-gcc  --sysroot=recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=                      -fdebug-prefix-map=                      -fdebug-prefix-map=                      -fdebug-prefix-map=  -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0xbd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
SHA512            7571.80k    30116.90k    65703.17k   111122.90k   139426.19k   141848.05k
        Command being timed: "openssl speed -evp SHA512"
        User time (seconds): 17.90
        System time (seconds): 0.00
        Percent of CPU this job got: 99%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0m 18.02s
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 23696
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 313
        Voluntary context switches: 1
        Involuntary context switches: 10
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

我们分析了 sa2ul.c 并发现源代码"Settings (设置)"有问题。

static struct sa_alg_tmpl sa_algs[] = {
...
        [SA_ALG_CBC_AES] = {
                .type = CRYPTO_ALG_TYPE_SKCIPHER,
                .alg.skcipher = {
                        .base.cra_name          = "cbc(aes)",
                        .base.cra_driver_name   = "cbc-aes-sa2ul",
                        .base.cra_priority      = 30000,
...
      [SA_ALG_SHA256] = {
                .type = CRYPTO_ALG_TYPE_AHASH,
                .alg.ahash = {
                        .halg.base = {
                                .cra_name       = "sha256",
                                .cra_driver_name        = "sha256-sa2ul",
                                .cra_priority   = 400,      [SA_ALG_SHA256] = {
...
        [SA_ALG_SHA512] = {
                .type = CRYPTO_ALG_TYPE_AHASH,
                .alg.ahash = {
                        .halg.base = {
                                .cra_name       = "sha512",
                                .cra_driver_name        = "sha512-sa2ul",
                                .cra_priority   = 400,

在将 CRA_priority = 400更改为 CRA_priority = 30000后、我重新编译了 sa2ul.c 以进行测试、现象如下

root@OK62xx:/# time -v openssl speed -evp SHA512 -engine devcrypto  
Invalid engine "devcrypto"
20306A87FFFF0000:error:1300006D:engine routines:dynamic_load:init failed:../openssl-3.0.9/crypto/engine/eng_dyn.c:514:
20306A87FFFF0000:error:13000074:engine routines:ENGINE_by_id:no such engine:../openssl-3.0.9/crypto/engine/eng_list.c:430:id=devcrypto
20306A87FFFF0000:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../openssl-3.0.9/crypto/dso/dso_dlfcn.c:118:filename(libdevcrypto.so): libdevcrypto.so: cannot open shared object file: No such file or directory
20306A87FFFF0000:error:12800067:DSO support routines:DSO_load:could not load the shared library:../openssl-3.0.9/crypto/dso/dso_lib.c:152:
20306A87FFFF0000:error:13000084:engine routines:dynamic_load:dso not found:../openssl-3.0.9/crypto/engine/eng_dyn.c:442:
Doing SHA512 for 3s on 16 size blocks: 1414478 SHA512's in 2.99s
Doing SHA512 for 3s on 64 size blocks: 1409612 SHA512's in 2.98s
Doing SHA512 for 3s on 256 size blocks: 765600 SHA512's in 2.98s
Doing SHA512 for 3s on 1024 size blocks: 323552 SHA512's in 2.98s
Doing SHA512 for 3s on 8192 size blocks: 50691 SHA512's in 2.98s
Doing SHA512 for 3s on 16384 size blocks: 25750 SHA512's in 2.98s
version: 3.0.9
built on: Tue May 30 12:31:57 2023 UTC
options: bn(64,64)
compiler: aarch64-oe-linux-gcc  --sysroot=recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=                      -fdebug-prefix-map=                      -fdebug-prefix-map=                      -fdebug-prefix-map=  -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
CPUINFO: OPENSSL_armcap=0xbd
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
SHA512            7569.11k    30273.55k    65769.66k   111180.28k   139349.22k   141573.15k
        Command being timed: "openssl speed -evp SHA512 -engine devcrypto"
        User time (seconds): 17.90
        System time (seconds): 0.01
        Percent of CPU this job got: 99%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0m 18.02s
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 23840
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 320
        Voluntary context switches: 1
        Involuntary context switches: 12
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

测试结果显示,尽管我们在测试中设置了-engine devcrypto 参数,但我们的系统 SA3失败,仍然使用软件加密。 如何解决此问题?  

 "time -v openssl speed-evp AES-128-CBC-engine devcrypto"和"time -v openssl speed-evp AES-128-CBC-engine"。 "这两条指令几乎同时执行。 硬件加速可以减少指令运行时间吗?

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

    您好!
    您的测试中使用的是哪个 SDK 版本?
    此致!
    -洪

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

    您好,Hong,

          我们使用 SDK 9.0.3

    最佳

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

    您好!
    我们是否可以在您的设置上使用 SDK 9.1重新运行测试?
    此致!
    -洪

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

    hello,sdk9.1简体也是同样的问题。

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

    您好!
    感谢您使用 SDK 9.1运行测试
    让我在这边看看、然后给您回复。
    此致!
    -洪

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

    您好,您这边sdk 9.1的硬件加密验证的怎么样了?

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

    e2e.ti.com/.../am625-compiling-with-custom-keys-in-yocto-build
    e2e.ti.com/.../am625-secure-boot-and-compiling

    这两个 e2e 来自专门的安全 e2e 论坛、用于以安全为重点的主题讨论。 请向我发送加入安全 e2e 论坛的邀请。

     

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

    您好!
    我向大家发送了加入 e2e 安全论坛的邀请函。
    此致!
    -洪

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

    您好!

    SDK 9.1的硬件加密验证状态是什么?

    此致!

    马考

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

    您好!
    我们需要额外的时间来检查它。
    此致!
    -洪

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

    您好,

    需要多长时间? 我需要回到我的客户。

    最佳

    马考

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

    您好!
    我下周会再见。
    此致!
    -洪

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

    您好!

    SDK 9.1的硬件加密验证状态是什么?

    此致!

    马考

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

    你好,Machao

    Ethan 提醒我们这个问题尚未解决。 对此,我们感到遗憾的是,洪明甫不得不提前计划休假,并将在本月末回来。  
    但是、根据他与软件开发团队的讨论、下面是我们的当前状态/总结  

    OpenSSL SHA 有一些已知的缺点, SA2UL 驱动程序是写的,记住只有一组加密模块(IPsec), IPsec 具有有限大小的数据包,可以单脉冲处理。 对于 SHA (OpenSSL)、我们需要在当前 SDK9.x 中未包含的驱动程序中支持多突发支持。 目前计划在2024年10月的时间段内对 SDK10.1进行此更新。  您的 AES 观察是准确的、从较高的层次上讲、这些模块更能减轻 CPU 负载、然后用作"加速器"、因此在一定程度上可以预期当前实施的高 CPU 负载。  

    您的客户对该功能的需求有哪些时间表、他们是否可以暂时没有该功能和/或查看基于 CPU 的(非加密模块)替代产品?

    注意:此主题可能会因几个月前被锁定,如果是,您可以使用此帖子作为相关的 E2E 创建新的 E2E。