Thread (100 messages) 100 messages, 10 authors, 2017-01-19

Re: [PATCH v3 0/8] Add crypto PMD optimized for ARMv8

From: Jerin Jacob <hidden>
Date: 2017-01-16 08:02:49

On Mon, Jan 16, 2017 at 06:57:12AM +0000, Hemant Agrawal wrote:
Hi Zbigniew,

quoted
-----Original Message-----
From: Zbigniew Bodek [mailto:zbigniew.bodek@caviumnetworks.com]
Subject: Re: [PATCH v3 0/8] Add crypto PMD optimized for ARMv8
On 13.01.2017 09:07, Hemant Agrawal wrote:
quoted
On 1/4/2017 11:03 PM, zbigniew.bodek@caviumnetworks.com wrote:
quoted
From: Zbigniew Bodek <redacted>

Introduce crypto poll mode driver using ARMv8 cryptographic
extensions. This PMD is optimized to provide performance boost for
chained crypto operations processing, such as:
* encryption + HMAC generation
* decryption + HMAC validation.
In particular, cipher only or hash only operations are not provided.
Do you have a plan to add the crypto only, auth/hash only support into
this driver?
OpenSSL driver is already implementing that and it is optimized for ARMv8.
[Hemant]  Agreed that openSSL driver implement it, however it will make the application little complex to initiates both driver instances and then choose the driver based on the algorithm.
We started with chained crypto as primary data-plane use-case like IPSec
need the chained operation. Agreed on single driver for both chained and non
chained. Feel free to contribute.
quoted
quoted
Also, do you plan to add additional cases w.r.t supported by other
crypto driver?
We may do it in the future but this depends on our resource availability.
quoted
quoted
Performance gain can be observed in tests against OpenSSL PMD which
also uses ARM crypto extensions for packets processing.

Exemplary crypto performance tests comparison:

cipher_hash. cipher algo: AES_CBC
auth algo: SHA1_HMAC cipher key size=16.
burst_size: 64 ops

ARMv8 PMD improvement over OpenSSL PMD (Optimized for ARMv8 cipher
only and hash only cases):

Buffer
Size(B)   OPS(M)      Throughput(Gbps)
64        729 %        742 %
128       577 %        592 %
256       483 %        476 %
512       336 %        351 %
768       300 %        286 %
1024      263 %        250 %
1280      225 %        229 %
1536      214 %        213 %
1792      186 %        203 %
2048      200 %        193 %

The driver currently supports AES-128-CBC in combination with: SHA256
HMAC and SHA1 HMAC.
The core crypto functionality of this driver is provided by the
external armv8_crypto library that can be downloaded from the Cavium
repository:
https://github.com/caviumnetworks/armv8_crypto
[Hemant] Thanks for the good work. 
Is it possible to get it hosted on a standard and neutral place? E.g. Linaro
It will make it easier for other ARM vendors to contribute. 
Sure. We are OK to host any place you suggest.
This was one of the reasons why I thought of having asm code in
driver/crypto/armv8 itself. But maintainers had a different view on it.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help