What is the encryption throughput I can reach with Sitara AM64x?
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.
The AM64x processor family includes acceleration for cryptographic algorithms, both with a dedicated security accelerator and the cryptographic instrcutions ARM introduced with the ARMv8 architecture. The Sitara Processor SDK includes openssl that provides a standardized interface for software to use the acceleration. The best performance is reached using the EVP library ( https://www.openssl.org/docs/man1.1.1/man7/evp.html ). For example for AES-128-GCM you can measure the performance with the command below. The option elapsed is used to measure elapsed realtime as opposed to processor time for simpler comparison regardless of how the offload is implemented.
openssl speed -elapsed -evp aes-128-gcm
This will run a single thread across packet sizes from 16 to 16384 bytes and print out the performance in kilobytes per second. To measure the maximum throughput on AM64x you can run:
openssl speed -elapsed -evp aes-128-gcm -multi 2
to create two threads in parallel, that Linux will schedule on the two A53 cores and report out the sum of the throughputs. For example for 1024 byte packets the result is something like 755560.79k [bytes]. Which is about 6Gbit/s .
You can similarly measure public key performance with for example:
openssl speed -elapsed ecdsa -multi 2
To estimate more complex use cases you can run another benchmark, such as iperf3 at a high priority (with for example chrt 9 iperf3 -u -t 0 -b 100M -c 192.168.1.99 ) and run it in parallel with the openssl command to measure how much encryption can be run at the same time as the network traffic.
Pekka