OpenSSL accleration by QAT?

May I know how to confirm that the OpenSSL process/connection would accelerated by QAT?

vyos@VyOS-v2ray# sudo openssl engine -t -c
(dynamic) Dynamic engine loading support
     [ unavailable ]

vyos@VyOS-v2ray# sudo openssl engine qat -t
40173911D37F0000:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../crypto/dso/dso_dlfcn.c:118:filename(/usr/lib/x86_64-linux-gnu/engines-3/qat.so): /usr/lib/x86_64-linux-gnu/engines-3/qat.so: cannot open shared object file: No such file or directory
40173911D37F0000:error:12800067:DSO support routines:DSO_load:could not load the shared library:../crypto/dso/dso_lib.c:152:
40173911D37F0000:error:13000084:engine routines:dynamic_load:dso not found:../crypto/engine/eng_dyn.c:442:
40173911D37F0000:error:13000074:engine routines:ENGINE_by_id:no such engine:../crypto/engine/eng_list.c:433:id=qat
show version

Version: VyOS 1.4.0-release-20240923
Release train: sagitta
Release flavor: iso

Built by: [email protected]
Built on: Sun 22 Sep 2024 16:42 UTC

Architecture: x86_64
Boot via: installed image
System type: bare metal

CPU is Atom C3558
vyos@VyOS-v2ray# run show system acceleration qat
01:00.0 Co-processor [0b40]: Intel Corporation Atom Processor C3000 Series QuickAssist Technology [8086:19e2] (rev 11)
[edit]

vyos@VyOS-v2ray# run show system acceleration qat status
Checking status of all devices.
There is 1 QAT acceleration device(s) in the system:
 qat_dev0 - type: c3xxx,  inst_id: 0,  node_id: 0,  bsf: 0000:01:00.0,  #accel: 3 #engines: 6 state: up
openssl ras2048 speed shows 'Invalid engine "qat_dev0"'
vyos@VyOS-v2ray# sudo openssl speed -elapsed rsa2048
You have chosen to measure elapsed time instead of user CPU time.
Doing 2048 bits private rsa's for 10s: 
3701 2048 bits private RSA's in 10.00s
Doing 2048 bits public rsa's for 10s: 
128426 2048 bits public RSA's in 10.00s
version: 3.0.14
built on: Sun Sep  1 14:59:10 2024 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/reproducible-path/openssl-3.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x4ff8e3bfefebffff:0x2294e283
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.002702s 0.000078s    370.1  12842.6
[edit]

vyos@VyOS-v2ray# sudo openssl speed -engine qat_dev0 -elapsed rsa2048
Invalid engine "qat_dev0"
4017C695727F0000:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../crypto/dso/dso_dlfcn.c:118:filename(/usr/lib/x86_64-linux-gnu/engines-3/qat_dev0.so): /usr/lib/x86_64-linux-gnu/engines-3/qat_dev0.so: cannot open shared object file: No such file or directory
4017C695727F0000:error:12800067:DSO support routines:DSO_load:could not load the shared library:../crypto/dso/dso_lib.c:152:
4017C695727F0000:error:13000084:engine routines:dynamic_load:dso not found:../crypto/engine/eng_dyn.c:442:
4017C695727F0000:error:13000074:engine routines:ENGINE_by_id:no such engine:../crypto/engine/eng_list.c:433:id=qat_dev0
4017C695727F0000:error:12800067:DSO support routines:dlfcn_load:could not load the shared library:../crypto/dso/dso_dlfcn.c:118:filename(libqat_dev0.so): libqat_dev0.so: cannot open shared object file: No such file or directory
4017C695727F0000:error:12800067:DSO support routines:DSO_load:could not load the shared library:../crypto/dso/dso_lib.c:152:
4017C695727F0000:error:13000084:engine routines:dynamic_load:dso not found:../crypto/engine/eng_dyn.c:442:
You have chosen to measure elapsed time instead of user CPU time.
Doing 2048 bits private rsa's for 10s: 3700 2048 bits private RSA's in 10.00s
Doing 2048 bits public rsa's for 10s: 128152 2048 bits public RSA's in 10.00s
version: 3.0.14
built on: Sun Sep  1 14:59:10 2024 UTC
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/reproducible-path/openssl-3.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
CPUINFO: OPENSSL_ia32cap=0x4ff8e3bfefebffff:0x2294e283
                  sign    verify    sign/s verify/s
rsa 2048 bits 0.002703s 0.000078s    370.0  12815.2

I noticed that vyos-build/scripts/package-build/linux-kernel/build-intel-qat.sh at current · vyos/vyos-build (github.com)

This is Intel QAT HW 1.0 Linux driver.
url="https://packages.vyos.net/source-mirror/QAT.L.4.24.0-00005.tar.gz"

So, the QAT module (qat.ko) is compiled for the kernel.
Then, back to my case. If I want OpenSSL can support QAT then it will be required to compile an Intel QAT Engine (qat.so) for OpenSSL?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.