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.